我在while循环中有以下代码:
while True:
user_input = input("y or n")
if user_input == "y":
yes()
break
if user_input == "n":
no()
break
def yes():
print("yes")
def no():
print("no")
当我输入" y"时,会出现此消息,导致无法执行该功能。
NameError: name 'yes' is not defined
这是为什么?我怎么解决呢?
答案 0 :(得分:2)
您必须在之前定义函数yes()
和no()
。
像这样:
def yes():
print("yes")
def no():
print("no")
while True:
user_input = input("y or n")
if user_input == "y":
yes()
break
if user_input == "n":
no()
break
这样可以正常工作。
答案 1 :(得分:1)
Python从上到下执行代码,在遇到def
语句时创建函数对象。当它开始执行您的while
循环时,它还没有到达您的def yes():
行,因此函数尚不存在。
在while
循环之前将功能移至顶部。
或者,将循环移动到另一个函数,并在 yes
和no
函数定义之后调用新函数。