如何使用条件检查列表中是不是存在字符串类型的输入? [复制]

Posted

技术标签:

【中文标题】如何使用条件检查列表中是不是存在字符串类型的输入? [复制]【英文标题】:How do check if an input of string type is present in a list, using conditions? [duplicate]如何使用条件检查列表中是否存在字符串类型的输入? [复制] 【发布时间】:2020-01-22 23:01:56 【问题描述】:
pizzas = ['oriental', 'salami', 'indian', '4cheese', 'beef'] 

for questions in pizzas:
    questions = input("Do u like ")
    if questions in pizzas:
        print('Yes')
    else:
        print('No')

这里想要求用户输入比萨的类型。如果用户输入的披萨类型在“披萨”列表中,我希望控制台输出“是”。所以我制作了这个程序,但在这种情况下它总是输出“否”。对不起,如果我没有正确解释。谢谢。

【问题讨论】:

pizzas == questions 中,您正在比较一个列表和一个字符串的相等性,而一个字符串永远不可能等于 到一个列表,所以您将始终得到No 作为答案。您正在寻找in 运算符 @ForceBru 我试过了,但没用... @Lasersapien,您尝试了什么,究竟是怎么回事? @ForceBru 我已经将“如果问题 == 披萨”更改为“如果披萨中的问题”,就像你说的那样,它总是输出 no 不需要循环。只需删除for questions... 行。 【参考方案1】:

在这种情况下你不需要循环,只需使用 in 运算符:

pizzas = ['oriental', 'salami', 'indian', '4cheese', 'beef'] 
questions = raw_input("Do u like ")
if questions in pizzas:
    print('Yes')
else:
    print('No')

【讨论】:

它说 'raw_input' 没有定义,在 python 3 中不起作用 @Lasersapien,这是因为这个答案是为 Python 2 编写的。将 raw_input 更改为 input 以使其在 Python 3 中工作 @ForceBru 是的,但它不会循环。所以我需要循环+输入() @Lasersapien,我真的不明白你为什么在这里循环。 for questions in pizzas: 将遍历每个比萨饼,但在 questions = input(...) 之后,名称 questions 现在指的是用户输入,而不是比萨饼,因此现在循环与 for _ in range(len(pizzas)): 基本相同,它将重复循环的主体 @987654328 @times...没有明显的原因 @ForceBru 是的,我也可以执行“for questions in range(1, 100)”或“while(1)”循环【参考方案2】:

这是因为您使用的是“=”而不是“==” 你不必使用forloop

如果有披萨问题: 打印(“是*) 别的: 打印(“否”)

抱歉,我使用手机时代码格式不正确

【讨论】:

以上是关于如何使用条件检查列表中是不是存在字符串类型的输入? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Linq where 条件检查字符串列表是不是包含任何字符串

如何根据 PL/SQL 变量值检查输入参数值是不是存在作为列表?

在 C 中 - 检查字符数组中是不是存在字符

如何在 Perl 中使用 grep 检查字符串是不是存在 [重复]

使用 argparse 将逗号分隔的多个整数值作为输入,并检查列表中是不是存在这些值

在c#中使用for循环检查列表中是不是存在字符串