---
# System prepended metadata

title: ASIX1 M03. Python cookbook
tags: [' programació', asix]

---

---
title: ASIX1 M03. Python cookbook
tags: asix, programació
---

<div style="width: 30%; margin-left: auto;">
    
![](https://hackmd.io/_uploads/HJiR4eGJT.png)    
    
</div>

<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Llicència de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />Aquesta obra està subjecta a una llicència de <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Reconeixement-CompartirIgual 4.0 Internacional de Creative Commons</a>


# ASIX1 M03: Python cookbook
[vincle a font en MarkDown](https://hackmd.io/OV74Q59BSNmpJMNkhQwpIg)
## ·:: Creació d'un programa en Python ::·

---

### Barebone o la estructura mínima recomanada.
Desar aquest troç de codi en un fitxer i utilitzar com a plantilla al crear qualsevol programa.
```python=
#!/usr/bin/python3        #-> Capçalera on li diem quin és l'intèrpret.

"""
    Barebone o la estructura mínima recomanada.
    #-> Abans d'utilitzar, esborrar tots els comentaris que comencin amb: '#->' 
    #-> Comentari multilínia on expliquem somerament què fa el programa.
    
"""

__author__ = "Xavi Quesada"  #-> Qui ha creat el programa.

#-> A partir d'aquí el codi
```
### Barebone per a utilitzar doctest.
Tot i que encara no sabem utilitzar funcions per a estructurar el nostre codi, podem tenir un barebone amb una funció principal *'pre-fabricada'* que ens permeti utilitzar les capacitats de doctest per a provar el nostre programa.
```python=
#!/usr/bin/python3        #-> Capçalera on li diem quin és l'intèrpret.
# _*_ coding: utf-8 _*_   #-> Indicació de la codificació utilitzada al fitxer

"""
    Barebone o la estructura mínima recomanada.
    #-> Abans d'utilitzar, esborrar tots els comentaris que comencin amb: '#->' 
    #-> Comentari multilínia on expliquem somerament què fa el programa.
    
"""

__author__ = "Xavi Quesada"  #-> Qui ha creat el programa.

def main():
    #-> aquí el nostre codi
    pass
    
if __name__ == "__main__":
    main()
```

### Variables.
1. Donar noms descriptius.
2. Intentar que comencin per lletres minúscules.
3. Separar les paraules amb caracter de subratllat (barra baja) '_'.
4. Recordem que són sensibles a majúscules/minúscules (case sensitive).

#### Creació de variables.
```python=
es_par = True
color_del_fons = "#A455FE"
hipotenusa = 23.5
comptador = 4
alumnes = ["Alicia", "Guiem"]
alt, llarg, fons = 45, 23, 13
```
## ·:: Condicionals. Presa de decisions ::·
Prenem decisions amb l'estructura '**if: ... else:**'
### Realitzar o no una acció:
```python=
if saludar:
    print("Hola mundo!")
```
### Triar entre 2 possibilitats
```python=
if es_parell:
    print("El nombre és divisible entre 2.");
else:
    print("No podem dividir aquest nombre entre 2.");
```
### Triar entre varies possibilitats
```python=
if diferencia >= 100:
    bitllets_de_100_entregats = bitllets_de_100_entregats + 1
elif diferencia >= 50:
    bitllets_de_50_entregats = bitllets_de_50_entregats + 1
elif diferencia >= 20:
    bitllets_de_20_entregats = bitllets_de_20_entregats + 1
elif diferencia >= 10:
    bitllets_de_10_entregats = bitllets_de_10_entregats + 1
else:
    print("Canvi entregat.");
```
## ·:: Bucles. Repetir accions ::·
### Repetir sense saber quantes vegades ho faré.
```python=
while tinc_gana:
    print("Prenc una cullerada de sopa.")
    tinc_gana = tinc_gana -1
```
### Repetir coneixent el nombre de vegades amb anterioritat.
#### Un nombre predeterminat.
```python=
quantitat = 5;
for iteracio in range(quantitat):
    print(f"{iteracio} vegades")
```
#### Entre dos nombres concrets.
```python=
inici, final = 5, 20; # Final no inclós.

for iteracio in range(inici, final):
    print(f"{iteracio} -> fem-ho!")
```
#### Entre dos nombres concrets i definint el tamany de pas (salt de granota).
```python=
inici, final, salt = 5, 20, 2; # Final no inclós.

for iteracio in range(inici, final, salt):
    print(f"{iteracio} -> fem-ho!")
```
Output:
```bash=
'5 -> fem-ho!'
'7 -> fem-ho!'
'9 -> fem-ho!'
'11 -> fem-ho!'
'13 -> fem-ho!'
'15 -> fem-ho!'
'17 -> fem-ho!'
'19 -> fem-ho!'
```
#### Un cop per a cada el·lement d'una llista.
```python=
fruites_que_magraden = ["poma", "cirera", "prèssec", "mango", "síndria"]
for fruita in fruites_que_magraden:
    print(f"{fruita}, I love it!")
```
#### Combinar dues llistes recorrent tots els seus el·lements.
```python=
fruites_que_magraden = ["poma", "cirera", "prèssec", "mango", "síndria"]
cremes_o_salses_que_magraden = ["nata", "ketchup", "crema catalana", "dulce de leche"]
for fruita in fruites_que_magraden:
    for crema in cremes_o_salses_que_magraden:
        print(f"{fruita} amb {crema}, I love it!")
```
Aquest script te com a sortida:
```bash=
$ python3 barreja_cremes_amb_fruites.py

> poma amb nata, I love it!
> poma amb ketchup, I love it!
> poma amb crema catalana, I love it!
> poma amb dulce de leche, I love it!
> cirera amb nata, I love it!
> cirera amb ketchup, I love it!
> cirera amb crema catalana, I love it!
> cirera amb dulce de leche, I love it!
> prèssec amb nata, I love it!
> prèssec amb ketchup, I love it!
> prèssec amb crema catalana, I love it!
> prèssec amb dulce de leche, I love it!
> mango amb nata, I love it!
> mango amb ketchup, I love it!
> mango amb crema catalana, I love it!
> mango amb dulce de leche, I love it!
> síndria amb nata, I love it!
> síndria amb ketchup, I love it!
> síndria amb crema catalana, I love it!
> síndria amb dulce de leche, I love it!
```
## ·:: Obtenció de paràmetres ::·
### Demanant-li a l'usuari: input()
#### Demanant valors individuals.
```python=
nom_usuari = input("Introdueix un el teu nom ")
nombre_nat = int(input("Introdueix un nombre natural ")) # Conversió a enter
nombre_real = float(input("Introdueix un nombre real ")) # Conversió a real en representació de coma flotant
```
#### Demanant una llista de valors.
```python=
nom_individual = None
llista_de_noms = []
while nom_individual != ""
    nom_individual = input("Introduiu els vostres noms o res pes a finalitzar>")
    if nom_individual != "":
        llista_de_noms.append(nom_individual)
print(llista_de_noms)
```
### Llegint els paràmetres de la línia de comandes.
```python=
import sys  #-> No oblidar la importació de la llibreria de sistema.

print(f"Hi ha {len(sys.argv) - 1} paràmetres disponibles.")
print(f"Primer paràmetre {sys.argv[1]}")
print(f"Segon paràmetre {sys.argv[2]}")
print(f"Nom del programa {sys.argv[0]}")
```
