DeGala Lab
type: channel
description: Shaped to Make it Happen
date: 2025-11-04T20:18:49Z
update period: hourly
update frequency: 1
update base: 2000-01-01T12:00+00:00
generator agent: https://wordpress.org/
items: Variable aleatòria (Random variable)
items: List Comprehension (Python)
items: Paradigma de programació
items: Literal enter
items: Regex (expressions regulars)
items: datetime (mòdul de Python)
items: Callable
items: PEP 20
items: Generador (Python)
items: Iterador (Python)

Variable aleatòria (Random variable)
type: item
creator: Gloc
date: 2025-11-04T19:51:37Z
description: <a class="glossaryLink" aria-describedby="tt" data-cmtooltip=" Funció &lt;!-- wp:heading --&gt;Definició bàsica de &lt;strong&gt;Funció&lt;/strong&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:columns --&gt;&lt;div class=&quot;wp-block-columns&quot;&gt;&lt;!-- wp:column {&quot;width&quot;:&quot;33.33%&quot;} --&gt;&lt;div class=&quot;wp-block-column&quot; style=&quot;flex-basis:33.33%&quot;&gt;&lt;!-- wp:image {&quot;lightbox&quot;:{&quot;enabled&quot;:true},&quot;id&quot;:6688,&quot;sizeSlug&quot;:&quot;medium&quot;,&quot;linkDestination&quot;:&quot;none&quot;,&quot;style&quot;:{&quot;color&quot;:{}}} --&gt;&lt;figure class=&quot;wp-block-image size-medium&quot;&gt;&lt;/figure&gt;&lt;!-- /wp:image --&gt;&lt;/div&gt;&lt;!-- /wp:column --&gt;&lt;!-- wp:column {&quot;width&quot;:&quot;66.66%&quot;} --&gt;&lt;div class=&quot;wp-block-column&quot; style=&quot;flex-basis:66.66%&quot;&gt; Una &lt;strong&gt;funció&lt;/strong&gt; és una &lt;strong&gt;relació matemàtica&lt;/strong&gt; entre dos conjunts de nombres: a &lt;strong&gt;cada element del primer conjunt&lt;/strong&gt; (anomenat &lt;em&gt;domini&lt;/em&gt;) li correspon &lt;strong&gt;un únic element del segon conjunt&lt;/strong&gt; (anomenat &lt;em&gt;codomini&lt;/em&gt; o conjunt d’arribada).&lt;br/&gt; &lt;/div&gt;&lt;!-- /wp:column --&gt;&lt;/div&gt;&lt;!-- /wp:columns --&gt;&lt;!-- wp:columns --&gt;&lt;div class=&quot;wp-block-columns&quot;&gt;&lt;!-- wp:column --&gt;&lt;div class=&quot;wp-block-column&quot;&gt; &lt;em&gt;Dit d’una altra manera:&lt;/em&gt;&lt;br/&gt; &lt;!-- wp:quote --&gt;&lt;blockquote class=&quot;wp-block-quote&quot;&gt; Una funció és com una &lt;strong&gt;màquina&lt;/strong&gt;: rep un valor d’entrada, fa una operació i retorna un únic resultat.&lt;br/&gt; &lt;/blockquote&gt;&lt;!-- /wp:quote --&gt; &lt;/div&gt;&lt;!-- /wp:column --&gt;&lt;!-- wp:column --&gt;&lt;div class=&quot;wp-block-column&quot;&gt;&lt;!-- wp:image {&quot;lightbox&quot;:{&quot;enabled&quot;:true},&quot;id&quot;:6640,&quot;size…
encoded: <img fetchpriority="high" decoding="async" width="300" height="300" src="https://degalalab.com/wp-content/uploads/2025/11/random-variable-1-300x300.jpg" alt="Icona minimalista en estil DeGalaLab que representa una variable aleatòria amb un dau i la lletra X." class="wp-image-7347" style="width:231px;height:auto" srcset="https://degalalab.com/wp-content/uploads/2025/11/random-variable-1-300x300.jpg 300w, https://degalalab.com/wp-content/uploads/2025/11/random-variable-1-150x150.jpg 150w, https://degalalab.com/wp-content/uploads/2025/11/random-variable-1-768x768.jpg 768w, https://degalalab.com/wp-content/uploads/2025/11/random-variable-1-500x500.jpg 500w, https://degalalab.com/wp-content/uploads/2025/11/random-variable-1-800x800.jpg 800w, https://degalalab.com/wp-content/uploads/2025/11/random-variable-1.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" /> Una variable aleatòria és una funció que associa a cada resultat possible d’un experiment aleatori un valor numèric. Serveix per quantificar fenòmens aleatoris i permet aplicar-hi eines matemàtiques i estadístiques. Per exemple, si llancem tres monedes i definim la funció X com “el nombre de cares obtingudes”, cada resultat de l’espai mostral s’associa a un valor numèric: X(C,C,+)=2 Aquesta funció X serà el que anomenarem una variable aleatòria. Així, la probabilitat d’obtenir exactament dues cares és P(X=2)= Segons el tipus de valors que pot prendre, es classifica en: Variable aleatòria discreta: pren un conjunt finit o numerable de valors (p. ex. el nombre de cares en tres llançaments d’una moneda). Variable aleatòria contínua: pot prendre qualsevol valor dins d’un interval real (p. ex. la temperatura o l’altura d’una persona). Nota: Les variables aleatòries són la base per definir conceptes com l’esperança matemàtica, la variància o les distribucions de probabilitat (binomial, normal, exponencial, etc.).

