如何使用 for 循环打印先前函数完成的操作?

作为一项作业,我正在 python 中制作一个简单的界面,它可以显示余额、添加该余额、从该余额中取出资金、检查利率,最后检查之前完成的三个操作。这将是 choice == 5。那么我应该在底部 def 中写什么才能做到这一点呢?


usd = 500


def main():

    print("""

    1. Balance

    2. Add

    3. Retrieve

    4. Interest

    5. Last Changes

    """)


    choice = int(input("Choose: "))


    if choice == 1:

        global usd

        balance()

    elif choice == 2:

        add()

    elif choice == 3:

        retrieve()

    elif choice == 4:

        interest()

    elif choice == 5:

        changes()


def balance():

    global usd

    print("Balance: ", round((usd),2))

    main()


def add():

    global usd

    amount = int(input("How much do you want to add? "))

    usd = amount + usd

    print("New balance = ", round((usd),2))

    main()


def retrieve():

    global usd

    amount = int(input("How much do you want to retrieve: "))

    usd = usd - amount

    print("New balance = ", round((usd),2))  

    main()


def interest():

    global usd

    if usd<=1000000:

        usd = ((usd/100)*101)

        print("New balance: ", round(((usd/100)*101), 2))

    elif usd>=1000000:

        usd = ((usd/100)*102)

        print("New balance: ", round(((usd/100)*102), 2))

    main()


def changes(): 

    

    main()


main()

所需的输出看起来有点像这样;


Choose: 5

+6105

-500000

+1110000


梦里花落0921
浏览 136回答 1
1回答

三国纷争

听起来您想保留之前操作的日志。您可以通过创建一个列表并在每次完成操作时附加一个新条目来实现此目的。然后您的更改函数可以打印出列表中的最后 3 项。您可以将该列表设置为全局并以与访问相同的方式访问它usd。您还可以在 main 中创建列表并将其作为参数传递给更改。如果您决定这样做,您可以让每个函数返回其日志,以便您可以将其附加到 main 中的列表中。例如(仅使用add函数说明)使用全局变量(这是不好的做法,但更短):usd = 500log = []def add():    global usd    amount = int(input("How much do you want to add? "))    usd = amount + usd    print("New balance = ", round((usd),2))    log.append(f"+{amount}")    # add change to log    main()def changes():     # print last 3 items in log    for change in log[-3:]:        print(change)    main()或者更典型的方式,使用循环(没有全局变量)usd = 500def main():    log = []    choice = 0    while choice != 6:        print("""        1. Balance        2. Add        3. Retrieve        4. Interest        5. Last Changes        6. Quit        """)        choice = int(input("Choose: "))        if choice == 1:            balance()        elif choice == 2:            log.append(add())      # add change to log        elif choice == 3:            log.append(retrieve()) # add change to log        elif choice == 4:            interest()       elif choice == 5:            changes(log)def add():    global usd    amount = int(input("How much do you want to add? "))    usd = amount + usd    print("New balance = ", round((usd),2))    return f"+{amount}"def changes(log):     # print last 3 items in log    for change in log[-3:]:        print(change)main()这种方法的一个潜在问题是,因为您无限期地将项目添加到日志列表中,理论上您最终可能会耗尽计算机上的内存。为了解决这个问题,只要列表的长度大于 3,您就可以从列表中删除多余的日志。一般来说,全局变量是不好的做法,因此最好避免将 usd 设为全局变量,但我将其留给您
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python