作为初学者,第一个月的月目标应该是这样的:
创新互联建站专业提供内江机房主机托管服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买内江机房主机托管服务,并享受7*24小时金牌售后服务。
熟悉基本概念(变量,条件,列表,循环,函数)
练习超过 30 个编程问题
利用这些概念完成两个项目
熟悉至少 2 个框架
开始使用集成开发环境(IDE),Github,hosting,services 等
整体计划
现在,我们先将月计划细化成周计划。
第一周:熟悉 Python
要积极探索 Python 的使用方法,尽可能多的完成下面这些任务:
第一天:基本概念(4 小时):print,变量,输入,条件语句
第二天:基本概念(5 小时):列表,for 循环,while 循环,函数,导入模块
第三天:简单编程问题(5 小时):交换两个变量值,将摄氏度转换为华氏温度,求数字中各位数之和,判断某数是否为素数,生成随机数,删除列表中的重复项等等
第四天:中级编程问题(6 小时):反转一个字符串(回文检测),计算最大公约数,合并两个有序数组,猜数字游戏,计算年龄等等
第五天:数据结构(6 小时):栈,队列,字典,元组,树,链表。
第六天:面向对象编程(OOP)(6 小时):对象,类,方法和构造函数,面向对象编程之继承
第七天:算法(6 小时):搜索(线性和二分查找)、排序(冒泡排序、选择排序)、递归函数(阶乘、斐波那契数列)、时间复杂度(线性、二次和常量)
通过第一周时间,python大致能熟悉了,自学能力稍微弱一点找人带下你,节约自己的时间。
注意:别急着安装 Python 环境!
这看起来很矛盾,但是你一定要相信我。我有几个朋友,他们因为语言工具包和 IDE 安装的失败而逐渐失去了学习下去的欲望。因此,我的建议是先使用一些安卓 app 来探索这门语言,如果你是个技术小白,安装 Python 环境可不是你的首要任务。
第二周:开始软件开发(构建项目)
接下来,让我们朝着软件开发任务进军吧!不妨尝试综合你学到的知识完成一个实际的项目:
第一天:熟悉一种 IDE(5 小时): IDE 是你在编写大型项目时的操作环境,所以你需要精通一个 IDE。在软件开发的初期,我建议你在 VS code 中安装 Python 扩展或使用 Jupyter notebook。
第二天:Github(6 小时):探索 Github,并创建一个代码仓库。尝试提交(Commit)、查看变更(Diff)和上推(Push)你的代码。另外,还要学习如何利用分支工作,如何合并(merge)不同分支以及如何在一个项目中创建拉取请求(pull request)。
第三天:第一个项目——简单计算器(4 小时):熟悉 Tkinter,创建一个简单的计算器
第四、五、六天:个人项目(每天 5 小时):选定一个项目并完成它。如果你不知道你该做什么,可以查看下面的清单( pythonprojects -for-an- middle - programmer/answer/jhankar - mahbub2)
第七天:托管项目(5 小时):学习使用服务器和 hosting 服务来托管你的项目。创建一个 Heroku 设置并部署你构建的应用程序。
为什么要写项目?
如果仅仅按部就班地学习课堂上或视频中的内容,你无法拥有独立思考能力。所以,你必须把你的知识应用到一个项目中。当你努力寻找答案时,你也在慢慢地学会这些知识。
第三周:让自己成为一名程序员
第 3 周的目标是熟悉软件开发的整体过程。你不需要掌握所有的知识,但是你应该知道一些常识,因为它们会影响你的日常工作。
第一天:数据库基础(6 小时):基本 SQL 查询(创建表、选择、Where 查询、更新)、SQL 函数(Avg、Max、Count)、关系数据库(规范化)、内连接、外连接等
第二天:使用 Python 数据库(5 小时):利用一种数据库框架(SQLite 或 panda),连接到一个数据库,在多个表中创建并插入数据,再从表中读取数据。
第三天:API(5 小时):如何调用 API。学习 JSON、微服务(micro-service)以及表现层应用程序转换应用程序接口(Rest API)。
第四天:Numpy(4 小时):熟悉 Numpy(- Numpy -for- datascies-beginners-b8088722309f)并练习前 30 个 Numpy 习题(- 100/blob/master/100_numpy_excercises.md)
第五、六天:作品集网站(一天 5 小时):学习 Django,使用 Django 构建一个作品集网站(- start-with-django -1/),也要了解一下 Flask 框架。
第七天:单元测试、日志、调试(5 小时):学习单元测试(PyTest),如何设置和查看日志,以及使用断点调试。
真心话时间(绝密)
如果你非常「疯狂」,并且非常专注,你可以在一个月内完成这些任务。你必须做到:
把学习 Python 作为你的全职活动。你需要从早上 8 点开始学习,一直到下午 5 点。在此期间,你可以有一个午休时间和茶歇时间(共 1 小时)。
8 点列出你今天要学的东西,然后花一个小时复习和练习你昨天学过的东西。
从 9 点到 12 点:开始学习,并进行少量练习。在午饭后,你需要加大练习量,如果你卡在某个问题上,可以在网上搜索解决方案。
严格保持每天 4-5 小时的学习时间和 2-3 小时的练习时间(每周最多可以休息一天)。
你的朋友可能会认为你疯了。走自己的路,让别人去说吧!
如果你有一份全职工作,或者你是一名学生,完成这些流程可能需要更长的时间。作为一名全日制学生,我花了 8 个月的时间来完成这份清单。现在我是一名高级开发人员。所以,不管花多长时间,一定要完成它们。要想成功完成一个目标,必须付出百分之百的努力。
第四周:认真考虑工作(实习)问题
第 4 周的目标是认真思考如何才能被录用。即使你现在不想找工作,你也可以在探索这条道路的过程中学到很多东西。
第一天:准备简历(5 小时):制作一份一页的简历。把你的技能总结放在最上面,必须在写项目的同时附上 Github 链接。
第二天:作品集网站(6 小时):写几个博客,将它们添加到你之前开发的作品集网站中。
第三天:LinkedIn 简介(4 小时):创建一个 LinkedIn 个人简介,把简历上的所有内容都放到 LinkedIn 上。
第四天:面试准备(7 小时):准备一些谷歌常见的面试问题,练习白皮书中的 10 个面试编程问题。在 Glassdoor、Careercup 等网站中查看前人遇到的面试问题。
第五天:社交(~小时):走出房门,开始参加聚会、招聘会,与其他开发人员和招聘人员见面。
第六天:工作申请(~小时):搜索「Python Job」,查看 LinkedIn Job 和本地求职网站。选择 3 个工作岗位并发送工作申请。为每个工作定制你的简历。在每个工作要求中找出 2 到 3 件你不知道的事情,并在接下来的 3-4 天里学会它们。
第七天:在拒绝中学习(~小时):每次你被拒绝的时候,找出两件为了获得这份工作你应该知道的事情,然后花 4-5 天 的时间来掌握它们。这样,每次拒绝都会让你成为更好的开发人员。
电子书集合|数据科学速查表|迁移学习实战 ,免费下载
链接: 提取码: z9x7
有不少同学学完 Python 后仍然很难将其灵活运用。我整理15个 Python 入门的小程序。在实践中应用 Python 会有事半功倍的效果。
实现数学里的二元二次函数: f(x, y) = 2x^2 + 3y^2 + 4xy ,需要用到指数运算符 **
将一个正整数的个位数,以及除个位数外的部分分离。需要用到 模(取余数) 运算符 % ,和 整除 运算符 //
实现一个简单的累加器,可以接受用户输入3个数字,并将其累加。需要用到 复合赋值运算符:+=
输入年份,判断是否是闰年。闰年判断方法:能被4整除,但不能被100整除;或者能被 400 整除。需要用到 算术运算符 和 逻辑运算符
输入一个数字,判断基数还是偶数,需要 模 运算和 if ... else 结构
之前做过华氏度转摄氏度,现在通过 分支结构 实现二者互转。
输入三个边长度,判断是否构成三角形。 构成三角形的条件:两边之和大于第三边 。
输入成绩分数,输出分数对应的等级。
某企业的奖金根据销售利润按照如下规则计算提成。输入销售利润,计算奖金。
程序随机生成一个正整数,用户来猜,程序根据猜的大小给出相应的提示。最后,输出用户猜了多少次才猜中。
输入一个正整数,判断是否是素数。 素数定义:大于1的自然数中,只能被1和它本身整除的自然数。如:3、5、7
用程序实现石头剪刀布 游戏 。
字典的key是姓名,value是身高,现在需要按照身高对字典重新排序。
将二元二次函数封装在函数中,方便调用
初学python的小伙伴注意哦~不要只依赖于教程,而忽视实操的能力。不然,是很难有进步的。可以多动动手,尝试一下,积累经验。
通过关键字def来创建函数,def的作用是实现python中函数的创建
函数定义过程:
函数名+()小括号执行函数
函数体内对全局变量只能读取,不能修改
局部变量,无法在函数体外使用
python 使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
在写python程序时,常能用到一些函数和方法,总结一下,保存起来,方便查询。
一、内置函数
# abs()获取数字绝对值
# chr(i)数字转换为字符类型
# divmod() 获取两个数值的商和余数
# enumerate() 将可遍历序列组合为索引序列
# float()转换为浮点数
# format() 格式化字符串
# int()转换为整数
# input() 接受用户输入内容
# len() 计算元素个数
# max() 返回最大值
# min() 返回最小值
# math.ceil() 返回指定数值的上舍整数
# open()打开文件并返回文件对象
# pow() 幂运算
# print()打印输出
# range() 生成器
# reversed()反转所有元素
# round()四舍五入求值
# sorted()对可迭代对象进行排序
# str() 转换为字符串
# sum() 求和
# set() 创建集合
# tuple() 将序列转换为元组
# zip()将可迭代对象打包成元组
二、方法
# append() 添加列表元素
# capitalize()首字母转换为大写
# count()字符出现次数
# close() 关闭文件
# decode() 解码字符串
# dict.keys() 获取字典所有的键
# find()字符串首次出现的索引
# f.read() 读取文件内容
# dict.update()更新字典
# dict.items() 获取字典键/值对
# dict.get() 返回指定键的值
# encode() 编码字符串
# list.sort() 排序列表元素
# index() 元素首次出现的索引
# isdigit() 判断字符串是否只由数字组成
# isupper() 是否所有字母都为大写
# isnum() 判断字符串是否由字母和数字组成
# islower() 是否所有字母都为小写
# isdecimal() 检查字符串是否只包含十进制字符
# isalpha() 检测字符串是否为纯字母
# random.shuffle()随机排序
# random.sample()返回无重复随机数列表
# random.choice() 返回一个随机元素
# random.randint() 生成指定范围的随机整数
# random.randrange() 生成指定范围的指定递增基数随机整数
# pop() 删除列表中的元素
# remove()删除列表中的指定元素
# strip()去除空格
# lstrip()去除左侧空格
# rstrip() 去除右侧空格
# readline() 读取单行内容
# root.after() Tkinter中等待一段时间后再执行命令
# str.isnumeric() 验证字符串是否为数字(适用于Unicode)
# split()分割字符串
# ord() 将字符转换为整数
# replace() 字符串替换
# ljust() 左对齐填充
# rjust() 左对齐填充
# readlines() 读取所有行内容
# datetime.datetime.now() 返回指定时区的本地日期时间
# datetime.datetime.today() 获取当前本地日期的date对象
# datetime.utcnow() 返回当前UTC时间的datetime对象
# time.strptime()把时间字符串解析为元组
# time.time()返回当前时间的时间戳
# time.sleep()暂停指定秒数
# time.strftime() 返回指定格式的日期字符串
# time.mktime() 接收时间元组并返回时间戳
# os.getcwd() 获取当前工作目录
# os.listdir() 获取指定路径下的目录和文件列表
# os.makedirs() 递归创建目录
# os.rename() 重命名目录或文件
# os.path.exists() 判断路径是否存在
# upper() 全部转换为大写字母
# lower() 全部转换为小写字母
# sys.stdout.write() 标准输出打印
# sys.stdout.flush()刷新输出
# shutil.copy() 复制单个文件到另一文件或目录
# write() 写入文件内容
# winsound.Beep() 打开电脑扬声器
# zfill() 在字符串前面填充0
三、循环语句
# break终止当前循环
# continue 终止本循环进入下一次循环
# with open() as file 以with语句打开文件(数据保存)
四、转义字符
\ 行尾续行符
\' 单引号
\'' 双引号
\a 响铃
\e 转义
\n 换行
\t 横向制表符
\f 换页
\xyy 十六进制yy代表的字符
\\反斜杠符号
\b 退格
\000 空
\v 纵向制表符
\r 回车
\0yy 八进制yy代表的字符
\other 其他的字符以普通格式输出