2.5 Entrada i eixida en Python
Quan programem, necessitem mostrar informació i demanar dades a l’usuari. Això és el que anomenem eixida (mostrar) i entrada (llegir). En Python utilitzarem sobretot dues funcions:
print()→ mostra informació per pantallainput()→ demana dades a l’usuari
1. Mostrar informació amb print()
La funció print() mostra per pantalla missatges, variables, operacions o una combinació de totes.
Exemple bàsic
print("Hola món")
Mostrar variables
nom = "Anna"
print("Hola", nom)
En aquest cas, print() separa automàticament els elements amb un espai.
1.1. Canviar el separador: sep
Quan cridem print() amb diversos elements, Python els separa per defecte amb un espai:
print(1, 2, 3) # 1 2 3
Amb el paràmetre sep podem decidir quin separador volem utilitzar:
print(2, 4, 6, sep="-") # 2-4-6
print("a", "b", "c", sep=" | ") # a | b | c
Això és útil quan volem donar format a la informació (per exemple, llistes, dates o codis) sense haver de concatenar textos manualment.
1.2. Evitar el salt de línia: end
Per defecte, cada vegada que utilitzem print(), Python afegeix un salt de línia al final. Això vol dir que el següent print() sempre començarà en una línia nova:
print("Hola")
print("món")
Eixida:
Hola
món
Si volem evitar aquest comportament i continuar escrivint en la mateixa línia, podem utilitzar el paràmetre end, que indica què volem que es pose al final del print().
print("Hola", end=" ")
print("món")
Eixida:
Hola món
En este exemple hem substituït el salt de línia per un espai " ". Podem posar qualsevol cosa en end: un guió, una coma, un text o fins i tot res.
Altres exemples útils:
print("A", end="-")
print("B", end="-")
print("C")
Eixida:
A-B-C
Este comportament és útil quan volem construir una línia a poc a poc, mostrar menús, animacions senzilles o imprimir dades en format controlat.
1.3. Intercalar variables en un text: f-strings
Quan volem escriure un text que incloga variables, la manera més senzilla i llegible és utilitzar f-strings. Una f-string és simplement una cadena que comença amb una f, i que permet posar variables dins de {}.
nom = "Pau"
edat = 16
print(f"{nom} té {edat} anys")
Eixida:
Pau té 16 anys
Exemple amb operacions internes
Podem fer càlculs directament dins del text:
a = 5
b = 3
print(f"La suma de {a} i {b} és {a + b}")
Eixida:
La suma de 5 i 3 és 8
IMPORTANT: Dins d’una f-string, Python avaluarà qualsevol expressió entre {} abans de construir el text.
2. Demanar informació amb input()
input() mostra un text i espera que l’usuari escriga alguna cosa i preme Enter.
nom = input("Com et dius? ")
print("Encantat,", nom)
En aquest exemple, input() mostra el missatge “Com et dius? “ i espera que l’usuari escriga el seu nom. Quan l’usuari prem Enter, el text que ha escrit es guarda a la variable nom.
IMPORTANT!!:
input()sempre retorna un text (str), encara que escrigues números.
2.1. Convertir el resultat
La funció input() sempre retorna un text, encara que l’usuari escriga un número. Això vol dir que, si escrius “18”, Python rep "18" (una cadena), no 18 (un enter).
Per tant, per fer operacions matemàtiques:
- primer demanem el valor amb
input() - després convertim el text a número amb
int()ofloat()
Exemple bàsic amb enters
edat = int(input("Quants anys tens? "))
print("L'any que ve tindràs", edat + 1)
Eixida (si escrius 17):
L'any que ve tindràs 18
Exemple del que NO es pot fer
edat = input("Edat: ")
print(edat + 1) # ERROR!
Error:
TypeError: can only concatenate str (not "int") to str
Exemple amb decimals: usar float()
nota = float(input("Nota (per exemple 7.5): "))
print("Has tret un", nota)
Eixida:
Has tret un 7.5
Exemple útil combinant conversió i f-string
any_naixement = int(input("Any de naixement: "))
any_actual = 2025
print(f"Tens {any_actual - any_naixement} anys.")
Eixida (si escrius 2008):
Tens 17 anys.
En resum:
| Funció | Per a què s’utilitza |
|---|---|
int() | Convertir text a enter |
float() | Convertir text a decimal |
str() | Convertir un valor a text |
2.2. input() sense missatge i amb .strip()
A vegades volem llegir simplement el que escriu l’usuari:
text = input()
I .strip() és útil per eliminar espais sobrants:
nom = input("Nom: ").strip()
3. Exemples complets per a classe
3.1. Calculadora simple
x = float(input("Número 1: "))
y = float(input("Número 2: "))
print(f"Suma: {x + y}")
print(f"Resta: {x - y}")
print(f"Multiplicació: {x * y}")
print(f"Divisió: {x / y}")
3.2. Missatge personalitzat
nom = input("Com et dius? ")
any_naixement = int(input("Any de naixement: "))
any_actual = 2025
edat = any_actual - any_naixement
print(f"Hola {nom}, tens {edat} anys.")
4. Errors habituals amb print() i input()
Coneixer-los ajuda a evitar molts problemes.
4.1. Sumar text i número
edat = input("Edat: ")
print("Any que ve tindràs " + edat + 1) # ERROR
Solució:
edat = int(input("Edat: "))
print(f"L'any que ve tindràs {edat + 1}")
4.2. Oblidar parèntesis
print "Hola" # Incorrecte
nom = input "Nom: "
Correcte:
print("Hola")
nom = input("Nom: ")
4.3. No convertir a decimal
nota = int(input("Nota: ")) # Si escrius 7.5 → ERROR
Correcte:
nota = float(input("Nota: "))
4.4. Intentar operar sense convertir
a = input("Número: ")
b = input("Número: ")
print(a * b) # ERROR
Correcte:
a = int(input("Número: "))
b = int(input("Número: "))
print(a * b)
4.5. No deixar espai en el missatge
nom = input("Com et dius?")
Correcte:
nom = input("Com et dius? ")
4.6. No utilitzar f-strings quan seria útil
print("Hola", nom, "tens", edat, "anys")
Millor:
print(f"Hola {nom}, tens {edat} anys")
4.7. Confusions amb sep i end
print("A", "B", "C", sep=" | ", end=" -> ")
print("D")
Eixida:
A | B | C -> D
4.8. Escriure int(input) sense parèntesis
Incorrecte:
edat = int(input)
Correcte:
edat = int(input("Edat: "))
4.9. Concatenació amb + quan no toca
Incorrecte:
print("La suma és " + a + b)
Correcte:
print("La suma és", a + b)
o:
print(f"La suma és {a + b}")
4.10. Cometes mal tancades
Incorrecte:
print("Hola món')
Correcte:
print("Hola món")
print('Hola món')
4.11. SyntaxError (error de sintaxi)
Es produeix quan Python troba alguna cosa que no pot interpretar perquè no segueix les regles del llenguatge.
Exemples típics:
if x > 5
print("Hola")
Error:
SyntaxError: expected ':'
O cometes mal posades:
print("Hola)
4.12. ValueError (valor no convertible)
Succeeix quan intentem convertir un text a número, però el text no és un número real.
edat = int("hola") # ERROR
Error:
ValueError: invalid literal for int()
És un dels errors més freqüents amb input().
5. Resum d’entrada i eixida
| Element | Què fa | Exemple | Nota |
|---|---|---|---|
print() | Mostra informació | print("Hola") | Salt de línia per defecte |
sep | Canvia separador | print(1, 2, sep="-") | No modifica el final |
end | Canvia final | print("Hola", end=" ") | Evita el salt |
| f-strings | Mostrar variables dins del text | f"{nom} té {edat} anys" | Clar i modern |
input() | Demana informació | input("Nom: ") | Sempre retorna text |
int() | Text → enter | int("5") | Necessari per sumar |
float() | Text → decimal | float("3.5") | Usa punt |
str() | Valor → text | str(20) | Per concatenar |
5.2. Miniexemples
| Vols fer…? | Usa… |
|---|---|
| Demanar un nom | input("Nom: ") |
| Demanar un enter | int(input("Número: ")) |
| Demanar un decimal | float(input("Nota: ")) |
| Mostrar text i variable | print("Hola", nom) |
| Mostrar formatat | print(f"{nom} té {edat} anys") |
| Mostrar sense salt | print("Hola", end="") |