1

我正在尝试做一个小程序,但它不起作用,我想写 4 个不同的数字整数和小数,但它不起作用。我收到错误消息 TypeError: Can't convert 'int' object to 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

4 回答 4

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):

目前尚不清楚您想在循环中做什么,但 , 和 的总和a现在也丢失了,因为b它也用作循环变量。cdl

如果你想有小数,你可以使用float()而不是int(),但请注意,range()它只能使用整数!

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

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)

或将循环与询问号码并打印相结合:

lst = []
for count in range(4):
    number = float(input("Ange ett siffervärde: "))    
    print(number)
    lst.append(number)

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

于 2013-11-12T08:31:51.067 回答
1
a = int(input("a=: "))
b = int(input("b=: "))

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

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

于 2013-11-12T09:11:34.710 回答
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: "))
于 2013-11-12T08:31:43.500 回答
1

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

于 2013-11-12T08:31:54.677 回答