有条件语句的Python IndexError

时间:2013-11-26 20:27:34

标签: python string error-handling indexing range

如果我测试以下的“空”状态,我会得到一个IndexError,指出字符串索引超出范围。这是为什么?如果用户输入为空,我希望脚本打印“空”。

pyg = 'ay'

original = raw_input('Enter a word:')
word = original.lower()
first = word[0]

if len(original) > 0 and original.isalpha():
    if first in 'aeiou':
        print "vowel"
        new_word = original + pyg
        print new_word
    else:
        new_word = word[1:len(original)] + first + pyg
        print new_word
else:
    print "empty"

1 个答案:

答案 0 :(得分:1)

first = word[0]

失败了;如果word为空,则 没有第0个字符。您可以通过

替换它
first = word[:1]

但由于它仅在if len(original) > 0 and original.isalpha():分支内部使用,因此最好将其移入内部并将其保留为first = word[0]

BTW,而不是if len(original) > 0),你可以简单地写if original - 非空字符串是真实的。