3.1.11 创新习题

26. 图像滤波(Picture filtering)。请编写一个模块rawpicture.py,包含read()函数和write()函数,分别用于标准输入和标准输出。其中,write()函数带一个Picture对象作为参数,输出指定的图像到标准输出,使用的输出格式为:如果图像的大小为w×h,则输出w,然后输出h,接着输出w*h个代表像素颜色值的三个整数元组,按行优先顺序输出。read()函数不带参数,从标准输入按上述图像格式读取一幅图像,创建并返回一个Picture对象。注意:图像滤波所占用的磁盘空间比图像文件要大得多,因为标准图像文件格式通常会压缩数据从而占用较少的磁盘空间。

27. 印度爱经密码(Kama Sutra cipher)。请编写一个过滤器KamaSutra,带两个字符串命令行参数(作为密钥字符串),读取标准输入,根据密钥字符串替换每一个字母,然后将结果写入标准输出。这种操作是已知最早的密码系统的基础。密钥字符串的限制条件是其长度必须相等,且标准输入的所有字母必须包含在其中一个字符串中。例如,如果输入全部为大写字母,且密钥字符串为:THEQUICKBROWN和FXJMPSVRLZYDG,则对应的密钥表为:

把输入字符转换为输出字符的替换规则为:F替换为T、T替换为F、H替换为X、X替换为H,以此类推。通过将每个字符替换为对应的字符从而实现信息的加密。例如,明文信息MEET AT ELEVEN加密为QJJF BF JKJCJG。收到密文的人可以使用相同的密钥解密出原始明文。 ...

Get 程序设计导论:Python语言实践 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.