如何使用Python中的input()函数处理无输入?

时间:2018-01-03 03:30:36

标签: python input

我尝试编写一个程序,要求用户选择一个选项,但是,如果用户不选择任何内容并且只输入ENTER,Python总会显示错误消息。这是一个例子

tmp=input("Choose program type:1.C++;2.Python;3.PERL (ENTER for default 2.Python)")
print tmp, type(tmp)   #test input
if len(str(tmp)) == 0:
  tmp=0

if tmp == 1:
  print "User choose to create a C++ program.\n"
  DFT_TYPE=".cpp"
elif tmp ==2:
  print "User choose to create a Python program.\n"
  DFT_TYPE=".py"
elif tmp ==3:
  print "User choose to create a PERL scripts.\n"
  DFT_TYPE=".pl"
else:
  print "User choose incorrectly. Default Python program would be     created.\n"  
DFT_TYPE=".py"

如果我只输入ENTER,我收到如下错误消息

Traceback (most recent call last):   File "./wcpp.py", line 17, in <module>
    tmp=input()   File "<string>", line 0

    ^ SyntaxError: unexpected EOF while parsing

如果用户输入什么,如何处理这种情况?任何进一步的建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

由于您使用的是python 2,请使用raw_input()代替input()

tmp=raw_input("Choose program type:1.C++;2.Python;3.PERL (ENTER for default 2.Python)")
...
...
if tmp!='':
    tmp = int(tmp)
    pass #do your stuff here
else:
    pass #no user input, user pressed enter without any input.

您收到错误的原因是因为python2 input()尝试将输入语句作为Python表达式运行。

因此,当用户没有输入时,它会失败。

答案 1 :(得分:0)

您可以将raw_input用作默认值

x = raw_input() or 'default_value'