python - 条件语句上的Python IndexError

标签 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"

最佳答案

first = word[0]

失败了;如果word为空,则不存在第零个字符。您可以将其替换为
first = word[:1]

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

顺便说一句,您可以直接编写if len(original) > 0)而不是if original-非空字符串是truelike。

关于python - 条件语句上的Python IndexError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20227296/

相关文章:

c++ - 如何比较 C 字符串和 C++ 字符串?

javascript - JS/NodeJS JSON 缓冲区到字符串

c# - 第一次发送消息到错误队列

r - 错误: no stat called StatHline

python - 如何扩展 datetime.timedelta?

python - Django:覆盖子模型中的字段标签或帮助文本

python - 如何从日期时间推断季度?

c++ - 如何使用 stringstream 在字符串中保留引号?

python - 从 Perl 中的链接检索媒体(图像、视频等)

objective-c - 更正结构以使用 NSError 检查错误