Python基础教程 第3版 第10章的代码问题
Python基础教程(第3版)学习中。(Magnus Lie Hetland,袁国忠译,人民邮电出版社2018年)
环境是Python 3.8.3
代码清单10-10 找出发件人的程序 运行结果为空,如图略作修改才能用,不清楚是否版本问题。
# find_sender.py import fileinput, re pat = re.compile('From: (.*) <.*?$') for line in fileinput.input(): m = pat.match(line) if m: print(m.group(1))
代码清单10-11运行报错,改动如下:
# templates.py import fileinput, re field_pat = re.compile(r'\[(.+?)\]') scope = {} def replacement(match): try: code = match.group(1) return str(eval(code, scope)) except SyntaxError: exec(code, scope) return '' lines = [] for line in fileinput.input(): lines.append(line) text = ''.join(lines) print(field_pat.sub(replacement, text))