这是我的代码:
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,但我不能用它来切割字符串??
答案 0 :(得分:0)
无论您输入什么内容,raw_input()
函数都会返回一个字符串。
要将其转换为实际整数,您可以使用以下内容:
f = int(raw_input())
但是,请注意,除非您实际输入整数,否则不会顺利进行。您应该真正捕获失败的raw_input()
和失败的int()
的异常。有关如何执行后者的信息,请参阅here,您可以使用类似的方法来捕获EOFError
(以及其他人,如果需要)前者。
答案 1 :(得分:0)
您必须将raw_input
更改为input
。raw_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())