这是我的代码:
a,b=input().split()
for x in range(a,b):
print(list(x))
为什么这不起作用?
它说不能将str
解释为int
。
当我将其放在int()
下时,它说int()
参数必须是字符串。
我想要这个:
输入:
2 6
输出:
3
4
5
6
答案 0 :(得分:1)
这完全符合您的期望:
a,b=input().split()
for x in range(int(a)+1,int(b)+1):
print(x)
input()
返回一个字符串,而split()
返回一个字符串列表。您必须先将它们转换为整数,然后再将其输入range
。另外,print(x)
x
中已经有一个数字,因此没有理由将其转换为列表(也将不起作用)。
答案 1 :(得分:0)
只需将print(list(x))
替换为print(x)
即可。我认为没有任何理由使用list()
。如果希望最后打印的数字与range(a,b+1)
相同,也可以使用range(a,b)
代替b
。
答案 2 :(得分:0)
默认情况下,input()
接受值作为字符串,而split()
返回字符串列表。输入后,您需要将a
和b
转换为int。另外,您需要摆脱list(x)
,而要摆脱print(x)
,因为Python中的int
是不可迭代的。
正确的代码是:
a, b = map(int, input().split())
for x in range(a + 1, b + 1):
print(x)
OR
a, b = [int(i) for i in input().split()]
for x in range(a + 1, b + 1):
print(x)
在两种情况下,对于输入2 6
,输出为
3
4
5
6