以两个输入作为初始值和最终值以及打印范围

时间:2018-09-02 06:47:30

标签: python string

这是我的代码:

a,b=input().split()
for x in range(a,b):
print(list(x))

为什么这不起作用?

它说不能将str解释为int

当我将其放在int()下时,它说int()参数必须是字符串。

我想要这个:

输入:

2 6

输出:

3

4

5

6

3 个答案:

答案 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()返回字符串列表。输入后,您需要将ab转换为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