En èpoques d'engany com ara, dir la veritat és revolucionari. Front el feixisme, ni un pas enrere! Viure sense llibertat, no és viure, és sobreviure.
La vida és plena de rutines, rentar-nos les dents, activitats que es repeteixen cada setmana...
En la programació també cal fer moltes tasques repetitives. Per gestionar tasques repetitives, els llenguatges de programació utilitzen bucles. El llenguatge de programació Python també disposa de dues instruccions per fer bucles:
WHILE
i FOR
La instrucció WHILE s'utilitza per executar un bloc d'instruccions repetidament fins que es compleix una condició determinada. Quan la condició esdevé falsa, les línies de codi posteriors al bucle WHILE continuaran executant-se.
A l'exemple de la dreta el programa ens mostra:
1
2
3
4
5
Com farem per mostrar del 0 al 6? ======>
i = 1
while i < 6:
print(i)
i = i + 1
i = 0
while i <= 6:
print(i)
i = i + 1
Utilitzant el WHILE, farem un exemple que sumarà els 100 primers números naturals.
i = 1
suma = 0
while i <= 100:
suma = suma + i
i = i + 1
print(suma)
Utilitzant el WHILE, farem un exemple mostrarà els números parells.
numero = int(input("Escriu un número: "))
i = 0
while i <= numero:
print(numero)
numero = numero - 2
Ara afegirem un IF que inclou la instrucció MÒDUL per saber si el número que hem escrit és parell o senar.
======>
numero = int(input("Escriu un número: "))
i = 0
if numero % 2 == 0:
while i <= numero:
print(numero)
numero = numero - 2
else:
print("El número ha de ser parell")
Fem un programa anomenat Cognom_Nom_p9.py que faci les tasques següents:
1.- Utilitzant la instrucció per afegir comentaris escrivim: Genera números parells o senars.
2.- A partir de l'exemple anterior per escriure números parells, afegiu que generi els números senars.
3.- Mireu l'exemple que he creat per saber que vull que mostreu.
#Genera números parells o senars.
numero = int(input("Escriu un número: "))
i = 0
if numero % 2 == 0:
print("Números parells")
print("----------------------------")
while i <= numero:
print(numero)
numero = numero - 2
else:
print("Números Senars")
print("----------------------------")
while i <= numero:
print(numero)
numero = numero - 2
Escriu un número: 10
Números parells
----------------------------
10
8
6
4
2
0
Escriu un número: 11
Números Senars
----------------------------
11
9
7
5
3
1
Fem un programa anomenat Cognom_Nom_p10.py on l'ordinador jugui contra vosaltres. L'ordinador pensarà un número entre el 0 i el 100, i l'haurem d'endevinar:
1.- Utilitzant la instrucció per afegir comentaris escrivim: Endevinar un número entre 0 i 100.
2.- Generem un número aleatori enter entre 0 i 100 que desarem en una variable.
3.- Utilitzant un WHILE, disposarem de 10 intents per endevinar-lo.
4.- Si el número que escrivim és més petit que el proposat per l'ordinador mostrarem el missatge: Em sap greu, però el número 7 que has escrit és més petit que el número correcte.
5.- Si el número que escrivim és més gran que el proposat per l'ordinador mostrarem el missatge: Em sap greu, però el número 7 que has escrit és més gran que el número correcte.
6.- Si el número que escrivim és igual al proposat per l'ordinador mostrarem el missatge: Correcte, has endevinat el número. I acabarem el programa.
7.- Si fem més de 10 intents i no hem endevinat el número mostrarem el missatge: S'ha acabat el joc, has esgotat el número màxim d'intents.
8.- Si el número que escrivim és més petit de 0 o més gran de 100 mostrarem el missatge: S'ha acabat el joc, el número ha de ser més gran de 0 i més petit de 100. I acabarem el programa.
9.- Mireu l'exemple que he creat per saber que vull que mostreu.
Quan endevinem el número:
Número aleatori: 34
----------------------------
Escriu un número: 34
Correcte, has endevinat el número
Quan escrivim un número més petit o més gran:
Número aleatori: 34
----------------------------
Escriu un número: 33
Em sap greu, però el número 33 que has escrit és més petit que el número correcte
Escriu un número: 46
Em sap greu, però el número 46 que has escrit és més gran que el número correcte
Escriu un número:
Quan escrivim un número més petit de 0 o més gran de 100:
Número aleatori: 30
----------------------------
Escriu un número: 222
S'ha acabat el joc, el número ha de ser més gran de 0 i més petit de 100
Quan esgotem el número màxim d'intents:
Número aleatori: 96
----------------------------
Escriu un número: 1
Em sap greu, però el número 1 que has escrit és més petit que el número correcte
Escriu un número: 2
Em sap greu, però el número 2 que has escrit és més petit que el número correcte
Escriu un número: 3
Em sap greu, però el número 3 que has escrit és més petit que el número correcte
Escriu un número: 4
Em sap greu, però el número 4 que has escrit és més petit que el número correcte
Escriu un número: 5
Em sap greu, però el número 5 que has escrit és més petit que el número correcte
Escriu un número: 6
Em sap greu, però el número 6 que has escrit és més petit que el número correcte
Escriu un número: 7
Em sap greu, però el número 7 que has escrit és més petit que el número correcte
Escriu un número: 8
Em sap greu, però el número 8 que has escrit és més petit que el número correcte
Escriu un número: 9
Em sap greu, però el número 9 que has escrit és més petit que el número correcte
Escriu un número: 10
Em sap greu, però el número 10 que has escrit és més petit que el número correcte
----------------------------
S'ha acabat el joc, has esgotat el número màxim d'intents
#Endevinar un número entre 0 i 100.
na = int(random.randint(0, 100))
print("Número aleatori: " + str(na))
print("----------------------------")
i = 1
while(i <= 10):
numero = int(input("Escriu un número: "))
if numero < 0 or numero > 100:
print("S'ha acabat el joc, el número ha de ser més gran de 0 i més petit de 100")
break
if numero < na:
print("Em sap greu, però el número " + str(numero) + " que has escrit és més petit que el número correcte")
if numero > na:
print("Em sap greu, però el número " + str(numero) + " que has escrit és més gran que el número correcte")
if numero == na:
print("Correcte, has endevinat el número")
quit()
i = i + 1
if i >= 10:
print("----------------------------")
print("S'ha acabat el joc, has esgotat el número màxim d'intents")
Escribir un programa que muestre por pantalla la tabla de multiplicar del 1 al 10.
Escribir un programa que almacene la cadena de caracteres contraseña en una variable, pregunte al usuario por la contraseña hasta que introduzca la contraseña correcta.
Fins ara hem vist moltes funcions integrades de Python. En aquesta secció, ens centrarem en les funcions personalitzades. Què és una funció? Abans de començar a crear funcions, aprendrem què és una funció i per què les necessitem.
Una funció és un bloc de codi reutilitzable o instruccions de programació dissenyades per dur a terme una determinada tasca. Per definir o declarar una funció, Python proporciona la paraula clau "def" . La sintaxi següent és per definir una funció. El bloc de codi de funcions només s'executa si la funció es crida o s'invoca.
Quan creem una funció, l'anomenem declaració de funció. Quan comencem a utilitzar-la, l'anomenem crida o invocació de funció. La funció es pot declarar amb o sense paràmetres.
# syntax
# Declaring a function
def function_name():
codes
codes
# Calling a function
function_name()
Una funció es pot declarar sense paràmetres.
Exemple:
def generate_full_name ():
first_name = 'Asabeneh'
last_name = 'Yetayeh'
space = ' '
full_name = first_name + space + last_name
print(full_name)
generate_full_name () # calling a function
def add_two_numbers ():
num_one = 2
num_two = 3
total = num_one + num_two
print(total)
add_two_numbers()
Calculadora amb un menú.
n1 = float(input("Introduce tu primer número: ") )
n2 = float(input("Introduce tu segundo número: ") )
opcion = 0
while True:
print("""
Dime, ¿qué quieres hacer?
1) Sumar los dos números
2) Restar los dos números
3) Multiplicar los dos números
4) Cambiar los números elegidos
5) Apagar calculadora
""")
opcion = int(input("Elige una opción: ") )
if opcion == 1:
print(" ")
print("RESULTADO: La suma de",n1,"+",n2,"es igual a",n1+n2)
elif opcion == 2:
print(" ")
print("RESULTADO: La resta de",n1,"-",n2,"es igual a",n1-n2)
elif opcion == 3:
print(" ")
print("RESULTADO: El producto de",n1,"*",n2,"es igual a",n1*n2)
elif opcion == 4:
n1 = float(input("Introduce tu primer número: ") )
n2 = float(input("Introduce tu segundo número: ") )
elif opcion == 5:
break
else:
print("Opción incorrecta")
Exemple Finestres TKINTER
from tkinter import *
#funciones de procesamiento
def procesar():
resultado = peso.get() + altura.get()
print(resultado)
#Instancia de la clase Tk
ventana = Tk()
ventana.title('Generador de Rutinas')
#Variables que almacenarán los datos
peso = IntVar()
altura = IntVar()
cintura = IntVar()
cuello = IntVar()
genero = IntVar()
genero.set(1)
cadera = IntVar()
actividad = StringVar()
actividad.set("Sedentario")
#generación de widgets
#peso
etiqueta_peso = Label(ventana, text='Peso:')
entrada_peso = Entry(ventana, textvariable=peso)
etiqueta_peso.grid(row=1, column=1)
entrada_peso.grid(row=1, column=2)
#altura
etiqueta_altura = Label(ventana, text='Altura: ')
entrada_altura = Entry(ventana, textvariable=altura)
etiqueta_altura.grid(row=2, column=1)
entrada_altura.grid(row=2, column=2)
#genero
etiqueta_genero = Label(ventana, text='Genero: ')
entrada_genero_1 = Radiobutton(ventana, text='Masculino', variable=genero, value=1)
entrada_genero_2 = Radiobutton(ventana, text='Femenino', variable=genero, value=2)
etiqueta_genero.grid(row=5, column=1)
entrada_genero_1.grid(row=5, column=2)
entrada_genero_2.grid(row=5, column=3)
#actividad
etiqueta_actividad = Label(ventana, text='Actividad: ')
entrada_actividad = OptionMenu(ventana, actividad, "Sedentario", "Moderado", "Activo")
etiqueta_actividad.grid(row=7, column=1)
entrada_actividad.grid(row=7, column=2)
#boton
boton = Button(ventana, text='Procesar', command=procesar, width=20)
boton.grid(row=8, column=3)
#ejecución de ventana
ventana.mainloop()
Per millorar el càlcul de la vostra edat cal tenir en compte els anys de traspàs.
Us han enganyat tota la vida! Els anys no són de 365 dies. La Terra necessita 365 dies, 5 hores, 48 minuts i 45,16 segons per donar una volta al Sol. Per esmenar aquesta diferència i evitar que al llarg del temps s'anés acumulant aquestes 5 hores, 48 minuts i 45,16 i com a conseqüència l'estiu fos, per exemple, al mes de gener cal aplicar unes correccions:
Un de cada quatre anys és de traspàs, això vol dir que aquell any té 366 dies.
Els anys que les dues últimes xifres són 00, per exemple: 1700, 1800, 1900…) no serien anys de traspàs, a excepció d'aquells que fossin divisibles entre 400 (per exemple: 1600, 2000, 2400, etc.) que sí ho serien i tindrien 366 dies.
Els anys de traspàs afegim un dia al mes de febrer.
Com aquests càlculs són una mica complicats de fer-los en la vostra pràctica fareu una aproximació:
Creareu un nou botó i un quadre de text que inserireu entre la línia (hr) i el botó Mesos.
El botó tindrà el nom Any de traspàs
A l'esquerra del quadre de text hi haurà un text que dirà: Cal sumar aquests dies.
El nom del quadre de text serà: qt_sumardies
Quan cliqueu el botó Any de traspàs cridareu a una nova funció que dividirà el número d'anys entre 4 i agafareu la part entera de la divisió que seran els dies que s'afegiran als càlculs.
Ajuda: la instrucció per trobar la part entera d'un número és Math.trunc(aquí estarà la variable que guarda els anys que heu viscut).
Data de lliurament de la pràctica:
Comprimiu la carpeta Cognom_Nom_js1 (damunt de la carpeta Cognom_Nom_js1, cliqueu el botó de la dreta del ratolí i trieu Comprimeix... en format ZIP) i pengeu-la a la Plataforma.
Data d'entrega: 14/03/2025.