今天这题,看起来挺简单,实际写出来并不容易。在以前公司我曾把它做过招聘的笔试题,结果惨不忍睹,不得不拿掉。
输出如图的螺旋矩阵:
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
附加题:
输入一个正整数 N,输出以 N 为边长的螺旋矩阵。(比如上图就是 N 为 4 的结果)
期待各位同学提交解答。
提交代码可以使用 paste.ubuntu.com 或 codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。
往期问题可通过公众号菜单栏“课外辅导”栏目中进入查看。
【解答】校验文件哈希
在上次的文章里的参考链接里已经有了一个解法。这里我们也给出一个参考代码:
import hashlib import sys # 获取 HASH 值 def check_hash(file_path): res = {} source = open(file_path, 'rb').read() res['md5'] = hashlib.md5(source).hexdigest() res['sha1'] = hashlib.sha1(source).hexdigest() res['sha256'] = hashlib.sha256(source).hexdigest() res['sha512'] = hashlib.sha512(source).hexdigest() return res # 打印 hash 值 if __name__ == '__main__': for key, value in check_hash(sys.argv[1]).items(): print(key + ": " + value) # 使用方法 # 命令行下 python file_hash.py your_file_path # 可显示不同加密算法的结果
在上期提交的作业中,@徐大龙 同学的代码考虑了读取大文件时优化问题:
https://github.com/PeytonXu/learn-python/blob/master/cases/hash_file/hash_file.py
@Hurray 同学计算了多种 hash 算法:
https://paste.ubuntu.com/24814203/
『码上行动』在线学习班正在开放中,详情请回复 码上行动 查看
近期文章推荐阅读:
只学2个月编程能写出什么代码?他们表示:You can you code!