Python-如何在int-turning输入中的空值之后中断while循环?

Python-如何在int-turning输入中的空值之后中断while循环?,python,python-3.x,if-statement,while-loop,Python,Python 3.x,If Statement,While Loop,我想在键入空输入时使while循环中断。 我知道错误是由int函数引起的,因为它不能将整数转换为空输入,但是我如何才能完成我试图编写的内容呢 while True: numb = int(input("number")) if numb % 2 == 0: print("this number is even") elif numb % 2 != 0: print("this number is odd") elif numb ==

我想在键入空输入时使while循环中断。 我知道错误是由int函数引起的,因为它不能将整数转换为空输入,但是我如何才能完成我试图编写的内容呢

while True:
    numb = int(input("number"))
    if numb % 2 == 0:
        print("this number is even")
    elif numb % 2 != 0:
        print("this number is odd")
    elif numb == '':
        break
这将有助于:

while True:
    try:
        numb = int(input("number"))
    except ValueError:
        break
    if numb % 2 == 0:
        print("this number is even")
    elif numb % 2 != 0:
        print("this number is odd")
如果输入不能转换为整数,只需处理异常。 现在,任何不是整数的输入都将终止循环。

这将起作用:

while True:
    try:
        numb = int(input("number"))
    except ValueError:
        break
    if numb % 2 == 0:
        print("this number is even")
    elif numb % 2 != 0:
        print("this number is odd")
如果输入不能转换为整数,只需处理异常。
现在,任何不是整数的输入都将终止循环。

您甚至不需要最后一个条件,空输入将触发ValueError!如果您将其更改为
int(输入(“数字”)或'0或sys.maxint')
,并且如果
numb
等于该值,则在您的elif中中断循环,该怎么办?我希望它通过输入一个空值而停止,而不会导致错误error@fips-如果输入字符串为非空,它将被发送到
int()
。如果它是空的,字符串
'0或sys.maxint'
将被发送到
int()
,而对于这个目的来说,它并不比空字符串更有效,并且将产生完全相同的行为。@TigerhawkT3我想从两个字符串中选择一个在这种情况下更有意义,
0
sys.maxint
在字符串内部作为后备,它似乎在使用python 2中的
raw\u输入
,以及python 3中的
input
。e、 g.:
int(输入('number')或'0')
numb设置为0,如果用户只按enter键。您甚至不需要最后一个条件,空输入将触发ValueError!如果您将其更改为
int(输入(“数字”)或'0或sys.maxint')
,并且如果
numb
等于该值,则在您的elif中中断循环,该怎么办?我希望它通过输入一个空值而停止,而不会导致错误error@fips-如果输入字符串为非空,它将被发送到
int()
。如果它是空的,字符串
'0或sys.maxint'
将被发送到
int()
,而对于这个目的来说,它并不比空字符串更有效,并且将产生完全相同的行为。@TigerhawkT3我想从两个字符串中选择一个在这种情况下更有意义,
0
sys.maxint
在字符串内部作为后备,它似乎在使用python 2中的
raw\u输入
,以及python 3中的
input
。e、 g.:
int(input('number')或'0')
numb设置为0,如果用户只点击enter。我认为使用try块是一个很好的解决方案,但在这里,空输入返回一个SyntaxError而不是ValueError(而另一个字符串则会引发一个NameError)。
int('
int('a'))
两者都给我
ValueError
。一开始语法错误不允许程序运行。我也这么认为……但是,我将您的代码粘贴到了一个文件中,当我运行它时,我得到了以下信息:数字3这个数字是奇数2这个数字是偶数回溯(最后一次调用):文件“sp.py”,第3行,在numb=int中(输入(“数字”)文件“”,第0行^SyntaxError:解析时出现意外的EOF请使用Python 3:)
input()
在Python 2中使用
eval()
在输入的字符串上。因此,提示处的用户实际上键入Python源代码。这就是为什么在Python 3中对其进行更改的原因。我认为使用try块是一个很好的解决方案,但在这里,空输入返回一个SyntaxError而不是ValueError(而另一个字符串则会引发一个NameError。
int(“”)
int('a'))
两者都给我
ValueError
。一开始语法错误不允许程序运行。我也这么认为……但是,我将您的代码粘贴到了一个文件中,当我运行它时,我得到了以下信息:数字3这个数字是奇数2这个数字是偶数回溯(最后一次调用):文件“sp.py”,第3行,在numb=int中(输入(“数字”)文件“”,第0行^SyntaxError:解析时出现意外的EOF请使用Python 3.:)Python 2中的
input()
对输入的字符串使用
eval()
。因此,提示处的用户实际键入Python源代码。这就是在Python 3中更改的原因。