List Comprehension (Python)
type: item
creator: Gloc
date: 2025-10-27T00:35:59Z
description: Les List Comprehensions són una manera compacta i eficient de crear llistes en Python utilitzant una sola línia de codi amb bucles i condicions integrats.
encoded: Una List Comprehension és una construcció sintàctica pròpia de Python que permet generar noves llistes de manera concisa, expressiva i eficient. Es basa en la combinació d’una expressió, un o més bucles for i, opcionalment, condicions if, dins d’una única línia de codi. Aquesta tècnica substitueix els bucles iteratius tradicionals, millorant la llegibilitat i reduint la complexitat del codi. <img decoding="async" width="150" height="150" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://degalalab.com/wp-content/uploads/2025/10/listComp-150x150.jpg" alt="Icona educativa minimalista de DeGalaLab sobre el concepte List Comprehension en Python, amb text sintàctic “[expressió for element in seqüència if condició]”, fons gris suau i elements fúcsies que representen el procés iteratiu." class="wp-image-7336" srcset="https://degalalab.com/wp-content/uploads/2025/10/listComp-150x150.jpg 150w, https://degalalab.com/wp-content/uploads/2025/10/listComp-300x300.jpg 300w, https://degalalab.com/wp-content/uploads/2025/10/listComp-768x768.jpg 768w, https://degalalab.com/wp-content/uploads/2025/10/listComp-500x500.jpg 500w, https://degalalab.com/wp-content/uploads/2025/10/listComp-800x800.jpg 800w, https://degalalab.com/wp-content/uploads/2025/10/listComp.jpg 1024w" sizes="(max-width: 150px) 100vw, 150px" /> <path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" /> La seva estructura general és la següent: [expressió for element in seqüència if condició] On cada part té una funció específica: expressió → defineix la transformació que s’aplica a cada element de la seqüència d’orige…

