--- 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]}") ```