TypeError:无法将'int'对象转换为str隐式Python 3

时间:2013-11-12 08:28:52

标签: python string

我试图做一个小程序,但它不会工作,我想写4个不同的数字整数和小数,但它不起作用。我收到错误消息TypeError:无法隐式地将'int'对象转换为str。你能帮助我吗?

a = str(input("Ange ett siffervärde: "))
b = str(input("Ange ett siffervärde: "))
c = str(input("Ange ett siffervärde: "))
d = str(input("Ange ett siffervärde: "))

l = (a+b+c+d)
for l in range (a, d+1):
    print(l)

我希望程序打印我在彼此之间输入的数字。

4 个答案:

答案 0 :(得分:2)

您正在尝试将d用作整数:

for l in range (a, d+1):

向其添加1,但您将其设为字符串:

d = str(input("Ange ett siffervärde: "))

改为所有输入整数:

a = int(input("Ange ett siffervärde: "))
b = int(input("Ange ett siffervärde: "))
c = int(input("Ange ett siffervärde: "))
d = int(input("Ange ett siffervärde: "))

接下来,您的for循环会破坏l变量:

l = (a+b+c+d)
for l in range (a, d+1):

目前尚不清楚你想在循环中做什么,但abcd的总和现在已经丢失为{{ 1}}也用作循环变量。

如果您想要小数,可以使用l代替float(),但请注意int()只能 使用整数!

如果您想在循环中打印4个数字,请先创建一个列表并直接在列表上循环:

range()

或将循环与要求编号组合并打印出来:

a = float(input("Ange ett siffervärde: "))
b = float(input("Ange ett siffervärde: "))
c = float(input("Ange ett siffervärde: "))
d = float(input("Ange ett siffervärde: "))

lst = [a, b, c, d]
for number in lst:
    print(number)

这要求四次,打印给定的数字,然后将该数字添加到列表中供以后使用。

答案 1 :(得分:1)

使用此:

a = int(input("Ange ett siffervrde: "))
b = int(input("Ange ett siffervrde: "))
c = int(input("Ange ett siffervrde: "))
d = int(input("Ange ett siffervrde: "))

答案 2 :(得分:1)

您的变量a,b,c和d是字符串,而不是数字,因此您不能将它们作为参数传递给range,也不能将它们添加到整数中。

答案 3 :(得分:1)

a = int(input("a=: "))
b = int(input("b=: "))

lst = [a, b]
for number in lst:
    print(number)

我的机器没问题(python 2.6);