Paradigma de programació
type: item
creator: Gloc
date: 2025-10-26T19:45:23Z
description: Un <a class="glossaryLink" aria-describedby="tt" data-cmtooltip=" Paradigma de programació &lt;!-- wp:group {&quot;className&quot;:&quot;glossary-entry&quot;} --&gt;&lt;div class=&quot;wp-block-group glossary-entry&quot;&gt;&lt;!-- wp:columns --&gt;&lt;div class=&quot;wp-block-columns&quot;&gt;&lt;!-- wp:column --&gt;&lt;div class=&quot;wp-block-column&quot;&gt;&lt;!-- wp:paragraph --&gt;Un &lt;strong&gt;paradigma de programació&lt;/strong&gt; és una &lt;strong&gt;manera d’enfocar i organitzar la programació&lt;/strong&gt;, és a dir, una filosofia o estil que defineix com es dissenyen i estructuren els programes per resoldre problemes. &lt;br/&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:paragraph --&gt;Cada paradigma estableix un conjunt de principis, regles i tècniques per descriure com s’han d’executar les operacions dins d’un llenguatge de programació.&lt;br/&gt;&lt;!-- /wp:paragraph --&gt;&lt;/div&gt;&lt;!-- /wp:column --&gt;&lt;!-- wp:column --&gt;&lt;div class=&quot;wp-block-column&quot;&gt;&lt;!-- wp:image {&quot;lightbox&quot;:{&quot;enabled&quot;:true},&quot;id&quot;:7324,&quot;width&quot;:&quot;243px&quot;,&quot;height&quot;:&quot;auto&quot;,&quot;sizeSlug&quot;:&quot;medium&quot;,&quot;linkDestination&quot;:&quot;none&quot;,&quot;align&quot;:&quot;center&quot;,&quot;className&quot;:&quot;is-style-rounded&quot;} --&gt;&lt;figure class=&quot;wp-block-image aligncenter size-medium is-resized is-style-rounded&quot;&gt;&lt;/figure&gt;&lt;!-- /wp:image --&gt;&lt;/div&gt;&lt;!-- /wp:column --&gt;&lt;/div&gt;&lt;!-- /wp:columns --&gt;&lt;!-- wp:paragraph --&gt;Per exemple, la &lt;strong&gt;programació imperativa&lt;/strong&gt; descriu &lt;em&gt;com&lt;/em&gt; s’han de fer les coses (pas a pas), mentre que la &lt;strong&gt;programació declarativa&lt;/strong&gt; defineix &lt;em&gt;què&lt;/em&gt; es vol obtenir, i la &lt;strong&gt;programació funcional&lt;/strong&gt; se centra en funcions pures sense canvis d’estat. D’altres paradigmes coneguts són l’&lt;strong&gt;ori…
encoded: Un paradigma de programació és una manera d’enfocar i organitzar la programació, és a dir, una filosofia o estil que defineix com es dissenyen i estructuren els programes per resoldre problemes. Cada paradigma estableix un conjunt de principis, regles i tècniques per descriure com s’han d’executar les operacions dins d’un llenguatge de programació. <img decoding="async" width="300" height="200" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://degalalab.com/wp-content/uploads/2025/10/paradigma-300x200.jpg" alt="Minimalist icon representing different programming paradigms such as functional, object-oriented and imperative approaches, in DeGalaLab fuchsia and grey style." class="wp-image-7324" style="width:243px;height:auto" srcset="https://degalalab.com/wp-content/uploads/2025/10/paradigma-300x200.jpg 300w, https://degalalab.com/wp-content/uploads/2025/10/paradigma-1024x683.jpg 1024w, https://degalalab.com/wp-content/uploads/2025/10/paradigma-768x512.jpg 768w, https://degalalab.com/wp-content/uploads/2025/10/paradigma-500x333.jpg 500w, https://degalalab.com/wp-content/uploads/2025/10/paradigma-800x533.jpg 800w, https://degalalab.com/wp-content/uploads/2025/10/paradigma-1280x853.jpg 1280w, https://degalalab.com/wp-content/uploads/2025/10/paradigma.jpg 1536w" sizes="(max-width: 300px) 100vw, 300px" /> <path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" /> Per exemple, la programació imperativa descriu com s’han de fer les coses (pas a pas), mentre que la programació declarativa defineix què es vol obtenir, i la programació funcional se centra en funcions pures sen…

