0

我在 Python 2.7 中遇到了这个烦人的问题,它不会让我这样做

numbers = raw_input(numbers + 1 + ': ')

我希望它在控制台中打印出“数字 + 1”作为数字,但是..它出现了以下错误消息:

Traceback (most recent call last):
  File "F:/Python/Conversation", line 25, in <module>
    numbers = raw_input(numbers + 1 + ': ')
TypeError: unsupported operand type(s) for +: 'int' and 'str'

有没有解决方案或只是我可以使用的另一件事来代替这个?提前致谢!

4

3 回答 3

2

正如错误消息指出的那样,您不能添加数字和字符串。您可以添加两个字符串,所以试试这个:

raw_input( str(numbers+1) + ':' )
于 2013-04-22T17:33:13.740 回答
2

您需要在单引号/双引号内加上+and ;numbers否则,它将被视为字符串连接。您收到错误是因为您尝试连接/numbers添加1.

因此,您需要1使用str()转换为字符串。然后,用'numbers + '':'连接它。像这样:

>>> numbers = raw_input('numbers + ' + str(1) + ': ')
numbers + 1: 

但是,如果要替换numbers为数字:

>>> numbers = 3
>>> numbers = raw_input(str(numbers + 1) + ': ')
4:

它之所以有效,是因为您首先添加了numbers' 值1。然后,稍后将结果转换为字符串。

于 2013-04-22T17:32:11.197 回答
0

您需要将1int 值转换为字符串:

numbers = raw_input(numbers + str(1) + ': ')

或者,使用字符串格式:

numbers = raw_input('{}{}: '.format(numbers, 1))

或者,也许您想numbers变成int第一个,然后将结果变成一个字符串:

sum = int(numbers) + 1
numbers = raw_input(str(sum) + ': ')
于 2013-04-22T17:29:51.150 回答