【发布时间】:2021-01-07 12:14:49
【问题描述】:
我知道至少有两个主题可以解释 map() 的工作原理,但在我遇到的特定情况下我似乎无法理解它的工作原理。
我正在做以下 Python 练习:
编写一个程序,根据 来自控制台输入的事务日志。事务日志格式为 如下图:
D 100
W 200
D 表示存款,W 表示取款。假设以下输入 提供给程序:
D 300
D 300
W 200
D 100
那么,输出应该是:
500
为这个练习提供的答案之一如下:
total = 0
while True:
s = input().split()
if not s:
break
cm,num = map(str,s)
if cm=='D':
total+=int(num)
if cm=='W':
total-=int(num)
print(total)
现在,我知道 map 将函数 (str) 应用于可迭代 (s),但我没有看到程序如何识别 s 字符串中的数字。我假设str 将每个字母/数字/等转换为字符串类型,但是int(num) 如何知道要选择什么作为整数?换句话说,为什么这段代码不会产生某种 TypeError 或 ValueError,因为在我看来,它会尝试生成一个整数(例如)“D 100”?
【问题讨论】:
标签: python-3.x string parsing integer