Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我希望输出在for循环中显示一次_Python - Fatal编程技术网

Python 我希望输出在for循环中显示一次

Python 我希望输出在for循环中显示一次,python,Python,如果Else语句出错,我希望它显示一次。请看我试过的代码 list=[“苹果”、“葡萄”、“菠萝”、“橙子”] password=“xyz” def pass1(): 对于列表中的i: 如果i==密码: 打印(“已接受!”,“密码:+i) 打破 其他: 打印(“未找到密码!重试”) pass1() 输出: 找不到密码!再试一次 找不到密码!再试一次 找不到密码!再试一次 找不到密码!再试一次 进程已完成,退出代码为0 如果我正确理解了您的问题,您可以通过删除else来完成,如果循环结束,并且您

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

list=[“苹果”、“葡萄”、“菠萝”、“橙子”]
password=“xyz”
def pass1():
对于列表中的i:
如果i==密码:
打印(“已接受!”,“密码:+i)
打破
其他:
打印(“未找到密码!重试”)
pass1()
输出:

找不到密码!再试一次
找不到密码!再试一次
找不到密码!再试一次
找不到密码!再试一次
进程已完成,退出代码为0

如果我正确理解了您的问题,您可以通过删除
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()
我不明白你为什么不把密码作为参数传递

也许把它看成是跟随< /P>
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)

实际上,如果只想检查列表中的值是否正确,则不需要循环,只需尝试以下操作:

def pass1():
    if password in lists:
        print("Accepted!", "Password : " + password)
    else:    
        print("Password not found! Try again")
但是,如果您仍然希望迭代列表,则可以像下面这样使用return:

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

因为如果不使用return,即使密码是真的,最后一个代码也会被打印出来。

另一种方法是使用
else
on
for loop

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()

列表中没有一项与密码匹配,因此代码正常工作。您是否尝试过在
else
块中执行
return
-ing操作?请查看以下答案:-您不需要重复查看列表。您可以使用
in
关键字立即根据密码条件测试所有值。我使用正确的密码进行了尝试,结果显示2个输出“已接受!”和“未找到密码!重试”。我希望是他们中的任何一个。如果你想成为他们中的任何一个,只需删除返回。但“找不到密码!重试”会一直打印到与正确答案不匹配为止。我希望它是一次性的。复制并粘贴我的代码,然后自己试试。它只打印一次。