这两天晚上在看 python 教程,地址是:http://woodpecker.org.cn/abyteofpython_cn/chinese/index.html
因为之前已经将这个教程看过一遍,所以这次看得很快,基本就是将示例程序下载下来,在本机上跑一遍,没有任何问题,分分钟理解。
python 目前有两个大的分支版本,我电脑(ubuntu)上的版本是 python 2.7.4 和 python 3.3.1 。我喜欢新的,所以选择学习 python3 。(其实两个版本差别也没多大)现在接触到的主要是 print 使用上的不同。刚才看到这里:http://woodpecker.org.cn/abyteofpython_cn/chinese/ch12s02.html ,将这个例程下载下来后,照例先使用 2to3 命令将代码转换为 python3 版本的,然后运行,发现出错,在网上搜索一番后,终于可以跑起来了。代码贴在下面,首先是教程下载下来的脚本:
#!/usr/bin/python # Filename: pickling.py import cPickle as p #import pickle as p shoplistfile = 'shoplist.data' # the name of the file where we will store the object shoplist = ['apple', 'mango', 'carrot'] # Write to the file f = file(shoplistfile, 'w') p.dump(shoplist, f) # dump the object to a file f.close() del shoplist # remove the shoplist # Read back from the storage f = file(shoplistfile) storedlist = p.load(f) print storedlist
接下来是我先 2to3 命令处理转换完,然后作出细微更改后的脚本:
#!/usr/bin/env python # Filename: pickling.py import pickle as p #import pickle as p shoplistfile='shoplist.data' # the name of the file where we will store the object shoplist=['apple','mango','carrot'] # Write to the file # 这里由 python2 的 file 改为 open,python3 运行提示错误 file not defined # 文件打开方式改为以二进制的方式打开 wb 模式 # 之前 w 模式打开会提示错误 TypeError: must be str, not bytes f=open(shoplistfile,'wb') p.dump(shoplist,f) # dump the object to a file f.close() del shoplist # remove the shoplist # Read back from the storage # 同样的 file 改为 open # 同样的 这里也是以二进制的方式打开 rb 模式 f=open(shoplistfile, 'rb') storedlist=p.load(f) print(storedlist)
国庆快乐!
强大啊,居然开始学python了。
呵呵,看着玩玩而已,真让写点东西可又干不了。之前还买了一本 perl 的书,也从头到尾看过一遍。