1 回答
TA贡献1804条经验 获得超7个赞
听起来您想保留之前操作的日志。您可以通过创建一个列表并在每次完成操作时附加一个新条目来实现此目的。然后您的更改函数可以打印出列表中的最后 3 项。
您可以将该列表设置为全局并以与访问相同的方式访问它usd。
您还可以在 main 中创建列表并将其作为参数传递给更改。如果您决定这样做,您可以让每个函数返回其日志,以便您可以将其附加到 main 中的列表中。
例如(仅使用add函数说明)
使用全局变量(这是不好的做法,但更短):
usd = 500
log = []
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 = 500
def 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 设为全局变量,但我将其留给您
添加回答
举报