第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

打印報(bào)表僅顯示列表中的第一個(gè)帳戶名稱

打印報(bào)表僅顯示列表中的第一個(gè)帳戶名稱

藍(lán)山帝景 2023-09-12 10:48:07
為了更清楚起見,我粘貼了完整的代碼。我的問題是關(guān)于“withdrawal()”函數(shù)。盡管循環(huán)使用不同的帳戶名稱,但第二個(gè)打印語句中的 account.name 變量僅顯示列表中的第一個(gè)帳戶名稱def validation(accounts):    pin = int(input("Enter 4 digits pin: "))    for account in accounts:        if pin == account.pin and len(str(pin)) == 4:            print("\nWelcome! {}, your account balance is ${}".format(account.name, account.balance))            return withdrawal(accounts)    print("\nInvalid pin.\n")    return try_again(accounts)            def withdrawal(accounts):    amount = int(input("\nEnter amount to withdraw: "))    for account in accounts:        if account.balance > amount:            account.balance -= amount            print("\nTransaction successful, your new balance is ${}".format(account.balance))            new = input("\nNew transaction? YES/NO?: ")            if new.lower() == "yes":                return withdrawal(accounts)            print("\nTake your card {}. Thank you for banking with us.".format(account.name))            break    else:        print("\nTransaction failed due to insufficient funds.")                        def try_again(accounts):    re_enter = input("Enter YES to try again or NO to exit: ")    if re_enter.lower() == "yes":        return "\n" + validation(accounts)    elif re_enter.lower() == "no":        print("\nGoodbye. Take your card.")    else:        print("\nInvalid input. Take your card.")            class Account:    def __init__(self, name, pin, balance):        self.name = name        self.pin = pin        self.balance = balance        accounts = [Account("Bryan Somto", 4289, 300000), Account("Dubem Vic", 3329, 250000), Account("Munz Gee", 2200, 220000)]validation(accounts)
查看完整描述

1 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

概括

簡單地說,這是因?yàn)槊看蝫ithdrawal調(diào)用該函數(shù)時(shí),它都會(huì)迭代所有帳戶,并與第一個(gè)具有足夠高余額的帳戶進(jìn)行交易。由于“Bryan Somto”是第一個(gè)帳戶,因此交易始終通過該帳戶進(jìn)行。修改該withdrawal函數(shù)以僅接受用于進(jìn)行交易的特定帳戶。


解釋

當(dāng)您調(diào)用該withdrawal函數(shù)時(shí),您應(yīng)該只傳遞用戶正在進(jìn)行交易的特定帳戶。因此,不要調(diào)用 ,而是withdrawal(accounts)調(diào)用withdrawal(account)。然后僅將該特定帳戶傳遞給該函數(shù)。


def withdrawal(account):

    amount = int(input("\nEnter amount to withdraw: "))

    if account.balance > amount:

        account.balance -= amount

        print("\nTransaction successful, your new balance is ${}".format(account.balance))

        

        # New transaction

        new = input("\nNew transaction? YES/NO?: ")

        if new.lower() == "yes":

            return withdrawal(account)

        

        print("\nTake your card {}. Thank you for banking with us.".format(account.name))

    else:

        print("\nTransaction failed due to insufficient funds.")

這里,該withdrawal函數(shù)僅處理特定帳戶。


如果您也修改您的功能,那就最好了validation。因?yàn)槟壳?,如果多個(gè)人擁有相同的 PIN,則無法正常工作。它應(yīng)首先輸入帳戶持有人的姓名,然后輸入 PIN。然后它應(yīng)該檢查兩者是否匹配。


像這樣:


def validation(accounts):

    name = input("Enter your name: ")

    for account in accounts:

        # Checking account name

        if account.name == name:

            pin = int(input("Enter 4 digits PIN: "))

            

            # Checking PIN length

            if len(str(pin)) != 4:

                print("\nInvalid PIN.\n")

                return try_again(accounts)

            

            # Checking PIN

            if account.pin == pin:

                print("\nWelcome! {}, your account balance is ${}".format(account.name, account.balance))

                return withdrawal(account)

            else:

                print("\nThe PIN is incorrect")

                return try_again(accounts)

    else:

        print("\nThere is no account with that name.")

        return try_again(accounts)

這里它也只檢查一次引腳的長度。在原始代碼中,它每次都會(huì)檢查長度,這是不必要的。


if在函數(shù)的第一塊中,如果改為try_again會(huì)更好。您不需要換行符,它可能會(huì)導(dǎo)致錯(cuò)誤。return "\n" + validation(accounts)return validation(accounts)


在旁邊

關(guān)于檢查賬戶名:


標(biāo)準(zhǔn)做法是使用一個(gè)絕對(duì)唯一的帳號(hào)/ID,那么即使兩個(gè)人同名,它仍然有效。它也更好,因?yàn)橥ǔ]斎霂ぬ?hào)比輸入長名稱更容易。在這個(gè)例子中,如果兩個(gè)人有相同的名字,它將選擇列表中的第一個(gè)accounts,而永遠(yuǎn)不會(huì)到達(dá)第二個(gè)。


查看完整回答
反對(duì) 回復(fù) 2023-09-12
  • 1 回答
  • 0 關(guān)注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)