《Python编程 从入门到实践》学习笔记整理3:项目篇12-20章+附录


开发大型项目时,需先做好 规划,完成 开发计划,再动手写代码
*本部分的阅读学习略为粗糙,项目2看得稍微仔细些

—项目1:外星人入侵(Pygame)

第12章 武装飞船

建议使用背景透明的bmp位图
定期重构既有代码
print语句效率较低,测试无误后建议删除

第13章 外星人

执行计算时,无需人工确定公式是否正确,可选择直接运行程序,观察结果是否符合预期
游戏编程中,碰撞指游戏元素重叠

第14章 记分

先实现简单功能,再逐步完善扩充细节,添加复杂功能,并不断重构,直至成品

—项目2:数据可视化(matplotlib+Pygal)

数据可视化数据挖掘(使用代码探索数据集的规律与关联)紧密相关

第15章 生成数据

库的官方文档/示例画廊很有参考价值

15.2 绘制简单的折线图-matplotlib:

折线图plot(),散点图scatter(),保存savefig(),设置图表形式figure()
fig.automfmt_xdate()避免日期标签重叠,fill_between()着色
颜色:
c=’red’
c=(0,0,0.8)(RGB,0-1,值越大越浅)
c=y_values,cmap=plt.cm.Blues(颜色映射,渐变突出数据规律)

15.3 随机漫步

使用random.choice()

15.4 使用Pygal模拟掷骰子

Pygal:生成可缩放的SVG矢量图形文件(浏览器打开),适应不同屏幕,可交互,适合在线展示
模拟掷骰子:random.randint()(和range()等不同,左右值均可取到)
折线图Line(),直方图Bar(),传递数据add(),保存render_to_file(),配置对象Config()

第16章 下载数据

16.1 CSV文件格式(逗号分隔)(+matplotlib)

csv.reader()读取文件对象,next()返回下一行
enumerate(list)获取索引-值对
datetime.strptime()解读并设置日期和时间格式
数据集有问题时,可使用try-except-else代码块/continue/remove()/del等方法处理

16.2 制作交易收盘价走势图:JSON格式(+Pygal)

下载方式:(1)直接;(2)urllib.urlopen();(3)requests.get()

(2)(3)
下载数据a=urllib.urlopen(url)b=requests.get(url)
读取并写入数据a=a.read()
f.write(a)

f.write(b.text)
加载json格式file=json.loads(a)file=b.json()

时间序列分析:期望发现趋势trend、周期性seasonality、噪声noise,以描述事实、预测未来、做出决策;对数变换可以消除非线性趋势,验证周期性假设
itertools.groupby()分组
数据仪表盘:html文件,整合SVG矢量图
*Python数据科学工具:matplotlib/numpy/scipy/pandas/scikit-learn/keras

第17章 使用API(Web应用编程接口)

17.1 使用Web API

API调用:使用具体url向网站请求特定信息,返回JSON/CSV等格式的数据响应
response=requests.get(url)
response.status_code响应对象属性,检测请求是否成功(=200)

17.2 使用Pygal可视化仓库

工具提示:指Pygal中鼠标指向条形时显示的信息,可向add()传递字典列表以自定义
add(‘’,dict),dict={‘value’:条形高度, ’label’:’工具提示内容’, ’xlink’:’单击条形可跳转的url’}

17.3 Hacker News API

sorted(dict,key=itemgetter(‘comments’))
operater.itemgetter(*items),从运算对象中获取元素,返回一个可调用对象;如传递键,可从字典中提取与键关联的值

—项目3:Web应用程序(Django)

第18章 Django入门

Django:一个Web框架,帮助开发交互式网站;Diango shell交互式环境
(1)一些零散的知识点
制定项目规范:描述项目的目标、功能、外观和用户界面
虚拟环境:系统的一个位置,可以将项目的库与其他项目分离,激活后才可使用Django
SQLite:一种使用单个文件的数据库,用于编写简单应用程序(Heroku使用PostgreSQL)
localhost:一种只处理当前系统发出的请求,不允许其他人查看开发信息的服务器
修改数据库流程:修改models.py;调用makemigrations;让Django迁移项目
创建网页流程:定义URL、编写视图、编写模板
*URL被映射到视图(获取并处理网页所需数据),视图调用模板(定义网页结构)生成网页
(2)正则表达式(regex),如:
r’^$’=查找首尾间没有任何东西的字符串
其中:
r=后续视为原始字符串
‘’=正则表达式的首尾
^=查看字符串开头,脱字符
$=查看字符串末尾

第19章 用户账户

表单:让用户输入并提交信息的页面(forms模块)
GET请求:从服务器读取数据的页面
POST请求:用户需要通过表单提交信息
装饰器:放在函数定义前的指令,根据它修改函数代码的行为

第20章 设置应用程序的样式并对其进行部署

样式:Bootstrap库,提供大量模板
部署:Heroku
Bash:众多Linux终端运行的语言
404错误:代码正确,请求的对象不存在
500错误:代码错误
继续开发流程:本地修改;将新增和修改提交到仓库,必要时迁移数据库;将修改推送到Heroku(git push heroku master);访问在线项目,确认修改生效

—附录C:寻求帮助

遇到问题时,先明确以下三个问题,自问自答(橡皮鸭子调试法),再考虑寻求帮助:
(1)我想要做什么?
(2)我已尝试哪些方式?
(3)结果如何?

—附录D:使用Git进行版本控制

Git:分布式版本控制系统,通过跟踪对项目中每个文件的修改实现版本控制
GitHub:一个协作开发项目的网站

指令/文件说明
.gitignore写入需忽略的目录及文件
git init初始化一个空仓库
仓库:程序中被Git主动跟踪的一组文件
git status检查状态
分支branch:项目的一个版本
提交commit:项目在特定时间点的快照
git add .将未被忽略的文件加入仓库(注意句点)
git commit -am “message”执行提交,生成一个40字符的引用ID
-a提交修改过的文件;-m记录日志消息
*git add新增,-a修改
git status输出”working directory clean”为佳
git log –pretty=oneline查看提交历史,显示引用ID和日志消息
git checkout .恢复到最后一次提交的状态(注意句点)
git checkout ID前6位检出历史中的任何提交
git checkout master回到分支master
git reset –hard ID前6位重置到以前的提交
rm -rf .git删除仓库=删除项目的历史记录=删除目录.git
rmdir /s .git删除仓库(Windows版本)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值