Literal enter
type: item
creator: Gloc
date: 2025-10-22T05:51:17Z
description: Explicació del concepte de <a class="glossaryLink" aria-describedby="tt" data-cmtooltip=" Literal enter &lt;!-- wp:columns --&gt;&lt;div class=&quot;wp-block-columns&quot;&gt;&lt;!-- wp:column {&quot;width&quot;:&quot;66.66%&quot;} --&gt;&lt;div class=&quot;wp-block-column&quot; style=&quot;flex-basis:66.66%&quot;&gt;&lt;!-- wp:paragraph --&gt;Un &lt;strong&gt;literal enter&lt;/strong&gt; és una representació directa d’un valor enter escrita dins del codi font. En Python, els literals enters poden indicar diferents bases numèriques mitjançant prefixos:&lt;br/&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;!-- wp:list-item --&gt;&lt;code&gt;10&lt;/code&gt; → decimal (base 10)&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;code&gt;0b100&lt;/code&gt; → binari (base 2)&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;code&gt;0o11&lt;/code&gt; → octal (base 8)&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;code&gt;0x1F&lt;/code&gt; → hexadecimal (base 16)&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;br/&gt;&lt;!-- /wp:list --&gt;&lt;/div&gt;&lt;!-- /wp:column --&gt;&lt;!-- wp:column {&quot;width&quot;:&quot;33.33%&quot;} --&gt;&lt;div class=&quot;wp-block-column&quot; style=&quot;flex-basis:33.33%&quot;&gt;&lt;!-- wp:image {&quot;lightbox&quot;:{&quot;enabled&quot;:true},&quot;id&quot;:7216,&quot;width&quot;:&quot;175px&quot;,&quot;sizeSlug&quot;:&quot;full&quot;,&quot;linkDestination&quot;:&quot;none&quot;,&quot;align&quot;:&quot;center&quot;,&quot;className&quot;:&quot;is-style-rounded&quot;} --&gt;&lt;figure class=&quot;wp-block-image aligncenter size-full is-resized is-style-rounded&quot;&gt;&lt;/figure&gt;&lt;!-- /wp:image --&gt;&lt;/div&gt;&lt;!-- /wp:column --&gt;&lt;/div&gt;&lt;!-- /wp:columns --&gt;&lt;!-- wp:paragraph --&gt;Quan fem servir &lt;code&gt;int(string, base=0)&lt;/code&gt;, l’argument &lt;code&gt;base=0&lt;/code&gt; indica a Python que ha d’interpretar automàticament la base de la…
encoded: Un literal enter és una representació directa d’un valor enter escrita dins del codi font. En Python, els literals enters poden indicar diferents bases numèriques mitjançant prefixos: 10 → decimal (base 10) 0b100 → binari (base 2) 0o11 → octal (base 8) 0x1F → hexadecimal (base 16) <img decoding="async" width="1024" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://degalalab.com/wp-content/uploads/2025/10/literal-enter.jpg" alt="Icona minimalista que representa un nombre binari amb el prefix “0b”, simbolitzant com Python interpreta els literals enters en diferents bases." class="wp-image-7216" style="width:175px" srcset="https://degalalab.com/wp-content/uploads/2025/10/literal-enter.jpg 1024w, https://degalalab.com/wp-content/uploads/2025/10/literal-enter-300x300.jpg 300w, https://degalalab.com/wp-content/uploads/2025/10/literal-enter-150x150.jpg 150w, https://degalalab.com/wp-content/uploads/2025/10/literal-enter-768x768.jpg 768w, https://degalalab.com/wp-content/uploads/2025/10/literal-enter-500x500.jpg 500w, https://degalalab.com/wp-content/uploads/2025/10/literal-enter-800x800.jpg 800w" sizes="(max-width: 1024px) 100vw, 1024px" /> <path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" /> Quan fem servir int(string, base=0), l’argument base=0 indica a Python que ha d’interpretar automàticament la base de la cadena, seguint les mateixes regles que els literals enters. Per exemple: >>> int('0b100', base=0) 4 Aquest comportament permet a Python reconèixer prefixos com 0b, 0o o 0x i convertir la cadena en el valor enter corresponent.

