首页 > 解决方案 > 我希望输出在 for 循环中显示一次

问题描述

如果错误,我希望 Else 语句显示一次。请查看我尝试过的代码。

lists = ['apple','grape','pineapple','orange']

password = "xyz"
def pass1():
    for i in lists:
        if i == password:
            print("Accepted!", "Password : " + i)
            break
        else:
            print("Password not found! Try again")
pass1()

输出:

Password not found! Try again
Password not found! Try again
Password not found! Try again
Password not found! Try again

Process finished with exit code 0

标签: python

解决方案


如果我正确理解您的问题,您可以通过删除else, 如果循环结束并且您没有在列表中找到密码,则它不存在。

lists = ['apple','grape','pineapple','orange']

password = "xyz"
def pass1():
    for i in lists:
        if i == password:
            print("Accepted!", "Password : " + i)
            return
    print("Password not found! Try again")
pass1()

另一种更蟒蛇的方式

def pass2():
    if password in lists:
        print(print("Accepted!", "Password : " + lists.index(password)))
    else:
        print("Password not found! Try again")
pass2()

我不明白您为什么不将密码作为参数传递?

也许考虑这样做如下

def pass3(password, lists):
    if password in lists:
        print(print("Accepted!", "Password : " + lists.index(password)))
    else:
        print("Password not found! Try again")

lists = ['apple','grape','pineapple','orange']
password = "xyz"
pass3(password, lists)

推荐阅读