Python遍历字符串遇指定字母时终止while循环的问题排查
错误点梳理
- 条件判断逻辑错误:
i是表示遍历位置的数值型索引,直接和字符类型的stop_at_letter做相等判断,条件永远不成立,break永远不会触发。需要改为判断当前遍历到的字符word_input[i]是否等于终止字符。 - 索引自增顺序错误:在终止条件判断前就执行了
i = i + 1,即使后续修正判断逻辑,也会跳过当前字符的匹配,最终索引也会偏移1位。 - 剩余内容输出逻辑错误:
while的else分支仅会在循环未触发break、正常遍历完所有字符时执行,完全不符合“循环结束后输出剩余部分”的需求;同时原代码直接输出整个原字符串,没有做切片截取剩余内容。
修正后代码
word_input = 'How hard is this?' stop_at_letter = 'd' i = 0 print('While loop a') while i < len(word_input): print(word_input[i]) # 匹配到终止字符直接跳出 if word_input[i] == stop_at_letter: break # 未匹配到再移动索引 i += 1 # 循环结束后统一输出终止字符后的剩余内容 print(f'Remaining letters are:{word_input[i+1:]}')
运行效果说明
运行后会依次打印遍历到的每个字符,打印到d后立即终止循环,最终输出Remaining letters are: is this?,完全符合需求。
内容的提问来源于stack exchange,提问作者beginpython
相关产品推荐
相关产品推荐

