Python ATM Else和Elif错误

Python ATM Else和Elif错误,python,if-statement,Python,If Statement,最近,我在Python 3.3.3中的Else和Elif语句方面遇到了一些问题 这是我的密码: # ATM was programmed by Jamie Mathieson # introduction sleep (1) print ("-----------------------------------------------") print ("\n ATM ") print ("\n----------------

最近,我在Python 3.3.3中的Else和Elif语句方面遇到了一些问题

这是我的密码:

# ATM was programmed by Jamie Mathieson

# introduction

sleep (1)

print ("-----------------------------------------------")
print ("\n                  ATM                ")
print ("\n-----------------------------------------------")

sleep (3)

print ("\nWelcome to ATM. ATM is a mathematical system that handles data.")

sleep (5)

print ("\n Your ATM card has is being inserted. Please wait...")

sleep (3)

print ("Your ATM card has been inserted.")

sleep (5)

print ("Type 'options' to view available commands.")

# variables

balance = print("Balance  £", money)

money = 200

options = ("Options: 1) Withdraw <amount> 2) Deposit <amount> 3) Balance 4) Exit")

# statements

option=int(input("Please enter an option: "))

if Option==1:
    print("Balance  £", money)

if Option==2:
    print("Balance  £", money)
    Withdraw=float(input("Please enter the amount of money you would like to withdraw: £ "))
    if Withdraw>0:
        newbalance=(money-Withdraw)
        print("New Balance: £",remainingbalance)
        elif: Withdraw>money
            print("No Balance Remaining")
        else:
            print("Withdraw canceled.")

if Option==3:
    print("Balance  £", money)
    Deposit=float(input("Please enter the amount of money you would like to deposit: £ "))
    if Deposit>0:
        newbalance=(money+Deposit)
            print("New Balance: £",newbalance)
    else:
            print("Deposit canceled.")

if Option==4:
    print("ATM is ejecting your card. Please wait...")
    sleep(5)
    exit()
#ATM由杰米·马蒂森编程
#导言
睡眠(1)
打印(“----------------------------------------------------”)
打印(“\n ATM”)
打印(“\n----------------------------------------------------”)
睡眠(3)
打印(“\n欢迎来到ATM。ATM是一个处理数据的数学系统。”)
睡眠(5)
打印(“\n正在插入您的ATM卡。请稍候…”)
睡眠(3)
打印(“您的ATM卡已插入。”)
睡眠(5)
打印(“键入“选项”以查看可用命令。”)
#变数
余额=打印(“余额%”,货币)
钱=200
选项=(“选项:1)提取2)存款3)余额4)退出”)
#声明
option=int(输入(“请输入选项:”)
如果选项==1:
打印(“余额”,货币)
如果选项==2:
打印(“余额”,货币)
取款=浮动(输入(“请输入您要取款的金额:”)
如果退出>0:
新余额=(提款)
打印(“新余额:英镑”,剩余余额)
elif:取款>取款
打印(“无余额”)
其他:
打印(“撤消已取消”)
如果选项==3:
打印(“余额”,货币)
存款=浮动(输入(“请输入您想存入的金额:”)
如果存款>0:
新余额=(货币+存款)
打印(“新余额:”,新余额)
其他:
打印(“已取消存款”)
如果选项==4:
打印(“ATM正在弹出您的卡。请稍候…”)
睡眠(5)
退出()

我得到的错误是“无效语法”,它突出显示了Else和Elif语句。我做错了什么

您必须将:放在末尾,并更正标识

if Option==2:
    print("Balance  £", money)
    Withdraw=float(input("Please enter the amount of money you would like to withdraw: £ "))
    if Withdraw>0:
       newbalance=(money-Withdraw)
       print("New Balance: £",remainingbalance)
    elif Withdraw>money:
        print("No Balance Remaining")
    else:
        print("Withdraw canceled.")

代码有几个问题。正如@Daniel指出的,您的缩进必须纠正。另外,
elif
块的条件放在冒号后面

除此之外,您还要将用户的响应分配给一个名为
option
的变量,然后在
option
上写入条件。这是两件不同的事情

最后,
balance=print(“balance-”,money)
将抛出一个错误。看起来您正试图将
余额
定义为一个函数,该函数将打印“余额%”,后跟余额金额。如果是这样,您可以这样做:

balance = lambda x: print("Balance  £{}".format(x))
编辑:要回答您的问题,请使用

from time import sleep
为True时:
#正在从用户读取id
id=int(输入(“\n输入帐户pin:”)
#循环直到id有效
当id<1000或id>9999时:
id=int(输入(“\n无效id..请重新输入:”)
#在帐户会话上迭代
尽管如此:
#打印菜单
打印(“\n1-查看余额\t2-取款\t3-存款\t4-退出”)
#选读
selection=int(输入(“\n输入您的选择:”)
#获取帐户对象
对于账户中的acc:
#比较帐户id
如果acc.getId()==id:
accountObj=acc
打破
#视图平衡
如果选择==1:
#打印天平
打印(accountObj.getBalance())
#撤回
elif选择==2:
#阅读量
金额=浮动(输入(“\n输入要提取的金额:”)
提取金额=输入(“这是正确的金额,是还是否?”+str(金额)+”
如果撤销版本=“是”:
打印(“验证撤回”)
其他:
打破
如果金额
但是,由于某些原因,elif似乎仍然是一个错误。尝试将脚本作为.py文件运行!哦,我明白了!不过,sleep()没有定义。如何导入它?它在
时间中定义,因此您可以从时间导入睡眠
;但是把它拿出来,你的用户会更快乐。让代码运行得更慢只是一件烦人的事。而且,我该如何使它在用户选择一个选项后,可以提示他们选择另一个选项,或者打印一条消息,说“谢谢您使用ATM。您的卡现在被弹出。请等一下…”-一些让脚本继续运行的东西。为了做到这一点,你需要把密码放在厕所里