24

我不明白代码有什么问题,它非常简单,所以这很容易。

x = input("Give starting number: ")
y = input("Give ending number: ")

for i in range(x,y):
 print(i)

它给了我一个错误

Traceback (most recent call last):
  File "C:/Python33/harj4.py", line 6, in <module>
    for i in range(x,y):
TypeError: 'str' object cannot be interpreted as an integer

例如,如果 x 是 3 而 y 是 14,我希望它打印

Give starting number: 4
Give ending number: 13
4
5
6
7
8
9
10
11
12
13

问题是什么?

4

8 回答 8

24

一个最简单的解决方法是:

x = input("Give starting number: ")
y = input("Give ending number: ")

x = int(x)  # parse string into an integer
y = int(y)  # parse string into an integer

for i in range(x,y):
    print(i)

input返回一个字符串(raw_input在 Python 2 中)。int尝试将其解析为整数。如果字符串不包含有效的整数字符串,此代码将引发异常,因此您可能希望使用try/except语句对其进行一些改进。

于 2013-10-07T20:57:56.943 回答
7

您收到错误是因为 range() 仅将 int 值作为参数。

尝试使用 int() 转换您的输入。

于 2019-06-10T11:20:54.987 回答
3
x = int(input("Give starting number: "))
y = int(input("Give ending number: "))

PS 添加功能int()

于 2017-12-07T10:33:41.017 回答
3
x = int(input("Give starting number: "))
y = int(input("Give ending number: "))

for i in range(x, y):
    print(i)

这输出:

我已经用代码上传了输出

于 2018-09-25T05:27:01.783 回答
1

你必须把:

X = input("give starting number") 
X = int(X)
Y = input("give ending number") 
Y = int(Y)
于 2013-10-07T21:02:03.303 回答
1

我猜你正在运行 python3,它input(prompt)返回一个字符串。尝试这个。

x=int(input('prompt'))
y=int(input('prompt'))
于 2013-10-07T20:58:53.637 回答
1

或者您也可以使用eval(input('prompt')).

于 2017-02-06T06:57:13.673 回答
1

您必须将输入 x 和 y 转换为 int ,如下所示。

x=int(x)
y=int(y)
于 2015-12-19T06:38:36.260 回答