Python elif不能正常工作

2024-04-20 12:08:02 发布

您现在位置:Python中文网/ 问答频道 /正文

Transaction_Code=="W""w""D""d"

如果没有,它应该运行Process_Invalid_Code(Previous_Balance)

然而,如果输入Transaction_Code!="W""w""D""d",然后继续运行"What is your previous balance?""How much is the transaction amount?"输入。。。你知道吗

只有这样,在您为这些输入之后,它才会运行Invalid_Transaction_Code

我想做的是让它在之前抛出Invalid_Transaction_Code ("Invalid Transaction Code!")等,而不浪费用户的时间来要求之前的余额和事务。。你知道吗

这有道理吗?你知道吗

这是密码

#The main function definition

def main():
    Name = input("What is your name?  ")
    Account_ID = input("What is your account ID?  ")
    Transaction_Code = input("Press W or w for Withdrawal, Press D or d for Deposit:  ")
    Previous_Balance = float(input("What is your previous balance?  "))
    Transaction_Amount = float(input("How much is the transaction amount?  "))

    if Transaction_Code == "W" or Transaction_Code == "w":
        Withdrawal_Process(Previous_Balance, Transaction_Amount)
    elif Transaction_Code == "D" or Transaction_Code == "d":
        Deposit_Process(Previous_Balance, Transaction_Amount)
    else:
        Process_Invalid_Code(Previous_Balance)

#Defines the Deposit Process

def Deposit_Process(Previous_Balance, Transaction_Amount):
    New_Balance = Transaction_Amount + Previous_Balance
    Print_Function(New_Balance)


#Defines the Withdrawal Process

def Withdrawal_Process(Previous_Balance, Transaction_Amount):
    if Transaction_Amount > Previous_Balance:
        print("Invalid Transaction: Not Sufficient Funds!")
        New_Balance = Previous_Balance
        Print_Function(New_Balance) 
    else:
        New_Balance = Previous_Balance - Transaction_Amount
        Print_Function(New_Balance)

#The Invalid Code Function Definition

def Process_Invalid_Code(Previous_Balance):
    New_Balance = Previous_Balance
    print ("Invalid Transaction Code!")
    print ("Please type W or w for Withdrawal")
    print ("or type D or d for Deposit")
    Print_Function(New_Balance)


#Defines the Print Function

def Print_Function(New_Balance):
    print ("Your balance is now $", format(New_Balance, '.2f'))  


#Call the main function

main()

Tags: orthenewinputisdefcodefunction
2条回答

您可能还希望在必要时尝试使用raw\u input()与input()相对,或者使用variable_name强制转换输出以消除tracback错误。你知道吗

因为所有你想要的动作都需要Previous_Balance,所以在任何情况下你都必须要求它:

def main():
    # never used, lets ask anyway
    Name = input("What is your name?  ")

    # we need this information at a minimum
    Previous_Balance = float(input("What is your previous balance?  "))
    Transaction_Code = input("Press W or w for Withdrawal, Press D or d for Deposit:  ")

    # if its a withdrawal/deposit, find the amount and account
    if Transaction_Code.upper() in "WD":
        # we never use this Account_ID ...
        Account_ID = input("What is your account ID?  ")
        Transaction_Amount = float(input("How much is the transaction amount?  "))
        if Transaction_Code.upper() == "W":
            Withdrawal_Process(Previous_Balance, Transaction_Amount)
        else:
            Deposit_Process(Previous_Balance, Transaction_Amount)
    else:
        # they've entered a bad code
        Process_Invalid_Code(Previous_Balance)

相关问题 更多 >