Regex (expressions regulars)
type: item
creator: Gloc
date: 2025-10-22T04:22:03Z
description: Què és una regex? Guia d’expressions regulars amb sintaxi bàsica, exemples en Python i JavaScript, errors habituals i bones pràctiques per validar, cercar i extreure <a class="glossaryLink" aria-describedby="tt" data-cmtooltip=" Text Un &lt;b&gt;text&lt;/b&gt; és un conjunt de paraules articulades que formen un discurs unitari, és una composició lingüística amb intenció de comunicar un missatge.&lt;sup id=&quot;cite_ref-GECtext_1-0&quot; class=&quot;reference&quot;&gt;&lt;/sup&gt;&lt;div class=&quot;mw-heading mw-heading2&quot;&gt;Propietats d&#039;un text ben format&lt;/div&gt;Un text ben format ha de tenir &lt;strong&gt;coherència&lt;/strong&gt;, &lt;strong&gt;cohesió&lt;/strong&gt;, &lt;strong&gt;adequació&lt;/strong&gt; i presentació de manera que existeixi una unitat temàtica i d&#039;estil que ajudi a la comprensió per part del receptor.&lt;div class=&quot;mw-heading mw-heading3&quot;&gt;&lt;span id=&quot;Cohesi.C3.B3&quot;&gt;&lt;/span&gt;Cohesió&lt;/div&gt;Implica la correcta relació entre les diferents parts del text. Compleix normes sintàctiques, gramaticals, i signes de puntuació&lt;div class=&quot;mw-heading mw-heading3&quot;&gt;&lt;span id=&quot;Adequaci.C3.B3&quot;&gt;&lt;/span&gt;Adequació&lt;/div&gt;L&#039;adequació és la propietat d&#039;adaptar el missatge a la situació, mitjançant el registre.&lt;b&gt;Registre:&lt;/b&gt; Variant estilística que s&#039;adapta a diferents situacions de comunicació. &lt;b&gt;Culte:&lt;/b&gt; El més curós de tots. Molta precisió lèxica. Correcció gramatical. S&#039;utilitza en poesia i ciències.&lt;br/&gt; &lt;b&gt;Estàndard:&lt;/b&gt; El normal. S&#039;utilitza a la premsa, relacions interpersonals i en llenguatge col·loquial.&lt;br/&gt; &lt;b&gt;Vulgar:&lt;/b&gt; Ús més descuidat de la norma lingüística, pobresa de vocabulari, ús de paraules inapropiades, pronunciació deficient, etc.&lt;br/&gt;&lt;br/&gt;&lt;div class=&quot;mw-heading mw-heading2&quot;&gt;Tipus de text&lt;/div&gt;Els textos es divideixen segons el t…
encoded: Un llenguatge compacte per descriure patrons de text i fer-hi cerca, validació o extracció. Definició Una regex (o expressió regular) és una seqüència de símbols que descriu un patró de text. S’utilitza per trobar, validar, substituir o extreure fragments dins de cadenes en multitud de llenguatges (p. ex., Python, JavaScript, R, Java, PHP). Per què és útil Validació: correus, telèfons, codis postals. Neteja de dades: normalitzar formats, eliminar soroll. Extracció: captar grups rellevants (dates, imports, etiquetes). Substitució massiva: refactors de codi, reescriptura de logs. Sintaxi bàsica . qualsevol caràcter (excepte salt de línia per defecte) \d dígit; \w caràcter de paraula; \s espai en blanc Quantificadors: * 0+, + 1+, ? 0 o 1, {m,n} rang Àncores: ^ inici, $ final Classes: [abc] qualsevol d’aquests; [^abc] qualsevol excepte Grups: (...) capturant; (?:...) no capturant; (?<nom>...) amb nom Alternança: a|b Flags: p. ex. i (case-insensitive), m (multilínia), g (global, JS), s (dotall) Exemples Python import re text = "Contacta: hello@example.com i sales@shop.co" pattern = r"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}" # Trobar totes les coincidències emails = re.findall(pattern, text) print(emails) # ['hello@example.com', 'sales@shop.co'] # Capturar grups amb nom (usuari i domini) m = re.search(r"(?<user>[A-Za-z0-9._%+-]+)@(?<domain>[A-Za-z0-9.-]+\.[A-Za-z]{2,})", text) if m: print(m.group("user"), m.group("domain")) # Substitució anon = re.sub(pattern, "[email]", text) print(anon) JavaScript const text = "SKU: AB-12345 i AB-98765"; const re = /\bAB-(\d{5})\b/g; const ids = [...text.matchAll(re)].map(m => m[1]); console.log(ids); // ["12345","98765"] // Validació bàsica de data (YYYY-MM) const isYearMonth = /^\d{4}-(0[1-9]|1[0-2])$/.test("2025-10"); console.log(isYearMonth); // true Errors habituals i bones pràctiques Gourmandesa: .* és golafre; usa quantificadors “mandrosos” .*? quan calgui. Escapat: recorda escapar meta-caràcters (., +, ?, (, ), [, ], {, }…

