为何Python中使用-=运算符会报错?但用+=替代-=却可正常运行?
问题分析与解决
嘿,我来帮你搞清楚这个问题!
为什么-=会报错,+=却正常?
Python里的字符串是不可变类型,+=是Python为字符串特意实现的语法糖,用来方便地拼接字符串(本质是创建新的字符串对象,只是看起来像原地修改)。但-=运算符完全不是字符串支持的操作——你想想,你初始化new_message是空字符串,怎么能从空字符串里“减去”一个字符呢?这既不符合语法,逻辑上也站不住脚。
你的代码逻辑是要把非元音字母收集到new_message里,所以这里本来就应该用+=来拼接字符,而不是错误地用-=。
修正后的代码
message = input("Enter a Message: ") new_message = "" VOWELS = "aeiou" print() for letter in message: if letter.lower() not in VOWELS: new_message += letter # 这里改成+=就对了 print("A new string has been created:", new_message) print("Your message without vowels is:", new_message) input("\n\nPress the enter key to exit.")
额外小提示
如果你的处理场景是非常长的字符串,用+=循环拼接虽然能工作,但效率不算最高。更高效的方式是用列表来收集字符,最后用join方法合并:
message = input("Enter a Message: ") new_chars = [] VOWELS = "aeiou" print() for letter in message: if letter.lower() not in VOWELS: new_chars.append(letter) new_message = ''.join(new_chars) print("A new string has been created:", new_message) print("Your message without vowels is:", new_message) input("\n\nPress the enter key to exit.")
内容的提问来源于stack exchange,提问作者Golden_Eagle
相关产品推荐
相关产品推荐

