【发布时间】:2021-04-24 11:27:00
【问题描述】:
我在 Python 中循环一个字符串以在列表中附加“;”之间的单词(我知道还有其他方法可以在 Python 中循环字符串,但我希望它能够工作):
data = "ABC;AB;AB"
data_len = len(data)
items = []
separator = ";"
i = 0
while i < data_len:
item = ''
if i == 0:
while data[i] != separator:
item += data[i]
i += 1
items.append(item)
continue
i += 1
while data[i] != separator and i < data_len:
item += data[i]
i += 1
items.append(item)
逻辑对我来说似乎是正确的,但不知何故解释器抛出了 Index out of range 异常:
while data[i] != separator and i
【问题讨论】:
-
因为你增加 i 但之后仍然使用它会导致索引错误。检查您的格式,因为 python 缩进会影响逻辑。
-
使用
while i < data_len and data[i] != separator:而不是while data[i] != separator and i < data_len:(即在使用前检查索引是否在范围内)。
标签: python loops while-loop indexoutofrangeexception