python百例练习之第十七例-连续输入和if not

问题

编写一个程序,该程序根据控制台输入的交易日志来计算银行帐户的净额。事务日志格式如下所示:
D 100
W 200

D表示存款,W表示提款。
假设将以下输入提供给程序:
D 300
D 300
W 200
D 100
然后,输出应为:
500

提示:
如果将输入数据提供给问题,则应假定它是控制台输入。

程序

第一种:

total = 0
while True:  #利用while保证不断输入
   a = input()   #input好像是能自动识别换行符来确定一次输入的结束,因为我把上面的输入复制之后一次性粘贴到了输入框内,它依然能够将不同行的输入识别为不同次的输入然后输出正确的结果
   if a:    #如果a不是空的
       b = a.split(' ')
       if b[0] == 'D':
           total += int(b[1])
       elif b[0] == 'W':
            total -= int(b[1])
   else:
       break
print(total)

第二种:

netAmount = 0
while True:
    s = input()
    if not s:    #这里用了if not **,那这个是啥用呢?
        break
    values = s.split(" ")
    operation = values[0]
    amount = int(values[1])
    if operation=="D":
        netAmount+=amount
    elif operation=="W":
        netAmount-=amount
    else:
        pass     #其实这个地方没有也可以,但是有的话能够提高输入的容错率
print(netAmount)

if not用法

if not XXX就是: = if XXX ==False
其中XXX是数值、列表元素或表达式。

这个例子其实也挺简单的,主要是逻辑。

你可能感兴趣的:(python练习,python)