不使用replace()实现二进制串0转10、1转01的代码问题排查
问题排查与修复方案
现有代码的核心错误
- 运算符使用错误:处理
'0'的分支中误用了比较运算符==,而非赋值运算符=,该段逻辑只会返回布尔值,不会对临时变量i进行赋值,因此'0'的转换规则完全不生效。 - 转换规则写反:需求为
'0'替换为'10'、'1'替换为'01',现有代码的赋值内容和需求完全相反,'1'对应的赋值内容是'10',不符合要求。 - 未存储转换结果:遍历字符串得到的
i是单个字符的临时副本,仅修改i不会生成完整的转换后字符串,需要额外定义空字符串拼接每次的转换结果。
修正后的实现代码
mystring = '010101' # 定义空字符串存储转换结果 converted_str = '' for char in mystring: if char == '0': converted_str += '10' else: converted_str += '01' print(converted_str)
运行验证
输入字符串'010101'的最终输出为100110011001,完全符合替换规则。
内容的提问来源于stack exchange,提问作者Noám Manriquez
相关产品推荐
相关产品推荐

