Python 检查是否有两个转换为lower()的字符串未按预期工作

Python 检查是否有两个转换为lower()的字符串未按预期工作,python,input,Python,Input,我有两个字符串,string0和string1。我想检查输入是否包含这些小写字符串。然而,它只是检查其中一个 import sys string0 = "Weather" string1 = "Like" userInput = input("say whatever") if string0.lower() and string1.lower() in userInput: print("it is quite nice") 这里只检查string1。我不明白为什么,有什么想法吗

我有两个字符串,string0和string1。我想检查输入是否包含这些小写字符串。然而,它只是检查其中一个

import sys

string0 = "Weather"
string1 = "Like"
userInput = input("say whatever")

if string0.lower() and string1.lower() in userInput:
    print("it is quite nice")

这里只检查string1。我不明白为什么,有什么想法吗?我使用的是python 3

您必须分别检查每个字符串,请尝试以下操作:

if string0.lower() in userInput and string1.lower() in userInput:

您必须单独检查条件。第一部分将计算为
True
。除空字符串
''
外的所有字符串的计算结果均为
True

if string0.lower() in userInput and string1.lower() in userInput:

您可能希望
检查任一字符串,另外,您的条件不太正确

if string0.lower() in userInput or string1.lower() in userInput:
你也可以试试这个

if userInput in {string0.lower(), string1.lower()}:

in
测试值列表中是否有一个值。因此,您的逻辑是反向的,您希望查看
userInput
是否在允许的值内:

if userInput in [string0.lower(), string1.lower()]:
    print("it is quite nice");

在本例中,您使用的是and。您可能需要使用or.

,因为您在此处误用了
运算符。左手边永远是
true
。我的情况不是这样,如果我按照你的建议做,我就不能输入“天气怎么样”或任何类似的内容,这正是我想要的。@Ulrikkarsson这是应该包含在问题中的信息。根据您刚才所说的,正则表达式比
操作符中的
更合适。不,我希望用户必须键入“weather”和“like”。