不支持使用+运算符:'int'和'str'的操作数类型。

58

我目前正在学习Python,所以我不知道正在发生什么。

num1 = int(input("What is your first number? "))
num2 = int(input("What is your second number? "))
num3 = int(input("What is your third number? "))
numlist = [num1, num2, num3]
print(numlist)
print("Now I will remove the 3rd number")
print(numlist.pop(2) + " has been removed")
print("The list now looks like " + str(numlist))

当我运行程序,输入num1、num2和num3的数字后,它返回如下信息:

Traceback (most recent call last):

TypeError: unsupported operand type(s) for +: 'int' and 'str'
2个回答

83

您正在尝试链接一个字符串和一个整数,这是不正确的。

print(numlist.pop(2)+" has been removed") 更改为以下任一选项:

显式将 int 转换为 str

print(str(numlist.pop(2)) + " has been removed")

使用,代替+:
print(numlist.pop(2), "has been removed")

字符串格式化:

print("{} has been removed".format(numlist.pop(2)))

2

尝试一下,

str_list = " ".join([str(ele) for ele in numlist])

这个语句将把你的列表中的每个元素转换为字符串格式

print("现在列表看起来像这样 [{0}]".format(str_list))

并且,

print(numlist.pop(2)+" has been removed") 改为

print("{0} 已被移除".format(numlist.pop(2)))

同样需要修改。


str(numlist)肯定不会导致异常(尽管这可能不是OP想要的)。 - Konrad Rudolph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接