所以我是初學者,這是我正在上的一堂課。我知道return
,但它不是讓我做什麼我想在這段代碼做函數外的訪問函數變量?
這是包含該變量的函數:
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")
這裏的地方我想使用變量:
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))
這是我的錯誤:
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
我可以通過在函數外部定義flavor
來擺脫錯誤,但是當我使用它時,變量中的數據是錯誤的。任何想法我可以做什麼來解決它?
請記住我是一個絕對的初學者,你看到的是我基本上都明白蟒到目前爲止
謝謝!
謝謝您的回覆! 現在我有一個新的問題,但。我有更新的代碼如下: 'flavor = disp_cookies()' 'print(「\ n」,flavor)' 'print(「\ n {} s,{} box(es),$ {總」。格式(flavor_names [味],qty_list [order_no],ITEM_TOTAL))' 但現在我得到這個錯誤: IndexError:列表索引超出範圍 難道我莫名其妙地叫可變錯了嗎? – tonberryking
@tonberryking,請問這是一個單獨的問題。很難排除評論中的問題 - 我無法從評論中複製粘貼代碼並運行它!將您的程序縮減爲[簡短,自包含的示例](http://sscce.org/)將有助於您及時做出迴應。 –