datetime (mòdul de Python)
type: item
creator: Gloc
date: 2025-10-16T13:23:22Z
description: Guia sobre el mòdul datetime de Python: com crear, comparar i formatar dates i hores, amb exemples pràctics i funcions clau com strftime, strptime i timedelta.
encoded: Definició: El mòdul datetime és una biblioteca estàndard de Python que permet gestionar dates i hores de manera eficient i precisa. Ofereix classes per representar dates (date), hores (time), combinacions (datetime) i intervals de temps (timedelta), així com funcions per comparar, sumar, restar, formatejar i convertir valors temporals. És essencial per a tasques com: Registre d’esdeveniments i timestamps Càlculs de diferències temporals Conversió entre formats de data/hora Aplicacions amb planificació o temps real <img decoding="async" width="300" height="300" src="https://degalalab.com/wp-content/uploads/2025/10/datetime-300x300.jpg" alt="Icona minimalista que representa un calendari i un rellotge fusionats, simbolitzant la gestió de dates i hores en Python amb el mòdul datetime." class="wp-image-7203" srcset="https://degalalab.com/wp-content/uploads/2025/10/datetime-300x300.jpg 300w, https://degalalab.com/wp-content/uploads/2025/10/datetime-150x150.jpg 150w, https://degalalab.com/wp-content/uploads/2025/10/datetime-768x768.jpg 768w, https://degalalab.com/wp-content/uploads/2025/10/datetime-500x500.jpg 500w, https://degalalab.com/wp-content/uploads/2025/10/datetime-800x800.jpg 800w, https://degalalab.com/wp-content/uploads/2025/10/datetime.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" /> Exemples de codi from datetime import datetime, timedelta # Data i hora actuals ara = datetime.now() print("Ara:", ara) # Format personalitzat print(ara.strftime("%d/%m/%Y %H:%M")) # Data futura (+7 dies) futur = ara + timedelta(days=7) print("D’aquí una setmana:", futur.strftime("%d/%m/%Y")) Notes addicionals strftime() → converteix objecte a text formatat. strptime() → interpreta un text i el converteix a objecte datetime. timedelta facilita operacions aritmètiques amb dates.

Callable
type: item
creator: Gloc
date: 2025-10-16T10:52:39Z
description: En Python, un objecte <a class="glossaryLink" aria-describedby="tt" data-cmtooltip=" Callable &lt;!-- wp:columns --&gt;&lt;div class=&quot;wp-block-columns&quot;&gt;&lt;!-- wp:column {&quot;width&quot;:&quot;66.66%&quot;} --&gt;&lt;div class=&quot;wp-block-column&quot; style=&quot;flex-basis:66.66%&quot;&gt;&lt;!-- wp:paragraph --&gt;&lt;strong&gt;Definició&lt;/strong&gt;: En &lt;strong&gt;Python&lt;/strong&gt;, un objecte &lt;em&gt;callable&lt;/em&gt; és qualsevol element que &lt;strong&gt;pot ser cridat&lt;/strong&gt; com si fos una funció, és a dir, que pot anar seguit de &lt;strong&gt;parèntesis &lt;code&gt;()&lt;/code&gt;&lt;/strong&gt;.&lt;br&gt;Quan un objecte és &lt;em&gt;callable&lt;/em&gt;, vol dir que pot executar un comportament o retornar un valor quan s&#039;invoca.&lt;br/&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:paragraph --&gt;Exemples habituals d’objectes &lt;em&gt;callable&lt;/em&gt; són:&lt;br/&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;Funcions definides&lt;/strong&gt; amb &lt;code&gt;def&lt;/code&gt; o &lt;code&gt;lambda&lt;/code&gt;.&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;Classes&lt;/strong&gt;, que al ser cridades creen una instància.&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;Mètodes&lt;/strong&gt; d’objectes.&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;Objectes amb el mètode especial&lt;/strong&gt; &lt;code&gt;__call__()&lt;/code&gt; implementat.&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;br/&gt;&lt;!-- /wp:list --&gt;&lt;/div&gt;&lt;!-- /wp:column --&gt;&lt;!-- wp:column {&quot;width&quot;:&quot;33.33%&quot;} --&gt;&lt;div class=&quot;wp-block-column&quot; style=&quot;flex-basis:33.33%&quot;&gt;&lt;!-- wp:image {&quot;lightbox&quot;:{&quot;enabled&quot;:true},&quot;id&quot;:7195,&quot;sizeSlug&quot;:&quot;medium&quot;,&quot;linkDestination&quot;:&quot;none&quot;,&quot;align&quot;:&…
encoded: Definició: En Python, un objecte callable és qualsevol element que pot ser cridat com si fos una funció, és a dir, que pot anar seguit de parèntesis (). Quan un objecte és callable, vol dir que pot executar un comportament o retornar un valor quan s’invoca. Exemples habituals d’objectes callable són: Funcions definides amb def o lambda. Classes, que al ser cridades creen una instància. Mètodes d’objectes. Objectes amb el mètode especial __call__() implementat. <img decoding="async" width="300" height="300" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://degalalab.com/wp-content/uploads/2025/10/callable-1-300x300.jpg" alt="Icona minimalista que representa una funció en Python amb parèntesis, indicant que l’objecte és callable — és a dir, que es pot cridar com una funció." class="wp-image-7195" srcset="https://degalalab.com/wp-content/uploads/2025/10/callable-1-300x300.jpg 300w, https://degalalab.com/wp-content/uploads/2025/10/callable-1-150x150.jpg 150w, https://degalalab.com/wp-content/uploads/2025/10/callable-1-768x768.jpg 768w, https://degalalab.com/wp-content/uploads/2025/10/callable-1-500x500.jpg 500w, https://degalalab.com/wp-content/uploads/2025/10/callable-1-800x800.jpg 800w, https://degalalab.com/wp-content/uploads/2025/10/callable-1.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" /> <path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" /> Exemple pràctic def saluda(): return "Hola!" print(saluda()) # → "Hola!" print(callable(saluda)) # → True # Una classe també és callable class Exemple: def __call__(self): return "Sóc callable!" e = Exemple() print…

