【发布时间】:2017-06-17 08:55:33
【问题描述】:
def onlyLetters(seq):
seq = seq.lower()
letter = ('a', 'b', 'c', 'z')
for i in range(len(seq)):
if seq[i] != letter:
seq = seq[:i] + seq[i+1:]
return seq
我正在尝试创建一个遍历字符串 seq 的所有元素的 for 循环,并检查它是否与元组字母匹配(稍后我将用字母表中的所有字母填充它)以及是否不匹配然后我将通过切出与元组不匹配的第 i 个元素来重新定义字符串 seq。我想要一个字符串,比如“你好,你好吗?”并在没有空格和标点符号的情况下返回它,并且像这样的小写字母'hellohowareyou'。但是,当我运行代码时,我在第 5 行收到错误“字符串索引超出范围”。请帮忙。
onlyLetters(' K KKdf afd')
---------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-368-70e5521e7134> in <module>()
----> 1 onlyLetters(' K KKdf afd')
<ipython-input-367-fb538af71ff5> in onlyLetters(seq)
3 letter = ('a', 'b', 'c', 'z')
4 for i in range(len(seq)):
----> 5 if seq[i] != letter:
6 seq = seq[:i] + seq[i+1:]
7 return seq
IndexError: string index out of range
【问题讨论】:
-
这里有一个提示,当
i大于5时,你认为会发生什么
标签: python for-loop indexing range