Python 在While循环中使用多个If语句

Python 在While循环中使用多个If语句,python,loops,Python,Loops,我试图写一个while循环,它遍历特定的列表,寻找特定的子字符串。它将查找带有这些子字符串的单词并打印出这些字符串 下面是一个完美的示例,但只适用于一个单词: lista = ['applepie','appleseed','bananacake','bananabread'] i = 0 z = len(lista) while i < z: if ('pie' in lista[0+i]) == True: print(lista[0+i])

我试图写一个while循环,它遍历特定的列表,寻找特定的子字符串。它将查找带有这些子字符串的单词并打印出这些字符串

下面是一个完美的示例,但只适用于一个单词:

lista = ['applepie','appleseed','bananacake','bananabread']

i = 0
z = len(lista)
while i < z:
    if ('pie' in lista[0+i]) == True:
        print(lista[0+i])
        break
    i = i  + 1
else:
    print('Not There Yet')
lista=['applepie','appleseed','bananacake','bananabread']
i=0
z=len(lista)
而i
这将打印出applepie(这是所需的!)

如何修复此while循环以添加多个约束

我正在尝试这样做:

lista = ['applepie','appleseed','bananacake','bananabread']

i = 0
z = len(lista)
while i < z:
    if ('pie' in lista[0+i]) == True:
        print(lista[0+i])
    if ('cake' in lista[0+1]) == True:
        print(lista[0+i])
    i = i  + 1
else:
    print('Not There Yet')
lista=['applepie','appleseed','bananacake','bananabread']
i=0
z=len(lista)
而i
这将打印出: 苹果派 还没有

当我要打印此文件时: 苹果派 香蕉蛋糕

我使用了多个'if'语句,因为我知道如果我想使用'elif',它只会在第一个'if'语句为false时运行


感谢您的帮助

你有两个小问题,我认为一个更大。这两个小问题中的第一个就是上面尼克和布伦登提到的。第二个是你的条件。它应该是您可以用来查看条件列表。当条件首次满足时,它将计算为
True
,如果从未发生,则计算为
False
。如果您将其与常规python
for
循环相结合,它将非常简洁:

lista = ['applepie','appleseed','bananacake','bananabread']
words = ['pie', 'cake']

for food in lista:
    if any(word in food for word in words):
        print(food)
它打印:

applepie
bananacake
您也可以使用与列表理解相同的方法来获得匹配的单词列表:

lista = ['applepie','appleseed','bananacake','bananabread']
words = ['pie', 'cake']

found = [food for food in lista if any(word in food for word in words)]
# ['applepie', 'bananacake']

一般来说,Python不鼓励您在循环中使用索引,除非您真的需要。它往往容易出错,也更难阅读。

[0+1]
列表中的“蛋糕”应该是
[i]
列表中的“蛋糕”(不知道为什么要添加0…但它应该是
i
,而不是
1
)为什么要这样做列表而不是常规的
循环?!?