为什么python会对此发出错误?

时间:2013-01-11 17:01:11

标签: python python-3.x

以下是Wikibooks Python tutorial的链接。我正在练习该页面上的“组合数字和字符串”。第一个代码肯定会产生错误(它写在那里),但第二个代码也产生错误:

print ("Please give me a number:",) 
response = raw_input()   
number = int(response) 
Traceback (most recent call last):   File "<pyshell#2>", line 1, in <module>
number = int(response) ValueError: invalid literal for int() with base 10: ''

我似乎无法找到解决方法。 我使用的是Python 3.3.0,我知道它是input()而不是raw_input()。 请帮忙。

2 个答案:

答案 0 :(得分:1)

您将空字符串传递给int(),这就是为什么它会抛出ValueError

>>> int('')

ValueError: invalid literal for int() with base 10: ''

您可以使用try-except块来解决这个问题。

>>> try:
    response = input("enter a number: ") 
    print (int(response),"valid input")
except ValueError:    
    print ("invalid input")
   .....:     
enter a number: 123               #input
123 valid input

>>> try:
    response = input("enter a number: ") 
    print (int(response),"valid input")
except ValueError:    
    print ("invalid input")
   .....:     
enter a number: abc                        #input
invalid input

答案 1 :(得分:0)

您正在组合字符串和整数。

print ("Please give me a number: ")
number = input()

plusTen = int(number) + 10
print ("If we add 10 to your number, we get " + str(plusTen))

是否是正确的代码。