作者:骆昊
说明:从项目上线到获得8w+星标以来,一直收到反馈说基础部分(前15天的内容)对新手来说是比较困难的,建议有配套视频进行讲解。最近把基础部分的内容重新制作了一个名为“Python-Core-50-Courses”的项目,用更为简单通俗的方式重写了这部分内容并附带了视频讲解,初学者可以看看这个新的仓库。国内用户如果访问GitHub比较慢的话,可以关注我的知乎号Python-Jack,上面的“从零开始学Python”专栏比较适合初学者,其他的专栏如“数据思维和统计思维”、“基于Python的数据分析”等也在持续创作和更新中,欢迎大家关注、点赞和评论。
想获取学习视频的小伙伴,大家可以扫描下面的二维码进入微信小程序,看看有没有适合自己的内容。大家心心念念的机器学习的内容在小程序中都可以找到,由我和我的同事为大家录制的。
大家在学习过程中如果遇到一些棘手的问题或者需要相关的学习资源,可以加入下面的QQ交流群,三个群是一样的加入一个即可,请不要重复加群,也不要在群里发布广告和其他色情、低俗或敏感内容。如果缺乏自律性,有付费学习的需求,可以添加我的微信(jackfrued)私聊,备注好自己的称呼和需求,我会给大家提供一些学习方案和职业规划方面的指导。
配套的视频在抖音和B站持续更新中,有兴趣的小伙伴可以关注我的抖音或B站账号,最近刚刚起号,还希望大家多多支持,非常感谢您!
大家一直催更的《机器学习和深度学习》因个人和公司的原因,一直处于停滞状态,近期会开始更新相关内容,感谢大家一如既往的支持和理解。
简单的说,Python是一个“优雅”、“明确”、“简单”的编程语言。
Python在以下领域都有用武之地。
作为一名Python开发者,根据个人的喜好和职业规划,可以选择的就业领域也非常多。
说明:目前,数据分析和数据挖掘是非常热门的方向,因为不管是互联网行业还是传统行业都已经积累了大量的数据,各行各业都需要数据分析师从已有的数据中发现更多的商业价值,从而为企业的决策提供数据的支撑,这就是所谓的数据驱动决策。
给初学者的几个建议:
print
函数 / 运行程序input
函数 / 检查变量类型 / 类型转换if
/ if
-else
结构 / if
-elif
-else
结构 / 嵌套的if
break
语句 / continue
语句range
类型 / 循环中的分支结构 / 嵌套的循环 / 提前结束程序 def
关键字 / 函数名 / 参数列表 / return
语句 / 调用自定义函数range
创建数字列表 / 生成表达式 / 生成器keys
方法 / values
方法 / items
方法 / setdefault
方法__str__
方法__slots__
__add__
/ __sub__
/ __or__
/__getitem__
/ __setitem__
/ __len__
/ __repr__
/ __gt__
/ __lt__
/ __le__
/ __ge__
/ __eq__
/ __ne__
/ __contains__
tkinter
开发GUI程序pygame
三方库开发游戏应用try
-except
代码块 / else
代码块 / finally
代码块 / 内置异常类型 / 异常栈 / raise
语句csv
模块的应用 / JSON数据格式 / json
模块的应用in
和not in
运算符 / is_xxx
方法 / join
和split
方法 / strip
相关方法 / pyperclip
模块 / 不变字符串和可变字符串 / StringIO
的使用re
模块实现正则表达式操作(匹配、搜索、替换、捕获)re
模块 / compile
函数 / group
和groups
方法 / match
方法 / search
方法 / findall
和finditer
方法 / sub
和subn
方法 / split
方法fork
函数 / multiprocessing
模块 / 进程池 / 进程间通信threading
模块 / Thread
类 / RLock
类 / Condition
类 / 线程池requests
三方库 / 解析JSON格式数据socket
模块 / socket
函数 / 创建TCP服务器 / 创建TCP客户端 / 创建UDP服务器 / 创建UDP客户端smtplib
模块 / poplib
模块 / imaplib
模块xlrd
/ xlwt
/ openpyxl
async
和awai
tHttpResponse
修改响应头StreamingHttpResponse
处理大文件xlwt
生成Excel报表reportlab
生成PDF报表网站优化第一定律
在Django项目中使用Redis提供缓存服务
在视图函数中读写缓存
使用装饰器实现页面缓存
为数据接口提供缓存服务
requests
三方库实现数据抓取Series
对象Series
对象的运算Series
对象的属性和方法DataFrame
对象DataFrame
对象的属性和方法DataFrame
中的数据软件过程模型
经典过程模型(瀑布模型)
瀑布模型最大的缺点是无法拥抱需求变化,整套流程结束后才能看到产品,团队士气低落。
敏捷开发(Scrum)- 产品所有者、Scrum Master、研发人员 - Sprint
补充:敏捷软件开发宣言
- 个体和互动 高于 流程和工具
- 工作的软件 高于 详尽的文档
- 客户合作 高于 合同谈判
- 响应变化 高于 遵循计划
角色:产品所有者(决定做什么,能对需求拍板的人)、团队负责人(解决各种问题,专注如何更好的工作,屏蔽外部对开发团队的影响)、开发团队(项目执行人员,具体指开发人员和测试人员)。
准备工作:商业案例和资金、合同、憧憬、初始产品需求、初始发布计划、入股、组建团队。
敏捷团队通常人数为8-10人。
工作量估算:将开发任务量化,包括原型、Logo设计、UI设计、前端开发等,尽量把每个工作分解到最小任务量,最小任务量标准为工作时间不能超过两天,然后估算总体项目时间。把每个任务都贴在看板上面,看板上分三部分:to do(待完成)、in progress(进行中)和done(已完成)。
项目团队组建
团队的构成和角色
说明:感谢付祥英女士帮助我绘制了下面这张精美的公司组织架构图。
编程规范和代码审查(flake8
、pylint
)
Python中的一些“惯例”(请参考《Python惯例-如何编写Pythonic的代码》)
影响代码可读性的原因:
团队开发工具介绍
请参考《团队项目开发的问题和解决方案》。
选题范围设定
CMS(用户端):新闻聚合网站、问答/分享社区、影评/书评网站等。
MIS(用户端+管理端):KMS、KPI考核系统、HRS、CRM系统、供应链系统、仓储管理系统等。
App后台(管理端+数据接口):二手交易类、报刊杂志类、小众电商类、新闻资讯类、旅游类、社交类、阅读类等。
其他类型:自身行业背景和工作经验、业务容易理解和把控。
需求理解、模块划分和任务分配
制定项目进度表(每日更新)
模块 | 功能 | 人员 | 状态 | 完成 | 工时 | 计划开始 | 实际开始 | 计划结束 | 实际结束 | 备注 |
---|---|---|---|---|---|---|---|---|---|---|
评论 | 添加评论 | 王大锤 | 正在进行 | 50% | 4 | 2018/8/7 | 2018/8/7 | |||
删除评论 | 王大锤 | 等待 | 0% | 2 | 2018/8/7 | 2018/8/7 | ||||
查看评论 | 白元芳 | 正在进行 | 20% | 4 | 2018/8/7 | 2018/8/7 | 需要进行代码审查 | |||
评论投票 | 白元芳 | 等待 | 0% | 4 | 2018/8/8 | 2018/8/8 |
OOAD和数据库设计
python manage.py makemigrations app
python manage.py migrate
python manage.py inspectdb > app/models.py
unittest
、pytest
、nose2
、tox
、ddt
、……)coverage
)