Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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中的While循环问题_Python_Loops_While Loop - Fatal编程技术网

Python中的While循环问题

Python中的While循环问题,python,loops,while-loop,Python,Loops,While Loop,我正在尝试编写一个小型Python程序,用于中学讲授密码 这都是他们必须做的一个正在进行的项目的一部分 然而,在我的while循环中,我有一个if条件,如果第一次不满足该条件,它就会无限循环,直到我中断为止 while esc == False: if guess != cipher: print("ERROR: INCORRECT CIPHER:" + Decrypt(guess, enc)) pass else: esc = T

我正在尝试编写一个小型Python程序,用于中学讲授密码

这都是他们必须做的一个正在进行的项目的一部分

然而,在我的while循环中,我有一个
if
条件,如果第一次不满足该条件,它就会无限循环,直到我中断为止

while esc == False:
    if guess != cipher:
        print("ERROR: INCORRECT CIPHER:" + Decrypt(guess, enc))
        pass
    else:
        esc = True
        print("Correct Cipher! Decryption successful:" + Decrypt(guess, enc))
这里的密码是12,如果这是输入,它将正常进行,但是任何其他输入只会给出错误消息并永远循环

我通常来自C#/C++背景,我知道Python需要与它的制表符和空格保持一致,我已经检查过几次了,但我现在不知所措

附加代码:

这很好用,同样的方法

while esc == False:
    if CheckPassword(pw) == True:
        print("Authorisation successful.")
        esc = True
    else:
        pw = input("Password =  :  ")
发生相同问题的其他地方:

while esc == False:
    if attempts < 1:
        esc = True
        GameOver()
    elif x == "USERS":
        print("USERS UNAVAILABLE.")
        attempts = RemoveAttempt(attempts)
        pass
当esc==False时:
如果尝试次数小于1:
esc=真
GameOver()
elif x==“用户”:
打印(“用户不可用”)
尝试次数=RemoveAttempt(尝试次数)
通过

我不确定您还期望发生什么。如果一旦进入while循环,猜测就不正确,那么它将永远是不正确的,因为您从未要求用户进行另一次猜测。注意,在一个有效的例子中,else子句有一个新密码的
输入
:在任何一个非有效的例子中都不会这样做


(另外,我认为你可能会对
pass
的作用感到困惑:它只是一个no-op,即它什么也不做,只在语法上需要语句但不想做任何事情的情况下才有用。在你使用它的任何地方都不是这样,所以你应该删除它。除非你可能是想
break
说出来的循环?)

我不确定您还希望发生什么。如果一旦进入while循环,猜测就不正确,因为您从未要求用户进行另一次猜测。请注意,在有效的猜测中,else子句有一个新密码的
输入
:您在非工作状态下都不会这样做举个例子


(另外,我认为你可能会对
pass
的作用感到困惑:它只是一个no-op,即它什么也不做,只在语法上需要语句但不想做任何事情的情况下才有用。在你使用它的任何地方都不是这样,所以你应该删除它。除非你可能是想
break
说出来的循环?)

你的问题在哪里?你的问题在哪里?你的问题是什么?谢谢你,伙计,我正在努力学习Python,但是我把自己弄糊涂了。至于在发布之前你说得对,我尝试了所有的方法,甚至是荒谬的方法,看看我是否能让它工作,这是我没有放回去的一次休息。谢谢你你的回复,我会看看我是否能让它工作。谢谢,伙计,我在做这件事的时候正在尝试学习Python,我把自己弄糊涂了。至于在发布之前你绝对正确的通行证,我尝试了一切,甚至荒谬的事,看看我是否能让它工作,这是我没有放回去的一个休息。谢谢你的回复,我会的看看我能不能让它工作。