我试图做一个小程序,但它不会工作,我想写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)
我希望程序打印我在彼此之间输入的数字。
答案 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):
目前尚不清楚你想在循环中做什么,但a
,b
,c
和d
的总和现在已经丢失为{{ 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);