Python中空字符串添加字符后输出为空,求原因及解决方法
问题分析与解决:字符串处理后输出为空
你的代码核心问题在于字符串拼接操作未对变量重新赋值:
Python中的字符串是不可变类型,modified_txt + "u"这类操作只会生成一个新的字符串对象,但你没有将这个新对象赋值回modified_txt变量。因此,初始的空字符串""从未被修改,最终输出自然为空。
修正后的基础版本
txt = input() modified_txt = "" for char in txt: if char.isupper(): modified_txt += "u" # 用 += 完成赋值,更新变量 elif char.islower(): modified_txt += "l" else: modified_txt += "-" print(modified_txt)
更高效的实现方式
循环中反复拼接字符串会频繁生成新对象,效率较低。可以用列表收集字符后再合并,性能更优:
txt = input() modified_chars = [] for char in txt: if char.isupper(): modified_chars.append("u") elif char.islower(): modified_chars.append("l") else: modified_chars.append("-") modified_txt = "".join(modified_chars) print(modified_txt)
也可以用更简洁的列表推导式一步完成:
txt = input() modified_txt = "".join( "u" if c.isupper() else "l" if c.islower() else "-" for c in txt ) print(modified_txt)
内容的提问来源于stack exchange,提问作者Jacob B.
相关产品推荐
相关产品推荐

