我正在尝试从用户处获取raw_input
,然后从该输入中找到所需的单词。如果所需的单词存在,则运行一个函数。所以我尝试.split
分割输入,但如何找到所需的单词是否在列表中。
答案 0 :(得分:6)
完成这项工作非常简单。 Python有一个in
运算符,可以完全满足您的需求。您可以查看字符串中是否存在单词,然后执行您想要执行的任何操作。
sentence = 'hello world'
required_word = 'hello'
if required_word in sentence:
# do whatever you'd like
您可以看到in
运算符的一些基本示例[{3}}。
根据您输入的复杂程度或所需单词的复杂性,您可能会遇到一些问题。为了解决这个问题,您可能希望对所需的词语更加具体。
让我们以此为例:
sentence = 'i am harrison'
required_word = 'is'
如果您要执行True
,此示例将评估为if required_word in sentence:
,因为从技术上讲,字母is
是单词" harrison"的字符串。
要解决此问题,您只需执行此操作:
sentence = 'i am harrison'
required_word = ' is '
通过在单词之前和之后放置空格,它将专门查找所需单词作为单独单词出现,而不是单词的一部分。
但是,如果你可以匹配子字符串以及单词出现,那么你可以忽略我之前解释的内容。
如果有一组单词,如果有任何一个单词,那么我该怎么办?就像,所需的单词是"是"或者"是的"。用户输入包含"是"或者"是的"。
根据这个问题,实现看起来像这样:
sentence = 'yes i like to code in python'
required_words = ['yes', 'yeah']
^ ^ ^ ^
# add spaces before and after each word if you don't
# want to accidentally run into a chance where either word
# is a substring of one of the words in sentence
if any(word in sentence for word in required_words):
# do whatever you'd like
这使用了any
运算符。只要在required_words
中找到sentence
中的至少一个单词,if语句就会评估为真。
答案 1 :(得分:1)
方式1:
sentence = raw_input("enter input:")
words = sentence.split(' ')
desired_word = 'test'
if desired_word in words:
# do required operations
方式2:
import re
sentence = raw_input("enter input:")
desired_word = 'test'
if re.search('\s' + desired_word + '\s', sentence.strip()):
# do required operations
方式3(特别是如果在单词末尾有标点符号):
import re
sentence = raw_input("enter input:")
desired_word = 'test'
if re.search('\s' + desired_word + '[\s,:;]', sentence.strip()):
# do required operations