为什么我编写的Python字符串处理函数无法返回预期的新字符串?
代码问题排查与修正
原有代码错误点
- 未做单词拆分:直接遍历输入字符串
long_string是逐个读取单个字符,并非读取单词,完全不满足提取单词的需求 - 赋值逻辑触发条件错误:只有当遍历到属于
stop_words的内容时才会给new_line赋值,输入字符串不含end/exit时new_line始终是空字符串,自然得不到预期结果;且str.replace()不支持直接传入元组做批量替换,语法本身不生效 - 拼接逻辑错误:直接对字符串执行
join操作会把每个字符单独用;拼接,并非按单词拼接
正确实现
实现逻辑:先用split()方法按任意空白符拆分输入字符串为单词列表(自动过滤空值),再过滤停用词并转大写,最后用;拼接即可。
def fun(long_string): stop_words = ('end', 'exit') processed_words = [word.upper() for word in long_string.split() if word not in stop_words] return ';'.join(processed_words) # 测试用例 print(fun("this is a long string")) # 输出:THIS;IS;A;LONG;STRING print(fun("hello end world exit test")) # 输出:HELLO;WORLD;TEST
内容的提问来源于stack exchange,提问作者NKMJ
相关产品推荐
相关产品推荐

