所以我是初学者,这是我正在上的一堂课。我知道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/)将有助于您及时做出回应。 –