View Full Version : [Python] Funzioni in Python 2 e 3
Ciao, ho una semplicissima funzione in Python 2 che non và con il 3. Stò cercando di capire cosa cambia tra le due versioni (sono alle primissime armi e non era previsto di usare Python). Ho letto la documentazione ufficiale ma gli esempi proposti sono lontani dalla semplicità della mia funzione. Sò che print nel 3 è diventata una funzione e quindi rispetto all' esempio che allego devo aggiungere un paio di parentesi, però il problema non è lì. Se serve posto l' errore ottenuto. Funzione:
def areaRettangolo(base, altezza):
area = base * altezza
return area
base = input("Inserisci la base del rettangolo ")
altezza = input("Inserisci l'altezza del rettangolo ")
print areaRettangolo(base, altezza)
cdimauro
01-10-2011, 18:04
In Python 2 erano presenti due funzioni, input e raw_input; la prima che prelevava l'input dell'utente, e lo valutavava (es: mettendo "10" input restituiva l'intero 10, mettendo "10.0" il float 10.0, ecc.; esattamente se si trattasse di un'espressione Python digitata nell'interprete interattivo) mentre la seconda che torna l'input dell'utente così com'è.
In Python 3 la input è scomparsa, mentre raw_input è stata chiamata input.
Quindi se vuoi scrivere quel codice in modo che sia compatibile con entrambe le versioni di Python, devi fare così:
try:
input = raw_input # OK in Python 2: input diventa uguale a raw_input
except:
pass # Python 3 non ha raw_input, per cui input funziona già come vorremmo
def areaRettangolo(base, altezza):
area = int(base) * int(altezza)
return area
base = input("Inserisci la base del rettangolo ")
altezza = input("Inserisci l'altezza del rettangolo ")
print (areaRettangolo(base, altezza))
Ciao, ti ringrazio per l' aiuto, aiutandomi con l' errore generato avevo anche io provato anteponendo int ai due parametri da moltiplicare, ma inspiegabilmente non andava. Ora funziona bho.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.