如何使用条件检查列表中是不是存在字符串类型的输入? [复制]
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 变量值检查输入参数值是不是存在作为列表?
如何在 Perl 中使用 grep 检查字符串是不是存在 [重复]