Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
句子中的每个单词是否为';有效的';-python_Python - Fatal编程技术网

句子中的每个单词是否为';有效的';-python

句子中的每个单词是否为';有效的';-python,python,Python,我试图创建一个代码,用户输入一个句子,计算机告诉他们句子中的每个单词是否“有效”(因此,在python中,如果他们句子中的每个单词都在“有效单词”列表中) 但是,最后五行似乎不起作用,因为它们将句子中的每个字母而不是每个单词分开。您正在循环原句子中的字符,而不是您创建的单词列表。试试这个: sentence = input("Please enter a sentence: ") validwords = ["hello","i","like","python"] words = sentenc

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


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

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

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)

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

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())

当然,这不允许中间打印。

您的循环变量混淆了。我建议

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())
当然,这不允许中间打印

最后五行。。。把句子中的每个字母分开

这就是for循环。字符串是可由字符替换的。您循环了输入字符串,而不是分割值

试一试

最后五行。。。把句子中的每个字母分开

这就是for循环。字符串是可由字符替换的。您循环了输入字符串,而不是分割值

试一试


word=句子。拆分(“”)
。。。你没有循环这些,你循环了
句子
字符你将句子分割成一个列表并命名为
单词
,但你从未使用过它:
单词=句子。拆分(“”)
单词=句子。拆分(“”)。。。您没有循环这些,而是循环了
句子
字符您将句子拆分为一个列表,并将其命名为
word
,但您从未使用过它:
word=句子。拆分(“”