Python 最后一行代码不会执行吗?
嗨,我对最后一行代码有问题。它不会打印任何东西Python 最后一行代码不会执行吗?,python,Python,嗨,我对最后一行代码有问题。它不会打印任何东西 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() prin
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'时,应显示正确下一个问题,但它不是,它只是打印正确
提前谢谢你 我在空闲状态下运行代码,缩进被关闭,正如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
。它会爆发。这里有几件事:
elif
,则应将invalid初始化为False
,并设置为True
start()
,这是不必要的;相反,while
可以围绕整个定义(包括if elif
),而invalid
在if
中被设置为False
您必须先设置全局变量,然后将其设置为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')
这解决了您的问题吗?while循环似乎是一个缩进错误。您能正确格式化代码吗?请修复缩进。
global
声明位于每个要使用全局的函数内部,而不是在全局范围内。(global
at global scope应该是一个语法错误,但事实并非如此。)这就是我在PyCharm中运行代码的方式,它与精确的缩进一起工作。显示的缩进不正确。while invalid
循环的缩进不能超过def start
,但不能小于start
正文的第一行。我应该如何为while循环添加结束条件?@damjandjudjevic,如果有帮助,请接受答案,欢迎您。这不起作用,这将导致在赋值或其他操作之前引用变量时出错。是否修复了缩进?