Python循环代码输出异常问题排查及修复方案咨询
代码问题分析与修复方案
存在的问题
遍历逻辑错误
cities和company_types是普通字符串,直接通过for ... in循环会逐个遍历字符串中的每个字符,而非你预期的按逗号分隔的独立条目。比如'me, myself, eye'会被拆成'm'、'e'、','、' '等单个字符,导致写入文件的内容完全不符合需求。关于输出的
<built-in method write...>
这个输出并非代码执行后result.txt内的内容,大概率是你在测试时误写了print(fid.write)——直接打印write方法本身会输出该方法的对象描述,而非写入操作的结果。
修复后的代码
import sys # 将字符串按逗号分割为列表,遍历独立条目 cities = 'me, myself, eye'.split(',') company_types = 'WHAT, WHO'.split(',') with open("result.txt", 'w') as fid: for city in cities: # 提前清理条目前后空格,避免重复操作 clean_city = city.strip() for company_type in company_types: clean_ct = company_type.strip() # 用f-string拼接字符串,简洁易读 fid.write(f"{clean_ct} in {clean_city}\n")
修复说明
- 用
split(',')将原始字符串分割为包含目标条目的列表,确保循环时拿到的是完整的城市/公司类型。 - 提前调用
strip()清理每个条目的前后空格,避免在每次写入时重复处理。 - 使用f-string拼接字符串,比传统的
+拼接更直观,可读性更强。 - 用
\n作为换行符,Python的文本写入模式会自动根据操作系统转换为对应的换行格式(Windows下为\r\n,类Unix系统下为\n)。
内容的提问来源于stack exchange,提问作者CodeFlawless
相关产品推荐
相关产品推荐