PEP 20
type: item
creator: Gloc
date: 2025-10-16T06:26:49Z
description: Descobreix el <a class="glossaryLink" aria-describedby="tt" data-cmtooltip=" PEP 20 &lt;!-- wp:paragraph --&gt;&lt;strong&gt;PEP 20 – The Zen of Python&lt;/strong&gt; és un conjunt de principis que defineixen la filosofia de disseny de Python. Escrits per Tim Peters, orienten cap a un codi més &lt;em&gt;simple, explícit i llegible&lt;/em&gt;.&lt;br/&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:heading --&gt;Definició&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;strong&gt;PEP 20&lt;/strong&gt; (conegut com &lt;em&gt;The Zen of Python&lt;/em&gt;) és una llista de màximes que resumeixen les bones pràctiques i valors estètics del llenguatge Python. Es pot visualitzar a l’intèrpret amb:&lt;br/&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:code --&gt;&lt;code&gt;import this&lt;/code&gt;&lt;!-- /wp:code --&gt;&lt;!-- wp:heading --&gt;Principis clau (selecció)&lt;!-- /wp:heading --&gt;&lt;!-- wp:list --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;Beautiful is better than ugly&lt;/strong&gt;: el codi ha de ser net i agradable de llegir.&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;Simple is better than complex&lt;/strong&gt;: prefereix solucions senzilles.&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;Explicit is better than implicit&lt;/strong&gt;: evita ambigüitats i &quot;màgia”.&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;Readability counts&lt;/strong&gt;: la llegibilitat és prioritària.&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;There should be one— and preferably only one— obvious way to do it&lt;/strong&gt;: coherència i camins clars.&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;Errors should never pass silently&lt;/strong&gt; (excepte si es silencien explícitament): gestiona les excepcions amb criteri.&lt;br/&gt;&lt;!-- /wp:list-item --&gt;&lt;!-- wp:list-item --&gt;&lt;strong&gt;Namespaces are…
encoded: PEP 20 – The Zen of Python és un conjunt de principis que defineixen la filosofia de disseny de Python. Escrits per Tim Peters, orienten cap a un codi més simple, explícit i llegible. Definició PEP 20 (conegut com The Zen of Python) és una llista de màximes que resumeixen les bones pràctiques i valors estètics del llenguatge Python. Es pot visualitzar a l’intèrpret amb: import this Principis clau (selecció) Beautiful is better than ugly: el codi ha de ser net i agradable de llegir. Simple is better than complex: prefereix solucions senzilles. Explicit is better than implicit: evita ambigüitats i “màgia”. Readability counts: la llegibilitat és prioritària. There should be one— and preferably only one— obvious way to do it: coherència i camins clars. Errors should never pass silently (excepte si es silencien explícitament): gestiona les excepcions amb criteri. Namespaces are one honking great idea — let’s do more of those!: organitza i evita conflictes de noms. Veure la llista completa de màximes Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren’t special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one— and preferably only one— obvious way to do it. Although that way may not be obvious at first unless you’re Dutch. Now is better than never. Although never is often better than right now. If the implementation is hard to explain, it’s a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea — let’s do more of those! Aplicació pràctica Exemple de simplicitat i llegibilitat (Readability counts): # Poc clar (massa "màgia") vals = [1, 2, 2, 3, 4] u = [] [u.append(v) for v in vals if v not …

