您好我的代码的最后一行有问题。它不会打印任何东西。
invalid=True
global invalid
def start()
x = input('Type the correct key:')
if ("m" == x) or ("M"==x):
print('Correct!')
elif x!='m' or x!='M':
print('Invalid Input.')
invalid=False
while invalid:
start()
print('Next Question')
当输入为'm'或'M'时,应该说正确!
下一个问题,但它不只是打印正确!
提前谢谢!
答案 0 :(得分:1)
我在IDLE中运行代码并且缩进已关闭,同样如user2357112所述,global应该进入函数但我不知道你为什么使用它。
此外,你应该有一个条件让你的while循环结束。现在循环不会结束。
def start():
invalid=True
global invalid
x = input('Type the correct key:')
if ("m" == x) or ("M"==x):
print('Correct!')
else:
print('Invalid Input.')
invalid=False
while invalid:
start()
print('Next Question')
这可能会有所帮助
def startm():
valid = True
while(valid):
x = input('Type the correct key:')
if ("m" == x) or ("M"==x):
print('Correct!')
else:
print('Invalid Input.')
valid=False
您可以使用条件True
启动while循环,只要其有效循环将继续运行。一旦循环变为False
。它会爆发。
答案 1 :(得分:0)
这里有几件事:
False
被触发,则无效应初始化为True
并设置为elif
。start()
,这是不必要的;相反,while
可以围绕整个定义(包含if-elif
),invalid
内的False
设置为if
。答案 2 :(得分:-1)
您必须先设置全局变量,然后将其设置为True。这将有效
global invalid
invalid = True
def start():
x = input('Type the correct key:')
if ("m" == x) or ("M"==x):
print('Correct!')
elif x!='m' or x!='M':
print('Invalid Input.')
invalid=False
while invalid:
start()
print('Next Question')
这可以解决你的问题吗?