Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我想这样做,如果你输入了错误的文本,它仍然会工作?_Python_Python 2.7_Variables_If Statement_Input - Fatal编程技术网

Python 我想这样做,如果你输入了错误的文本,它仍然会工作?

Python 我想这样做,如果你输入了错误的文本,它仍然会工作?,python,python-2.7,variables,if-statement,input,Python,Python 2.7,Variables,If Statement,Input,我想这样做,如果我输入其他内容,它将要求我再次输入,而不是错误使用elif将您的条件链接在一起;然后只会选择一个匹配条件: question = input('Please choose one. add, times, divide, minus') if (question=='add'): if (question=='times'): if (question=='divide'): if (question=='minus'): 附加的优点是,您现在可以添加一个else块,以捕获用

我想这样做,如果我输入其他内容,它将要求我再次输入,而不是错误

使用
elif
将您的条件链接在一起;然后只会选择一个匹配条件:

question = input('Please choose one. add, times, divide, minus')

if (question=='add'):
if (question=='times'):
if (question=='divide'):
if (question=='minus'):
附加的优点是,您现在可以添加一个
else
块,以捕获用户没有选择上述任何一项的情况:

您可以将您的问题放入一个无休止的循环中,然后使用
中断
跳出该循环,或者使用
继续
从顶部重新启动循环:

if (question=='add'):
elif (question=='times'):
elif (question=='divide'):
elif (question=='minus'):
else:

另请参见此处有关堆栈溢出的规范问题。

除非用户输入正确的输入,否则它将持续ping用户

while True:
    question = input('Please choose one. add, times, divide, minus')

    if (question=='add'):
        # 
    elif (question=='times'):
        #
    elif (question=='divide'):
        #
    elif (question=='minus'):
        # 
    else:
        print('Please enter a valid option!')
        continue

    # we got here, so we must've had a proper input
    break        
继续问:

while True:
    question = input('Please choose one. add, times, divide, minus')

    if (question=='add'):
        #Do processing
        break
    elif (question=='times'):
        #Do processing
        break
    elif (question=='divide'):
        #Do processing
        break
    elif (question=='minus'):
        #Do processing
        break
    else:
        print "Please enter a valid input !"

请注意,要中断循环,答案必须是备选方案之一。

使用
else
condition我该如何做?是否有人可以帮助我将结果写入csv文件。write(问题+“|”+“+name+””的结果:{0}正确,{1}不正确/n)。format(stats['correct'],stats['correct']))这就是我到目前为止所知道的。不要用一个新问题来取代你已经得到答案的问题,这个新问题会使答案变得毫无意义。很抱歉,它不会让我问一个新问题。在这种情况下,你能到达
break
语句吗?似乎所有不正确/未知的输入都会落在
else
statement@bvidal:完全正确,它使用
continue
再次询问。如果输入正确,则在处理输入后会到达
break
。确定以避免在每个
If/elif
语句中出现break语句。明白了@bvidal:没错,否则您需要4个,每个分支一个。@bvidal:就我个人而言,我会将提示转给一个单独的函数,该函数被赋予有效的输入选项以进行检查。只有用户提供了正确、有效的输入,它才会返回。
while True:
    question = input('Please choose one. add, times, divide, minus')

    if (question=='add'):
        #Do processing
        break
    elif (question=='times'):
        #Do processing
        break
    elif (question=='divide'):
        #Do processing
        break
    elif (question=='minus'):
        #Do processing
        break
    else:
        print "Please enter a valid input !"
question = ''
while question not in ('add', 'times', 'divide', 'minus'):
    question = input('Please choose one. add, times, divide, minus')

if question == 'add':
     # do something
elif question == 'times':
     # do something
...