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是数值、列表元素或表达式。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值