Generador (Python)
type: item
creator: Gloc
date: 2025-10-16T03:57:28Z
description: Explicació sobre què és un generador en Python, com utilitza la paraula clau yield per crear iteradors eficients, i exemples pràctics amb funcions i bucles for.
encoded: <img decoding="async" width="300" height="200" src="https://degalalab.com/wp-content/uploads/2025/10/Fluxograma-del-Generador-300x200.jpg" alt="Icona minimalista que representa el concepte “Generador” en Python: tres punts grisos a l’esquerra i una fletxa fúcsia corba que simbolitza el flux seqüencial dels valors produïts amb yield. Estil modern i tecnològic, paleta de colors deGalaLab (#FC3869 i tons grisos)" class="wp-image-7158" style="object-fit:cover" srcset="https://degalalab.com/wp-content/uploads/2025/10/Fluxograma-del-Generador-300x200.jpg 300w, https://degalalab.com/wp-content/uploads/2025/10/Fluxograma-del-Generador-1024x683.jpg 1024w, https://degalalab.com/wp-content/uploads/2025/10/Fluxograma-del-Generador-768x512.jpg 768w, https://degalalab.com/wp-content/uploads/2025/10/Fluxograma-del-Generador-500x333.jpg 500w, https://degalalab.com/wp-content/uploads/2025/10/Fluxograma-del-Generador-800x533.jpg 800w, https://degalalab.com/wp-content/uploads/2025/10/Fluxograma-del-Generador-1280x853.jpg 1280w, https://degalalab.com/wp-content/uploads/2025/10/Fluxograma-del-Generador.jpg 1536w" sizes="(max-width: 300px) 100vw, 300px" /> Definició: Un generador en Python és un tipus especial de funció que retorna un iterador. En lloc de fer servir return, utilitza la paraula clau yield per anar retornant valors un darrere l’altre, sense perdre l’estat intern entre crides. Com funciona un generador Quan una funció conté yield, no s’executa immediatament. En cridar-la, retorna un objecte generador, que pot ser recorregut amb for o amb next(). def comptar(limit): for i in range(1, limit + 1): yield i # Crea un objecte generador gen = comptar(3) print(gen) # &lt;generator object comptar at 0x...&gt; print(next(gen)) # 1 print(next(gen)) # 2 print(next(gen)) # 3 # StopIteration quan s'acaben els valors Avantatges dels generadors Eficiència en memòria: no creen tota la seqüència d’un cop, sinó que generen cada valor quan cal. Fluxos infinits: poden generar valors indefinidam…

Iterador (Python)
type: item
creator: Gloc
date: 2025-10-16T03:52:23Z
description: Què és un iterador en Python? Explicació clara sobre com funciona, diferència amb un iterable, exemples pràctics amb conjunts, llistes i generadors.
encoded: Definició: En Python, un iterador és un objecte que permet recórrer una seqüència d’elements d’un en un. Cada vegada que s’aplica la funció next(), l’iterador retorna el següent element. Quan no en queden més, llença l’excepció StopIteration. Iterador vs. Iterable Iterable: objecte que pot proporcionar un iterador amb iter() (per exemple, list, tuple, set, dict). Iterador: objecte retornat per iter() i consumit per next(). fruits = ["poma", "plàtan", "cirera"] # obtenim un iterador it = iter(fruits) print(next(it)) # poma print(next(it)) # plàtan print(next(it)) # cirera print(next(it)) # StopIteration (quan s'acaben els elements) Característiques principals Els iteradors recorden la posició actual dins de la seqüència. Només es poden recórrer una vegada; un cop consumits, cal crear-ne un de nou. Són ideals per treballar amb grans conjunts de dades o fluxos infinits (gràcies a la generació sota demanda). Com crear un iterador propi Pots crear una classe que implementi els mètodes especials __iter__() i __next__(): class Comptador: def __init__(self, limit): self.limit = limit self.count = 0 def __iter__(self): return self def __next__(self): if self.count < self.limit: self.count += 1 return self.count else: raise StopIteration for num in Comptador(3): print(num) # 1, 2, 3 Relació amb generadors Els generadors són una manera senzilla de crear iteradors utilitzant la paraula clau yield: def comptar(limit): for i in range(1, limit + 1): yield i for n in comptar(3): print(n) Errors comuns i bones pràctiques Consum accidental: un iterador no es pot “reiniciar”; crea’n un de nou amb iter() si cal tornar a començar. Excepció StopIteration: indica que s’han acabat els elements, no és un error real. Iteració segura: els bucles for gestionen automàticament StopIteration. Vegeu també Iterable (Python): objecte capaç de proporcionar un iterador amb iter(). Generador (Python): funció que crea iteradors de forma més simple amb yield. Conjunt (set): estructura iterable que pot co…