Ciao ragazzi, ho cominciato da pochi giorni a studiare Python (è il primo linguaggio di programmazione che vorrei imparare), e sto utilizzando la guida tradotta in italiano A Byte of Python (se non posso scriverlo editate pure).
Vorrei utilizzare questo topic per racchiudere tutte le mie domande e i miei dubbi man mano che andrò avanti con lo studio, in modo da non dover aprire una discussione per ogni domanda.
Sono arrivato al capitolo sulle funzioni, e mi sembrano abbastanza chiare, però incontro un problema in un programmino banalissimo che ho scritto per testare l'istruzione global.
Eseguendolo riscontro il messaggio:
TypeError: globalx() takes no arguments (1 given)
Mi sembra di aver capito che devo mettere qualcosa fra le parentesi nella definizione di globalx(), e ho notato che posso scriverci una cosa qualsiasi per far funzionare il programma, e non capisco perchè. Potreste spiegarmi come agisce Python in questo caso?
Vorrei utilizzare questo topic per racchiudere tutte le mie domande e i miei dubbi man mano che andrò avanti con lo studio, in modo da non dover aprire una discussione per ogni domanda.
Sono arrivato al capitolo sulle funzioni, e mi sembrano abbastanza chiare, però incontro un problema in un programmino banalissimo che ho scritto per testare l'istruzione global.
Codice:
print('Questo programma dimostra come una variabile all\'interno di una funzione possa essere assimilata anche dal blocco principale attraverso l\'istruzione global.')
x=input('Inserisci un valore che vuoi sia dato alla x, tenendo conto che siamo ancora nel blocco principale: ')
print('La x vale ' + str(x) + '.')
s=x
def globalx():
global x
x=input('Siamo entrati nella funzione globalx, inserisci il valore che vuoi sia dato alla x all\'interno della funzione, sapendo che abbiamo appena applicato alla x l\'istruzione global: ')
print('Ora la x vale '+str(x)+', e siamo ancora all\'interno della funzione globalx.')
globalx(x)
print('Siamo appena usciti dalla funzione globalx, e la x vale '+str(x)+', e non più '+str(s)+'. \nAlla prossima.')
Eseguendolo riscontro il messaggio:
TypeError: globalx() takes no arguments (1 given)
Mi sembra di aver capito che devo mettere qualcosa fra le parentesi nella definizione di globalx(), e ho notato che posso scriverci una cosa qualsiasi per far funzionare il programma, e non capisco perchè. Potreste spiegarmi come agisce Python in questo caso?