Foreach 循环跳过第一项而没有任何 pop/remove 函数

Foreach loop skipping over first item without any sort of pop/remove function

我正在尝试创建一个简单的程序来计算交易余额。一切正常,除了我的程序跳过了列表中的第一项。我想找出我错过了什么...

基本上,输入的格式为 ('D 100' , 'W 50' ) 等,其中 D 表示存款,W 表示取款。假设初始余额为0.

这是我的代码:

# While loop for continuous input
def WhileInputActive(function,List=None):
        while True:
                inputVariable = input();
                if (inputVariable is None) or (not inputVariable):
                        break;
                if (List is None):
                        function(inputVariable);
                else:
                        function(List,inputVariable);


def PlaceInList(List,Input):
    List.append(Input);


def CalculateTransactionBalance():
    Input = input();
    List = []
    amount = 0 
    WhileInputActive(PlaceInList,List)
    for item in List:
        Type=item[0]
        string = ''
        for num in item:
            if(num.isdigit()):
                string+=str(num)
        if(Type == 'D'):
            amount += int(string)
        else:
            amount -= int(string)
    print(int(amount))

CalculateTransactionBalance()

这是输入:

D 300
D 300
W 200
D 100

这是输出:

200

预期的输出是 500,但程序跳过了第一个条目(我对打印 200 而不是 500 的原因做了一些挖掘)

您在 WhileInputActive 函数之外调用 input() 并且不对其读取的数据执行任何操作。具体来说,CalculateTransactionBalance:

里面的这一行
Input = input();