如何在字符串中判断指定单词是否存在并输出对应结果?
正确实现及错误分析
错误分析
- 第一次尝试问题:
text.split() in word.split()逻辑完全颠倒,且split()返回列表,列表A in 列表B是判断列表A是否为列表B的完整子列表,不符合需求。另外函数未返回值,直接打印的方式与作业模板要求的print(search(text, word))不匹配,最终会输出None。 - 第二次尝试问题:
word.find()和text.find()缺少必要参数,str.find()必须传入要查找的子串,否则触发语法错误无法运行,同时也存在函数未返回值的问题。 - 第三次尝试问题:
text.find(word)返回子串起始索引,找不到返回-1,但Python中0会被视为False,当word在text开头时会误判为不存在;同样函数未返回值,不符合模板要求。
正确实现
方案1:匹配子串(只要word是text的一部分即判定存在)
最符合基础题需求的实现,直接利用Python的in关键字判断子串存在性:
text = input() word = input() def search(text, word): if word in text: return "Word found" else: return "Word not found" print(search(text, word))
方案2:匹配完整单词(避免子串误判,比如text="hello world"时,word="hell"不算找到)
如果要求必须匹配完整单词,可拆分text为单词列表后判断:
text = input() word = input() def search(text, word): if word in text.split(): return "Word found" else: return "Word not found" print(search(text, word))
内容的提问来源于stack exchange,提问作者Lili Soto
相关产品推荐
相关产品推荐

