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))

 

posted @ 2022-03-23 00:09  野生特效测试员  阅读(50)  评论(0编辑  收藏  举报