我尝试编写一个程序,要求用户选择一个选项,但是,如果用户不选择任何内容并且只输入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
如果用户输入什么,如何处理这种情况?任何进一步的建议将不胜感激。
答案 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'