资源简介
非常经典的Python3教材。英文版是可以复制内容的原版,非扫描版!
中英版对照,学习效果更佳!
附带源码供参考!
代码片段和文件信息
#!/usr/bin/env python3
# Copyright (c) 2008-11 Qtrac Ltd. All rights reserved.
# This program or module is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as published
# by the Free Software Foundation either version 3 of the License or
# (at your option) any later version. It is provided for educational
# purposes and is distributed in the hope that it will be useful but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
“““
>>> u = Stack()
>>> u.push(1); u.push(2); u.push(4)
>>> str(u)
‘[1 2 4]‘
>>> u.can_undo
True
>>> while u.can_undo:
... u.undo()
>>> str(u)
‘[]‘
>>> for x in list(range(-5 0)) + list(range(5)):
... u.push(x)
>>> str(u)
‘[-5 -4 -3 -2 -1 0 1 2 3 4]‘
>>> u.top()
4
>>> total = 0
>>> for x in range(5):
... total += u.pop()
>>> str(u) total
(‘[-5 -4 -3 -2 -1]‘ 10)
>>> while u.can_undo:
... u.undo()
>>> str(u)
‘[]‘
>>> import os
>>> import tempfile
>>> filename = os.path.join(tempfile.gettempdir() “fs.pkl“)
>>> fs = FileStack(filename)
>>> for x in list(range(-5 0)) + list(range(5)):
... fs.push(x)
>>> str(fs)
‘[-5 -4 -3 -2 -1 0 1 2 3 4]‘
>>> fs.top()
4
>>> total = 0
>>> for x in range(5):
... total += fs.pop()
>>> str(fs) total
(‘[-5 -4 -3 -2 -1]‘ 10)
>>> fs.push(909)
>>> str(fs)
‘[-5 -4 -3 -2 -1 909]‘
>>> os.path.basename(fs.filename)
‘fs.pkl‘
>>> fs.save()
>>> fs2 = FileStack(filename)
>>> str(fs2)
‘[]‘
>>> fs2.push(-32)
>>> fs2.can_undo
True
>>> fs2.load()
>>> fs2.can_undo
False
>>> str(fs2)
‘[-5 -4 -3 -2 -1 909]‘
>>> fs == fs2
True
“““
import abc
import pickle
class Undo(metaclass=abc.ABCmeta):
@abc.abstractmethod
def __init__(self):
self.__undos = []
@abc.abstractproperty
def can_undo(self):
return bool(self.__undos)
@abc.abstractmethod
def undo(self):
assert self.__undos “nothing left to undo“
self.__undos.pop()(self)
def add_undo(self undo):
self.__undos.append(undo)
def clear(self): # In class Undo
self.__undos = []
class Stack(Undo):
def __init__(self):
super().__init__()
self.__stack = []
@property
def can_undo(self):
return super().can_undo
def undo(self):
super().undo()
def push(self item):
self.__stack.append(item)
self.add_undo(lambda self: self.__stack.pop())
def pop(self):
item = self.__stack.pop()
self.add_undo(lambda self: self.__stack.append(item))
return item
def top(self):
assert self.__stack “Stack is empty“
return self.__stack[-1]
def __str__(self):
return str(self.__stack)
cla
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3530699 2018-03-17 22:37 Python3程序开发指南\Programming in Python 3.pdf
文件 4814 2011-09-01 11:18 Python3程序开发指南\py30eg\Abstract.py
文件 5545 2011-09-01 11:18 Python3程序开发指南\py30eg\Account.py
文件 2078 2011-09-01 11:18 Python3程序开发指南\py30eg\Appliance.py
文件 1722 2011-09-01 11:18 Python3程序开发指南\py30eg\Ascii.py
文件 5296 2011-09-01 11:18 Python3程序开发指南\py30eg\Atomic.py
文件 1261 2011-09-01 11:18 Python3程序开发指南\py30eg\average1_ans.py
文件 1822 2011-09-01 11:18 Python3程序开发指南\py30eg\average2_ans.py
文件 1338 2011-09-01 11:18 Python3程序开发指南\py30eg\awfulpoetry1_ans.py
文件 1623 2011-09-01 11:18 Python3程序开发指南\py30eg\awfulpoetry2_ans.py
文件 1778 2011-09-01 11:18 Python3程序开发指南\py30eg\ba
文件 5466 2011-09-01 11:18 Python3程序开发指南\py30eg\BibTeX.py
文件 1944 2018-03-27 23:51 Python3程序开发指南\py30eg\bigdigits.py
文件 2014 2011-09-01 11:18 Python3程序开发指南\py30eg\bigdigits_ans.py
文件 10247 2011-09-01 11:18 Python3程序开发指南\py30eg\BikeStock.py
文件 10396 2011-09-01 11:18 Python3程序开发指南\py30eg\BikeStock_ans.py
文件 9501 2011-09-01 11:18 Python3程序开发指南\py30eg\BinaryRecordFile.py
文件 5420 2011-09-01 11:18 Python3程序开发指南\py30eg\BinaryRecordFile_ans.py
文件 1679 2011-09-01 11:18 Python3程序开发指南\py30eg\Block.py
文件 5087 2011-09-01 11:18 Python3程序开发指南\py30eg\BlockOutput.py
文件 15192 2011-09-01 11:18 Python3程序开发指南\py30eg\blocks.py
文件 13355 2011-09-01 11:18 Python3程序开发指南\py30eg\bookmarks-tk.pyw
文件 16598 2011-09-01 11:18 Python3程序开发指南\py30eg\bookmarks-tk_ans.pyw
文件 3042 2011-09-01 11:18 Python3程序开发指南\py30eg\bookmarks.py
文件 329 2011-09-01 11:18 Python3程序开发指南\py30eg\capture.py
文件 5047 2011-09-01 11:18 Python3程序开发指南\py30eg\car_registration.py
文件 6202 2011-09-01 11:18 Python3程序开发指南\py30eg\car_registration_ans.py
文件 7204 2011-09-01 11:18 Python3程序开发指南\py30eg\car_registration_server.py
文件 7874 2011-09-01 11:18 Python3程序开发指南\py30eg\car_registration_server_ans.py
文件 9560 2011-09-01 11:18 Python3程序开发指南\py30eg\CharGrid.py
............此处省略137个文件信息
相关资源
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- python3.5.2.chm官方文档
- python3.5.4_windows下32与64位安装包
- GitHack-python3.zip
- Python3.x+PyQtChart实现数据可视化界面
- python3根据模板图片批量自动制作个性
- 《机器学习实战》源代码Python3
- Python3.5.2的IDLE汉化版计算机等级考试
- python3.5 百度ai人脸识别
- python3实现的国密SM2+SM3
- python100道面试题及解答全部答案 pyc
- #python3.3关于Tk中的Treeview使用方法
- Python3.x+Pyqt5实现界面编程浏览网页
- 《机器学习实战》Python3代码
- Python3学习笔记
- Python3.7.2中文文档-标准库-通用操作系
- Python3.7.2中文文档-标准库-Python数据类
- python3基础教程第三版高清
- 随机森林python3实现代码(带数据集)
- dlib-19.18.0-cp37-cp37m-linux_armv7l.whl
- python3学习路线+思维导图
- Learn python3 the hard way
- 笨办法学python 3 第四版 英文
- python3爬虫
- Beginning Python: From Novice to Professional
- Python3实现KNN的三个包含数据集,水果
- python3中文帮助手册和英文帮助手册
- 基于协同过滤的电影推荐系统 python
- 廖雪峰Python3完整版PDF
评论
共有 条评论