Python 如何从输入中计算列表中的独立项

Python 如何从输入中计算列表中的独立项,python,Python,制作一个响应用户输入的简单程序 在本例中,输入“I like math”将返回响应“That's cool”。 如果用户从列表中输入两项,例如“我喜欢数学和生物学”,我希望响应发生变化 我决定使用count函数来完成这项工作,但它总是返回值0。 我需要做什么才能得到if响应 list = ["math", "physics", "biology", "computer science"] favsub = input("What are your favorite subjects? \n")

制作一个响应用户输入的简单程序

在本例中,输入“I like math”将返回响应“That's cool”。 如果用户从列表中输入两项,例如“我喜欢数学和生物学”,我希望响应发生变化

我决定使用count函数来完成这项工作,但它总是返回值0。 我需要做什么才能得到if响应

list = ["math", "physics", "biology", "computer science"]
favsub = input("What are your favorite subjects? \n")
favsub = favsub.lower()
favsub = favsub.split()
num = favsub.count(list)
if num == 2:
    print("Both?")
else
    print("That's cool")
上面的代码是一个简化的示例,如果您想查看实际代码,我会将其保留在google文档中。

只计算单个元素
x
。当然,您的列表不是
favsub
的元素,它也不会神奇地对其元素的计数求和。但是,在您的方法的基础上,您可以使用:

通常,您不应该命名变量
list
(或
str
int
等),因为它隐藏了内置名称

仅计算单个元素
x
。当然,您的列表不是
favsub
的元素,它也不会神奇地对其元素的计数求和。但是,在您的方法的基础上,您可以使用:


通常,您不应该命名变量
list
(或
str
int
等),因为它隐藏了内置名称

您可以创建列表集和favsub集,并获取交叉点的长度


注意:仅当列表和favsub中的所有短语都是单字且没有空格时,此操作才有效。

您可以创建列表和favsub集,并获取交叉点的长度


注意:只有当列表和favsub中的所有短语都是单字且没有空格时,这才有效。

您的方法太幼稚了。首先,您必须标记用户输入(如果用户输入的是
数学、物理
,而不是
数学和物理
。在这种情况下,拆分
不会将
数学
物理
分开)

然后您需要使用
list
的每个成员调用
favsub.count
(顺便说一句,这是一个错误的变量名,因为它隐藏了内置的
list

我将建议另一种天真(但更简单)的方法。忘记分割和标记用户输入。只需搜索每个已识别的主题并将结果相加:

 subjects_list = ["math", "physics", "biology", "computer science"]
 favsub = input("What are your favorite subjects? \n")
 favsub = favsub.lower()
 count = 0
 for subject in subjects_list:
     if subject in favsub:
         count += 1
 print(count)

这与@schwobasegl的答案基本相同,但有一个明确的计数器。

你的方法太幼稚了。首先,您必须标记用户输入(如果用户输入的是
数学、物理
,而不是
数学和物理
。在这种情况下,拆分
不会将
数学
物理
分开)

然后您需要使用
list
的每个成员调用
favsub.count
(顺便说一句,这是一个错误的变量名,因为它隐藏了内置的
list

我将建议另一种天真(但更简单)的方法。忘记分割和标记用户输入。只需搜索每个已识别的主题并将结果相加:

 subjects_list = ["math", "physics", "biology", "computer science"]
 favsub = input("What are your favorite subjects? \n")
 favsub = favsub.lower()
 count = 0
 for subject in subjects_list:
     if subject in favsub:
         count += 1
 print(count)

这基本上与@schwobasegll的答案相同,但有一个明确的计数器。

问题是
计算机科学
不是一个词。问题是
计算机科学
不是一个词。