如何在Python中的每个命令之后显示所有输入

如何在Python中的每个命令之后显示所有输入,python,Python,我有个问题 我想在“查看”命令中显示所有记录,但它只显示最后一条记录 我如何解决这个问题 请帮帮我,谢谢 我的代码: initial_money = int(input('How much money do you have? ')) def records(): return def add(records): records = input('Add an expense or income record with description and amount:\n')

我有个问题

我想在“查看”命令中显示所有记录,但它只显示最后一条记录

我如何解决这个问题

请帮帮我,谢谢

我的代码:

initial_money = int(input('How much money do you have? ')) 

def records():
    return

def add(records):
    records = input('Add an expense or income record with description and amount:\n').split()
    global rec
    rec = records[0]
    global amt
    amt = records[1]
    global initial_money
    initial_money += int(amt)
    
def view(initial_money, records):
    print("Here's your expense and income records:") 
    print("Description          Amount")
    print("-------------------  ------")
    print('{name:<20s} {number:<6s}'.format(name = rec,number = amt))
    print('Now you have {} dollars.'.format(initial_money))

while True:
    command = input('\nWhat do you want to do (add / view / delete / exit)? ') 
    if command == 'add':
        records = add(records)
    elif command == 'view':
        view(initial_money, records)
我想要的输出:

-------------------  ------
tomato               -50
salary               100
Now you have 150 dollars.   

您需要在插入的记录列表中创建记录。当前,每次调用add时都会覆盖它

  • 在主循环之外创建一个数组
  • 在主循环中,将调用的结果推送到视图函数的数组中
  • 然后需要在数组上循环以查看所有结果

  • 另外,为了获得额外的好处,停止在add函数中使用global,这被认为是一种不好的形式

    您需要在插入的记录列表中创建记录。当前,每次调用add时都会覆盖它

  • 在主循环之外创建一个数组
  • 在主循环中,将调用的结果推送到视图函数的数组中
  • 然后需要在数组上循环以查看所有结果

  • 还有一点值得注意的是,不要在add函数中使用global,它被认为是糟糕的形式

    我将使用字典来保存它们:

    initial_money = int(input('How much money do you have? ')) 
    
    mr = {}
    
    def records():
        return
    
    def add(records):
        records = input('Add an expense or income record with description and amount:\n').split()
        global rec
        rec = records[0]
        global amt
        amt = records[1]
        global mr
        global initial_money
        mr[rec] = int(amt)
        initial_money += mr[rec]
        
        
    def view(initial_money, records):
        print("Here's your expense and income records:") 
        print("Description          Amount")
        print("-------------------  ------")
        for r,a in mr.items():
          print('{name:<20s} {number:<6s}'.format(name = r,number = str(a)))
    
        print('Now you have {} dollars.'.format(initial_money))
    
    while True:
        command = input('\nWhat do you want to do (add / view / delete / exit)? ') 
        if command == 'add':
            records = add(records)
        elif command == 'view':
            view(initial_money, records)
    

    我将使用字典来保存它们:

    initial_money = int(input('How much money do you have? ')) 
    
    mr = {}
    
    def records():
        return
    
    def add(records):
        records = input('Add an expense or income record with description and amount:\n').split()
        global rec
        rec = records[0]
        global amt
        amt = records[1]
        global mr
        global initial_money
        mr[rec] = int(amt)
        initial_money += mr[rec]
        
        
    def view(initial_money, records):
        print("Here's your expense and income records:") 
        print("Description          Amount")
        print("-------------------  ------")
        for r,a in mr.items():
          print('{name:<20s} {number:<6s}'.format(name = r,number = str(a)))
    
        print('Now you have {} dollars.'.format(initial_money))
    
    while True:
        command = input('\nWhat do you want to do (add / view / delete / exit)? ') 
        if command == 'add':
            records = add(records)
        elif command == 'view':
            view(initial_money, records)
    

    哦,真的,所以我应该删除全局和使用循环。哦,真的,所以我应该删除全局和使用循环。这解决了我的问题,但总金额似乎不正确。哦,现在是真的。谢谢!它解决了我的问题,但总的钱似乎不正确。哦,现在是真的。谢谢!
    How much money do you have? 100         
    
    What do you want to do (add / view / delete / exit)? add
    Add an expense or income record with description and amount:
    tomato -50
    
    What do you want to do (add / view / delete / exit)? add
    Add an expense or income record with description and amount:
    salary 100
    
    What do you want to do (add / view / delete / exit)? view
    Here's your expense and income records:
    Description          Amount
    -------------------  ------
    tomato               -50   
    salary               100   
    Now you have 150 dollars.