[Risolto] Python: global name 'xxx' is not defined

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
raffaele63
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 348
Iscrizione: lunedì 3 ottobre 2011, 12:27
Desktop: Lubuntu
Distribuzione: Lubuntu 22.04.1 LTS (Jammy Jellyfis
Sesso: Maschile

[Risolto] Python: global name 'xxx' is not defined

Messaggio da raffaele63 »

Ciao,
sono fermo con la programmazione perché sto avendo un paio di errori nel codice qui sotto. Fino a ieri tutto procedeva bene, ma oggi quando ho ripreso il progetto mi ha dato problemi e mi trovo spiazzato perché "non so perché" :D .
Vi posto il codice:

Codice: Seleziona tutto

import random, sys

def scelta():
    print ("A: ")
    print
    print ("B: ")
    print
    print ("C: ")
    print
    print ("D: ")
    print
    print ("E: ")
    print
    print ("F: Uscita")
    print
    iniz=raw_input("\t\tInserire l'opzione: ")
    if iniz=="A":
        scelta_A()
        print
        scelta()
    elif iniz=="B":
        scelta_B()
        print
        scelta()
    elif iniz=="C":
        scelta_C()
        print
        scelta()
    elif iniz=="D":
        scelta_D()
        print
        scelta()
    elif iniz=="E":
        scelta_E()
        print
        scelta()
    elif iniz=="F":
        scelta_F()

def num_soc():
    for i in range(0,5): sys.stdout.write(str(random.randint(0,5)))
    print (" -"),num_id_soc()

def gen_numerazione():
    foo = range(1,n_sett+1)
    random.shuffle(foo)
    print ",".join([str(i)for i in foo])

def scelta_A():
    print
    num_id_soc=input("\t\tInserite il codice di riferimento: ")
    print
    num_soc()
    tsoc=input("Tessera sociale: ")
    cogn=raw_input("Cognome: ")
    nome=raw_input("Nome: ")
    resi=raw_input("Via e civico: ")
    cpci=raw_input("CAP, Citta e Prov.: ")
    codf=raw_input("Codice fiscale: ")
    tssn=input("Tessera SSN: ")
    tele=raw_input("Telefono: ")
    print
    print ("\t\tAttenzione: scegliere l'opzione B solo se agonista")
    
def scelta_B():
    pass

def scelta_C():
    gara=raw_input("Tipologia gara: ")
    tipo=raw_input("Evento sportivo: ")
    soci=raw_input("Tesserato: ")
    n_sett=input("Quanti settori? ")
    print
    gen_numerazione()
    
def scelta_D():
    pass

def scelta_E():
    pass

def scelta_F():
    quit

print("\t\tPer favore indicare l'opzione desiderata")
print
scelta()
Ecco, gli errori che mi fermano sono nella funzione num_soc, e nella funzione gen_numerazione, che ripeto ieri andava tutto bene, ho necessità di capire cosa può essere andato storto.
Grazie.
Ultima modifica di raffaele63 il sabato 3 maggio 2014, 14:49, modificato 2 volte in totale.
Bisognerebbe evitare di predicare ai giovani il successo nella solita forma come lo scopo principale nella vita.
Il motivo più importante per lavorare a scuola e nella vita è il piacere nel lavoro, piacere nel suo risultato e la conseguenza del valore del risultato per la comunità. ( A.E. )
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ora ho un paio di intoppi

Messaggio da Zoff »

Dai un titolo pertinente alla discussione. Grazie.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
raffaele63
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 348
Iscrizione: lunedì 3 ottobre 2011, 12:27
Desktop: Lubuntu
Distribuzione: Lubuntu 22.04.1 LTS (Jammy Jellyfis
Sesso: Maschile

Re: Ora ho un paio di intoppi

Messaggio da raffaele63 »

Zoff ha scritto:Dai un titolo pertinente alla discussione. Grazie.
Assolutamente, e per grazia hai suggerimenti? perché al momento non mi sovviene nulla che non sia: avere un paio di problemini o errori di codice, ma nel caso sapresti consigliarmi?
Bisognerebbe evitare di predicare ai giovani il successo nella solita forma come lo scopo principale nella vita.
Il motivo più importante per lavorare a scuola e nella vita è il piacere nel lavoro, piacere nel suo risultato e la conseguenza del valore del risultato per la comunità. ( A.E. )
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Ora ho un paio di intoppi

Messaggio da Zoff »

Direi [Python] + errore che ricevi
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
raffaele63
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 348
Iscrizione: lunedì 3 ottobre 2011, 12:27
Desktop: Lubuntu
Distribuzione: Lubuntu 22.04.1 LTS (Jammy Jellyfis
Sesso: Maschile

Re: Ora ho un paio di intoppi

Messaggio da raffaele63 »

Opss, anche ieri ho scordato di descrivere il linguaggio. Chiedo scusa ma sono distratto dal codice e non espongo correttamente.
Bisognerebbe evitare di predicare ai giovani il successo nella solita forma come lo scopo principale nella vita.
Il motivo più importante per lavorare a scuola e nella vita è il piacere nel lavoro, piacere nel suo risultato e la conseguenza del valore del risultato per la comunità. ( A.E. )
Avatar utente
Claudio_F
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1463
Iscrizione: lunedì 28 maggio 2012, 18:49
Desktop: Mate/Gnome
Distribuzione: Ubu22.04

Re: Python: global name 'xxxxx' is not defined

Messaggio da Claudio_F »

L'errore non è nel codice che hai riportato, in cui non compare neppure una 'x'.
:ciao:
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Python: global name 'xxxxx' is not defined

Messaggio da Zoff »

Ovviamente l'errore non riporta xxxxx, come ha scritto nel primo messaggio la variabile incriminata è num_soc
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
raffaele63
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 348
Iscrizione: lunedì 3 ottobre 2011, 12:27
Desktop: Lubuntu
Distribuzione: Lubuntu 22.04.1 LTS (Jammy Jellyfis
Sesso: Maschile

Re: Python: global name 'xxxxx' is not defined

Messaggio da raffaele63 »

L'errore mi vieni dato sia per num_soc che per gen_numerazione. In entrambi i casi risulta non definito il nome globale. Qualcuno può indirizzarmi su come affrontare il problemino?
Bisognerebbe evitare di predicare ai giovani il successo nella solita forma come lo scopo principale nella vita.
Il motivo più importante per lavorare a scuola e nella vita è il piacere nel lavoro, piacere nel suo risultato e la conseguenza del valore del risultato per la comunità. ( A.E. )
raffaele63
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 348
Iscrizione: lunedì 3 ottobre 2011, 12:27
Desktop: Lubuntu
Distribuzione: Lubuntu 22.04.1 LTS (Jammy Jellyfis
Sesso: Maschile

Re: [Risolto] (da solo)Python: global name 'xxx' is not defi

Messaggio da raffaele63 »

Ho fatto così:
dalla funzione scelta_C(), ho spostato la variabile n_sett nella funzione gen_numerazione().

Codice: Seleziona tutto

def gen_numerazione():
    n_sett=input("Quanti settori? ")
    foo = range(1,n_sett+1)
    random.shuffle(foo)
    print "\t\t",",".join([str(i)for i in foo])

def scelta_C():
    gara=raw_input("Tipologia gara: ")
    tipo=raw_input("Evento sportivo: ")
    soci=raw_input("Tesserato: ")
    gen_numerazione()
Così facendo non mi riporta più il name error e mi continua nel programmino.
Per quanto riguarda l'altro errore, ho fatto in modo che i numeri casuali mi vengano messi a video prima della variabile t_soc. Al momento mi va bene così, grazie a tutti per l'attenzione.
Bisognerebbe evitare di predicare ai giovani il successo nella solita forma come lo scopo principale nella vita.
Il motivo più importante per lavorare a scuola e nella vita è il piacere nel lavoro, piacere nel suo risultato e la conseguenza del valore del risultato per la comunità. ( A.E. )
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti