Python学习方法探究

阿里云2000元红包!本站用户参与享受九折优惠!

由于工作需要,这两天开始搞Python,时间还是非常紧迫的。基本上简单看下语法,就得开始上手撸功能,不过整体感觉比java入门要容易很多。但这种碎片化的学习,终归还是不太系统,不便于后期技术成长。

于是,今天特意搜了不少相关Python学习的方法,有几个觉得挺有特点,取其所长,以备后用。

有人以形入手,运用手绘和思维导图来学习。先PO一张广为流传的Python图例


一张图认识Python

学一门新的语言,认识很重要,类似这种的还有思维导图,希望自己后续也能出一些有趣、有料的教程。

还有人是以实际需求入手,循循善诱的递进式学习。总共分为三大部分:做Python数据分析必知的语法,如何实现爬虫,怎么做数据分析。

  1. 必须知道的两组Python基础术语

A.变量和赋值

Python可以直接定义变量名字并进行赋值的,例如我们写出 **a ****= ****4 **时,Python解释器干了两件事情:

  • 在内存中创建了一个值为4的整型数据

  • 在内存中创建了一个名为 a 的变量,并把它指向4

用一张示意图表示 **Python变量和赋值的重点 **:


例如下图代码,“=”的作用就是赋值,同时Python会自动识别数据类型:

a=4 #整型数据 
b=2 #整型数据 
c=“4” #字符串数据 
d=“2” #字符串数据 
 
print(“a+b结果为”,a+b)#两个整数相加,结果是6 
print(“c+d结果为”,c+d)#两个文本合并,结果是文本“42” 
 
#以下为运行结果 
>>>a+b结果为 6 
>>>c+d结果为 42 

B.数据类型

在初级的数据分析过程中,有三种数据类型是很常见的:

  • 列表list(Python内置)

  • 字典dict(Python内置)

  • DataFrame(工具包pandas下的数据类型,需要import pandas才能调用)

它们分别是这么写的:

列表(list):

#列表 
liebiao=[1,2.223,-3,'刘强东','章泽天','周杰伦','昆凌',['微博','B站','抖音']] 

list是一种 **有序 **的集合,里面的元素可以是之前提到的任何一种数据格式和数据类型(整型、浮点、列表……),并可以随时指定顺序添加其中的元素,其形式是:

#ist是一个可变的有序表,所以,可以往list中追加元素到末尾: 
liebiao.append('瘦') 
ptint(liebiao) 
#结果1 
>>>[1, 2.223, -3, '刘强东', '章泽天', '周杰伦', '昆凌', ['微博', 'B站', '抖音'], '瘦'] 
 
#也可以把元素插入到指定的位置,比如索引号为5的位置,插入“胖”这个元素: 
liebiao.insert(5, '胖') 
ptint(liebiao) 
#结果2 
>>>[1, 2.223, -3, '刘强东', '章泽天', '胖', '周杰伦', '昆凌', ['微博', 'B站', '抖音'], '瘦'] 

字典(dict):

#字典 
zidian={'刘强东':'46','章泽天':'36','周杰伦':'40','昆凌':'26'} 

字典使用 **键-值(key-value) **存储,无序 ,具有极快的查找速度。以上面的字典为例,想要快速知道周杰伦的年龄,就可以这么写:

zidian['周杰伦'] 
>>>'40' 

dict内部存放的顺序和key放入的顺序是没有关系的,也就是说,”章泽天”并非是在”刘强东”的后面。

DataFrame:

DataFrame可以简单理解为 **Excel里的表格格式 **。导入pandas包后,字典和列表都可以转化为DataFrame,以上面的字典为例,转化为DataFrame是这样的:

import pandas as pd 
 
df=pd.DataFrame.from_dict(zidian,orient='index',columns=['age'])#注意DataFrame的D和F是大写 
df=df.reset_index().rename(columns={'index':'name'})#给姓名加上字段名 

和excel一样,DataFrame的任何一列或任何一行都可以单独选出进行分析。

以上三种数据类型是python数据分析中用的最多的类型,基础语法到此结束,接下来就可以着手写一些函数计算数据了。

传送门: https://www.shangyexinzhi.com/article/details/id-142352/

还有人是以涅槃打坐的“苦行僧”,升级打怪模式。

有位名叫骆昊 (jackfrued) 的同行,以自己的见解,为大家规划了一条从“从新手到大师”的百天之路,GitHub 目前★ 7W+。

最初的15天都是Python基础的修炼,整个流程上算是一个提纲,跟目前培训机构的课程表也大同小异,上手后再做提炼优化。

Day01~15 – Python语言基础

Day01 – 初识Python

  • Python简介 – Python的历史 / Python的优缺点 / Python的应用领域
  • 搭建编程环境 – Windows环境 / Linux环境 / MacOS环境
  • 从终端运行Python程序 – Hello, world / print函数 / 运行程序
  • 使用IDLE – 交互式环境(REPL) / 编写多行代码 / 运行程序 / 退出IDLE
  • 注释 – 注释的作用 / 单行注释 / 多行注释

Day02 – 语言元素

  • 程序和进制 – 指令和程序 / 冯诺依曼机 / 二进制和十进制 / 八进制和十六进制
  • 变量和类型 – 变量的命名 / 变量的使用 / input函数 / 检查变量类型 / 类型转换
  • 数字和字符串 – 整数 / 浮点数 / 复数 / 字符串 / 字符串基本操作 / 字符编码
  • 运算符 – 数学运算符 / 赋值运算符 / 比较运算符 / 逻辑运算符 / 身份运算符 / 运算符的优先级
  • 应用案例 – 华氏温度转换成摄氏温度 / 输入圆的半径计算周长和面积 / 输入年份判断是否是闰年

Day03 – 分支结构

  • 分支结构的应用场景 – 条件 / 缩进 / 代码块 / 流程图
  • if语句 – 简单的if / if-else结构 / if-elif-else结构 / 嵌套的if
  • 应用案例 – 用户身份验证 / 英制单位与公制单位互换 / 掷骰子决定做什么 / 百分制成绩转等级制 / 分段函数求值 / 输入三条边的长度如果能构成三角形就计算周长和面积

Day04 – 循环结构

  • 循环结构的应用场景 – 条件 / 缩进 / 代码块 / 流程图
  • while循环 – 基本结构 / break语句 / continue语句
  • for循环 – 基本结构 / range类型 / 循环中的分支结构 / 嵌套的循环 / 提前结束程序
  • 应用案例 – 1~100求和 / 判断素数 / 猜数字游戏 / 打印九九表 / 打印三角形图案 / 猴子吃桃 / 百钱百鸡

Day05 – 构造程序逻辑

  • 经典案例:水仙花数 / 百钱百鸡 / Craps赌博游戏
  • 练习题目:斐波那契数列 / 完美数 / 素数

Day06 – 函数和模块的使用

  • 函数的作用 – 代码的坏味道 / 用函数封装功能模块
  • 定义函数 – def语句 / 函数名 / 参数列表 / return语句 / 调用自定义函数
  • 调用函数 – Python内置函数 / 导入模块和函数
  • 函数的参数 – 默认参数 / 可变参数 / 关键字参数 / 命名关键字参数
  • 函数的返回值 – 没有返回值 / 返回单个值 / 返回多个值
  • 作用域问题 – 局部作用域 / 嵌套作用域 / 全局作用域 / 内置作用域 / 和作用域相关的关键字
  • 用模块管理函数 – 模块的概念 / 用自定义模块管理函数 / 命名冲突的时候会怎样(同一个模块和不同的模块)

Day07 – 字符串和常用数据结构

  • 字符串的使用 – 计算长度 / 下标运算 / 切片 / 常用方法
  • 列表基本用法 – 定义列表 / 用下表访问元素 / 下标越界 / 添加元素 / 删除元素 / 修改元素 / 切片 / 循环遍历
  • 列表常用操作 – 连接 / 复制(复制元素和复制数组) / 长度 / 排序 / 倒转 / 查找
  • 生成列表 – 使用range创建数字列表 / 生成表达式 / 生成器
  • 元组的使用 – 定义元组 / 使用元组中的值 / 修改元组变量 / 元组和列表转换
  • 集合基本用法 – 集合和列表的区别 / 创建集合 / 添加元素 / 删除元素 / 清空
  • 集合常用操作 – 交集 / 并集 / 差集 / 对称差 / 子集 / 超集
  • 字典的基本用法 – 字典的特点 / 创建字典 / 添加元素 / 删除元素 / 取值 / 清空
  • 字典常用操作 – keys()方法 / values()方法 / items()方法 / setdefault()方法
  • 基础练习 – 跑马灯效果 / 列表找最大元素 / 统计考试成绩的平均分 / Fibonacci数列 / 杨辉三角
  • 综合案例 – 双色球选号 / 井字棋

