如何检查用户是否将"input"或"raw_input"提示留空?

IT *_*nja 8 python python-2.x

如何检查输入是否已输入?

例如:

x = str(raw_input('Message>> '))
Run Code Online (Sandbox Code Playgroud)

要么

y = input('Number>> ')
Run Code Online (Sandbox Code Playgroud)

agf*_*agf 16

你知道如果第二个没有输入任何东西,因为它会引发一个SyntaxError.您可以像这样捕获错误:

try:
    y=input('Number>> ')
except SyntaxError:
    y = None
Run Code Online (Sandbox Code Playgroud)

然后测试

# not just 'if y:' because 0 evaluates to False!
if y is None:
Run Code Online (Sandbox Code Playgroud)

或者,最好使用raw_input:

try:
    y = int(raw_input('Number>> '))
except ValueError:
    print "That wasn't a number!"
Run Code Online (Sandbox Code Playgroud)

对于第一个,x如果没有输入,则为空字符串.调用str是不必要的 - raw_input已经返回一个字符串.可以显式测试空字符串:

if x == '':
Run Code Online (Sandbox Code Playgroud)

或隐含地:

if x:
Run Code Online (Sandbox Code Playgroud)

因为唯一的False字符串是空字符串.

  • 或者使用`if x.strip():`来避免有人进入空格的情况...... (2认同)