对自动取款机进行编程

时间:2018-10-11 22:28:32

标签: python loops

我的任务是创建一个ATM类型的程序。以下是我的主要功能(不包括存款,提款和支票余额功能)。当我运行该代码时,即使我输入0或1234,该程序也会重复循环pin功能。它反复指示用户输入其pin。我认为所有缩进都正确,但是我想我正在弄乱代码中的某个地方。

def main():
    pin_number = input("Please enter your pin number")
    stop = False

    while not is_authorized(pin_number) and stop!= True:

        if pin_number == "0":
            stop == True
        if pin_number == "1234":
            stop == False  

    if stop != True:
            while True:
                choice = display_menu()
            if choice == 1:
                deposit()
            elif choice == 2:
                withdraw()
            elif choice == 3:
                check_balance()

2 个答案:

答案 0 :(得分:0)

在if语句中,应该使用=而不是==。第一个用于为变量分配值,就像您尝试做的那样。第二个用于比较两个值是否相等,并返回一个布尔值(真/假)。

答案 1 :(得分:0)

您的代码

if stop != True:
如果变量stop为False(用户输入了错误的代码),

将在循环内运行代码。但是,如果stop为True,则要运行代码。 因此,请使用以下代码:

if stop == True:

当stop为True(用户输入正确的代码)时,这将运行封装的代码

编辑:

抱歉。上面的答案与以下代码有关的代码:以下

if pin_number == "1234":
    stop = False