-4

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

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()。请帮忙。

4

2 回答 2

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
于 2013-01-11T17:14:55.707 回答
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))

是正确的代码。

于 2013-01-11T17:03:55.293 回答