Also ich bin ein Anfänger, und das ist für eine Klasse, die ich nehme. Ich weiß, über return
, aber es ließ mich nicht tun, was ich versuche in diesem Stück Code zu tunZugriff auf Funktionsvariable außerhalb der Funktion?
Dies ist die Funktion, die die Variable enthält:
def disp_cookies():
# This stuff is just for a print display
inx = 0 # Displays list vertically
while inx < len(flavor_names):
print("{}. {}".format(inx + 1, flavor_names[inx]))
inx += 1
valid_data = False
while not valid_data:
try:
# This is the variable I need
flavor = int(input("\nSelect a number for flavor> "))
if 0 < flavor <= len(flavor_names):
item_list.append(flavor)
print(flavor_names[int(flavor) - 1])
return flavor # This is the return
break
except Exception:
print("\nError. Please try again")
else:
print("\nPlease enter a valid response")
Und hier, wo ich versuche, die Variable zu verwenden:
print("\n", flavor) # This is outside of the function in the previous snippet btw
print("\n{}s, {} box(es), ${} total".format(flavor_names[flavor - 1], qty_list[order_no], item_total))
Dies ist der Fehler, den ich bekommen:
Traceback (most recent call last):
File "C:\Users\wiche\Documents\School\Python CIS122\L8_orderCost.py", line 95, in <module>
print("\n", flavor)
NameError: name 'flavor' is not defined
Ich kann den Fehler loswerden, indem ich flavor
außerhalb der Funktion definiere, aber dann sind die Daten in der Variablen falsch, wenn ich sie benutze. Irgendeine Idee, was ich tun kann, um es zu reparieren?
Denken Sie daran, ich bin ein absoluter Anfänger, was Sie sehen im Grunde alles, was ich von Python zu verstehen, so weit
Thank you!
Vielen Dank für Ihre Antwort !! Jetzt habe ich ein neues Problem. Ich habe den aktualisierten Code wie folgt: 'flavour = disp_cookies()' 'drucken (" \ n ", Geschmack)' 'drucken (" \ n {} s, {} Box (es), $ {} gesamt".Format (flavor_names [Geschmack], qty_list [order_no], item_total)) ' Aber jetzt bekomme ich diesen Fehler: Indexerror: Listenindex außerhalb des zulässigen Bereichs Nenne ich die Variable irgendwie falsch? – tonberryking
@tonberryking, bitte fragen Sie dies als eine separate Frage. Es ist schwierig, Probleme in Kommentaren zu beheben - ich kann den Code nicht kopieren und aus einem Kommentar einfügen und ausführen! Wenn Sie Ihr Programm auf ein [kleines, in sich geschlossenes Beispiel] (http://sscce.org/) reduzieren, erhalten Sie eine schnelle Antwort. –