句子中的每个单词是否“有效”

2024-10-04 05:22:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个代码,用户输入一个句子,计算机告诉他们句子中的每个单词是否“有效”(因此在python中,如果他们句子中的每个单词都在“有效单词”列表中)

sentence = input("Please enter a sentence: ")
validwords = ["hello","i","like","python"]
word = sentence.split(" ")
for word in sentence:
      if word in validwords:
           print ("I found a valid word: "+str(word))
      else:
           print ("I found an invalid word: "+str(word))

然而,最后五行似乎不起作用,因为它们将句子中的每个字母而不是每个单词分开。你知道吗


Tags: 代码用户in列表input计算机单词sentence
3条回答

你在循环原句中的字符,而不是你创建的单词列表。试试这个:

sentence = input("Please enter a sentence: ")
validwords = ["hello","i","like","python"]
words = sentence.split(" ")
for word in words:
      if word in validwords:
           print ("I found a valid word: " + word)
      else:
           print ("I found an invalid word: " + word)

你把循环变量搞混了。我建议

validwords = set(validwords) # use a set for faster lookup times
words = sentence.split() # split by all whitespace
for word in words:
    # check whether word in validwords

如果您想用速记检查所有键入的单词是否有效,可以使用:

validwords = set(validwords) # use a set for faster lookup times
success = all(word in validwords for word in sentence.split())

当然,这不允许中间打印。你知道吗

the final five lines ... split up each letter in the sentence

这就是for循环。字符串是可由字符读取的。您循环了输入字符串,而不是拆分值。你知道吗

试试看

for word in sentence.split(" "):

相关问题 更多 >