变量在Python中不被识别为整数?

时间:2016-06-21 01:55:38

标签: python python-2.7 variables int

这是我的代码:

print "How many frames do you want?"
f = raw_input()
print f
frames = 'abcdefghijklmnopqrstuvwxyz'

if f > 0:
    frames = frames[:f]
    print frames

然后当我运行它(我的输入是2)时,我得到这个错误,其中变量f没有被识别为int,即使我打印它时,我的输入打印了一个int(2)。

这是错误消息:     Traceback(最近一次调用最后一次):         文件“melissa.py”,第11行,in             frames = frames [:f]     TypeError:切片索引必须是整数或无或具有索引方法...

所以,f是2,但我不能用它来切割字符串??

3 个答案:

答案 0 :(得分:0)

无论您输入什么内容,raw_input()函数都会返回一个字符串。

要将其转换为实际整数,您可以使用以下内容:

f = int(raw_input())

但是,请注意,除非您实际输入整数,否则不会顺利进行。您应该真正捕获失败的raw_input()和失败的int()的异常。有关如何执行后者的信息,请参阅here,您可以使用类似的方法来捕获EOFError(以及其他人,如果需要)前者。

答案 1 :(得分:0)

您必须将raw_input更改为inputraw_input将其视为字符串,而input将其视为整数。 这是代码:

 print "How many frames do you want?"
    f = input()
    print f
    frames = 'abcdefghijklmnopqrstuvwxyz'

    if f > 0:
        frames = frames[:f]
        print frames

答案 2 :(得分:0)

这里的问题是您没有将输入转换为整数。因此,Python不会将其识别为整数。

raw_input()将从stdin获取输入并吐出一个字符串。 Python不会自动检查字符串是否为整数。但是,有一种方法(isdigit())。

所以你需要做的是在继续之前使用int()转换器将其转换为整数:

f = int(raw_input())