Python中for循环运行异常:无法正确输出句号前的字符串
问题原因分析
你的代码逻辑存在两个核心问题:
- 循环中每次仅遍历字符串的单个字符,当遇到
.触发break时,变量i刚好存储的是.这个字符,所以最后打印的就是它,而非之前的所有内容。 - 代码没有做字符收集操作,完全没把
.之前的字符保存下来,自然无法输出目标内容。
修正方案
方案1:使用字符串切片(最简洁)
利用Python字符串的内置方法直接截取目标内容:
x = "hello. I am fine" # 方法A:按`.`分割取第一个部分 print(x.split('.')[0]) # 方法B:找到`.`的索引,切片截取 print(x[:x.index('.')])
方案2:循环收集字符(贴合原思路修改)
如果要保留循环的思路,需要新增变量存储遍历到的字符:
x = "hello. I am fine" result = "" for i in x: if i == ".": break result += i # 每次把符合条件的字符追加到结果里 print(result)
内容的提问来源于stack exchange,提问作者ausaf
相关产品推荐
相关产品推荐