Day08 – 面向对象编程基础

  • 类和对象 – 什么是类 / 什么是对象 / 面向对象其他相关概念
  • 定义类 – 基本结构 / 属性和方法 / 构造器 / 析构器 / str方法
  • 使用对象 – 创建对象 / 给对象发消息
  • 面向对象的四大支柱 – 抽象 / 封装 / 继承 / 多态
  • 基础练习 – 定义学生类 / 定义时钟类 / 定义图形类 / 定义汽车类

Day09 – 面向对象进阶

  • 属性 – 类属性 / 实例属性 / 属性访问器 / 属性修改器 / 属性删除器 / 使用slots
  • 类中的方法 – 实例方法 / 类方法 / 静态方法
  • 运算符重载 – add / sub / or /getitem / setitem / len / repr / gt / lt / le / ge / eq / ne / contains
  • 类(的对象)之间的关系 – 关联 / 继承 / 依赖
  • 继承和多态 – 什么是继承 / 继承的语法 / 调用父类方法 / 方法重写 / 类型判定 / 多重继承 / 菱形继承(钻石继承)和C3算法
  • 综合案例 – 工资结算系统 / 图书自动折扣系统 / 自定义分数类

Day10 – 图形用户界面和游戏开发

  • 使用tkinter开发GUI程序
  • 使用pygame三方库开发游戏应用
  • “大球吃小球”游戏

Day11 – 文件和异常

  • 读文件 – 读取整个文件 / 逐行读取 / 文件路径
  • 写文件 – 覆盖写入 / 追加写入 / 文本文件 / 二进制文件
  • 异常处理 – 异常机制的重要性 / try-except代码块 / else代码块 / finally代码块 / 内置异常类型 / 异常栈 / raise语句
  • 数据持久化 – CSV文件概述 / csv模块的应用 / JSON数据格式 / json模块的应用

Day12 – 字符串和正则表达式

  • 字符串高级操作 – 转义字符 / 原始字符串 / 多行字符串 / in和 not in运算符 / is开头的方法 / join和split方法 / strip相关方法 / pyperclip模块 / 不变字符串和可变字符串 / StringIO的使用
  • 正则表达式入门 – 正则表达式的作用 / 元字符 / 转义 / 量词 / 分组 / 零宽断言 /贪婪匹配与惰性匹配懒惰 / 使用re模块实现正则表达式操作(匹配、搜索、替换、捕获)
  • 使用正则表达式 – re模块 / compile函数 / group和groups方法 / match方法 / search方法 / findall和finditer方法 / sub和subn方法 / split方法
  • 应用案例 – 使用正则表达式验证输入的字符串

Day13 – 进程和线程

  • 进程和线程的概念 – 什么是进程 / 什么是线程 / 多线程的应用场景
  • 使用进程 – fork函数 / multiprocessing模块 / 进程池 / 进程间通信
  • 使用线程 – thread模块 / threading模块 / Thread类 / Lock类 / Condition类 / 线程池

Day14 – 网络编程入门和网络应用开发

  • 计算机网络基础 – 计算机网络发展史 / “TCP-IP”模型 / IP地址 / 端口 / 协议 / 其他相关概念
  • 网络应用模式 – “客户端-服务器”模式 / “浏览器-服务器”模式
  • 基于HTTP协议访问网络资源 – 网络API概述 / 访问URL / requests模块 / 解析JSON格式数据
  • Python网络编程 – 套接字的概念 / socket模块 / socket函数 / 创建TCP服务器 / 创建TCP客户端 / 创建UDP服务器 / 创建UDP客户端 / SocketServer模块
  • 电子邮件 – SMTP协议 / POP3协议 / IMAP协议 / smtplib模块 / poplib模块 / imaplib模块
  • 短信服务 – 调用短信服务网关

Day15 – 图像和文档处理

  • 用Pillow处理图片 – 图片读写 / 图片合成 / 几何变换 / 色彩转换 / 滤镜效果
  • 读写Word文档 – 文本内容的处理 / 段落 / 页眉和页脚 / 样式的处理
  • 读写Excel文件 – xlrd模块 / xlwt模块
  • 生成PDF文件 – pypdf2模块 / reportlab模块

传送门: https://github.com/jackfrued/Python-100-Days

https://www.jianshu.com/p/8537e15705c6

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论