python基础知识 目录 简介
1.1编程语言介绍与分类
什么是编程语言?
本质:与人类语言一样。沟通
电流+一堆硬件
高电压1 低电压0
高电压1 低电压0
高电压1 低电压0 8 晶体管
010101010101 play sound
1010000 open file
机器语言 直接跟硬件打交道
汇编语言 开发效率低
0101010101 <---play_m
高级语言
对底层语言的各种指令 做了封装
play_music("忽然.mp3")
人类代码--翻译-- 》机器语言
根据翻译方式不同产生2个流派
编译性语言 一次性
代表:c,c++,goland
优点:执行速度快
缺点;跨平台可移植性差
硬件:CPU,
软件
解释型语言 边执行边翻译
代表:python,JAVA,RUBY
优点:跨平台好
缺点:需要时间,速度慢
1.2 Python介绍。发展趋势
python发展史
Guido 龟叔 1989 Python
2005-2012 谷歌大量使用PY
2005豆瓣 python
2012 云计算
2014 AI兴起
2017 大众视野
应用: 1WEB开发 Django
2网络编程
3爬虫 制霸
4云计算 难度大
5人工智能,数据分析
6自动化运维
7科学运算
8游戏开发
1.3 注释
# 单行 快捷键Ctrl+?
""" """ 三引号 多行注释
1.4数据类型
1.5字符串
定义
name = "ALex"#有引号就是字符串
段落/多行 三引号""" """
1.6布尔类型bool
a = 3
b = 5
b>a 正确/成立 真True
b<a 错误/不成立 假 False
1.7 列表
[A,B,C]
增
插入 insert
追加 append
删
del remove
改
names[-1] = 23
查
查到元素小标并返回 index()
1.9读取用户指令
input 方法 接受到的所有数据 都以字符串 的格式处理
1.10格式化打印
%s 代表 字符串
%d 代表整数
%f 浮点
1.11运算符
1 % 取模 返回余数
** 幂运算 X的y次方
// 取整数 商
2 比较运算
== 等于
!=不等于
3 赋值运算
4 逻辑运算
1.12流程控制
-单分支
if
-双分支
if else
缩进:
顶级代码必须顶行写
同一级代码,缩进必须一致
缩进4个空格
-多分支
猜字游戏
if elif elif
1.13 while循环
break# 终止循环
continue# 终止此次循环,下一次
else 当程序正常结束 执行 Break结束不执行
第二章
2.1变量的创建过程与回收机制
id() 内存地址 python 有自动垃圾回收机制,可自动隔一段时间把没有变量名的自动回收
2.2如何判断 是否为字符串
type()数据类型
is /is not 数据类型运算(返回值为布尔值)
None 空值
三元运算
d = 值1 if 条件A else 值2
如果条件a成立,就取左边值1,则取 值2
2.3
数据类型 - 列表
切片
-左 》→右 步长默认为1(-1倒着切,右到左)
排序和反转
a[::-1] a.reverse()
sort()
2.4列表循环
for 循环
元组 值不可变
若远元组中包含其他可修改数据类型,则包含数据类型可变
2.5 字符串
有序字符的集合
可用切片。访问单个元素。不可变
**转义符 name = r"ja\nlk\t"
name.
capitalize,casefold,center,count ,endswith,find,
format,
查
find,index, count
改
replace
upper, lower, swapcase, casefold,strip,
split
格式化
format, ljust,rjust,join,
判断
isdigit,startswith.endswith,
2.6 字典
key- value 结构
key 必须为不可变数据类型
可存放多个value
无序
查询速度快
创建
1 dict(name = 'a',age = 15)
2{}.fromkeys(keys,100)#批量值生成字典
keys = [0, 1, 2, 3, 4]
增加
1 键值对
2 setdefault()#保护避免修改
删除
1d.pop()
2 d.popitem()随机删除
3d.clear
4del
修改
1 d['a']=25
2 dic.update(d2) d2 键值对添加到dic中
查操作
1 in
2 get()
3 keys() values() items()
循环字典
for i in dic:
print(i,dic[i])
集合
里面元素不可变,无序
去重效果
生成set()
新增 add(),不可添加列表等可变元素pop,remove,discard
查 in
集合运算:
& 交集 | 并集 -差集 ^对称差集
2.7 二进制
ASCii 值 ord() 英文
GBK 中文
unicode gbk utf-8
py2vs py3 py2 ascii py3 支持unicode
10进制转2进制 bin
16进制hex
8进制oct
2.8 HASH 音译 哈希
散列值 一种复杂的算法
特征:不可逆
计算极快
用途: 密码 MD5加密算法
基于hash,保证同样的输出的结果值一直一致
文件的完整性校验 MD5值
数字签名
基于hash 的类型
dict
key 唯一
key 不可变
查询速度快,不受dic大小影响(二分法)
set
3.1用python操作文件
#### error 复制路径时 (引号前面+r)
encoding问题
1找到文件
2读,修改
3保存&关闭
1.f = open(filename)
2.f.read(100) f.read() 读所有,f.write(lll)
3.f.close()
文件打来模式,只能以一种模式打开
r 只读模式
w 创建模式
a 末尾添加
方法
readline readlines seek#光标移动几个字节
flush 强制从内存刷新到内存
tell 返回当前文件位置
truncate 截取
OS模块 修改文件名等
cys模块 cys.argv 读取外部命令
第三章 函数编程
3.1 bytes 类型
进制--》十进制--asscii/gbk/utf-8/ unicode
数据网硬盘上存,就要以相应的编码转成2进制
图片--》jpg/png --> 2进制
音乐--》MP3/wav-->2进制
视频--》mp4/mov-->2进制
bytes类型,以16进制形式表示,2个16进制构成一个byte。以‘b’来表识
py3默认编码是 utf8
3.2 深浅copy
list dict set
s = {name: alex...}
s2 = s,此时s2与s是共享 同一份数据的
copy一份新数据
浅copy,只copy第一层id地址
s2 = s.copy()
深copy 工具包copy中copy.deepcopy()
3.3 编码转换
1编码与解码
s.encode("utf-8")以utf-8 编码成2进制
s.decode("utf-8")从2进制解码成unicode
2编码转换
gbk---> unicode---->utf-8
3.4 函数
作用
参数
位置参数
默认参数
关键参数 #指令参数
# 位置参数>关键参数/默认参数
非固定参数
再定义参数时,不确定后面调用时,会传递多少个参数进来
*args()元组
**kwargs{}字典
函数返回值不写默认返回None
3.5全部变量与局部变量
局部变量内不可更改全局变量
不建议在局部变量内声明创建全局变量#global name
3.6 嵌套函数&匿名函数
匿名函数 c=lambda x,y:x**y
3.7 高阶函数
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
只需满足以下任意一个条件,即是高阶函数
-- 接受一个或多个函数作为输入
-- return 返回另外一个函数
3.8递归函数
在函数内部,可以调用其他函数。如果一个函数在内部调用自已本身,这个函数就叫做递归函数。
3.9内置函数
bool 空的列表,字典,0 定为False
all 判断全部bool为True
any 有一个True就可以
callable 判断一个对象是否可以调用
dir 返回对象可调用属性
enumerate 返回列表的索引和元素
eval 可以把字符串形式的list,dict,set,tuple,int,在转换成原有的数据类型
exec 把字符串形式的代码,进行解译并执行“print”-->print
filter 过滤 lambda x:x>2 [1,2,3]
frozenset #把一个集合变成不可修改的
isinstance(b,frozenset) 判断数据类型
map lambda x:x**2 [1,2,3]返回[1,4,9]
round 四舍五入
zip 把多个列表拼成一个
3.10 名称空间 name space
L E G B
3.11 闭包
3.12 装饰器
高阶函数 闭包
3.13 列表生成式
a = [i**i for i in a]
3.14 函数生成器
边执行边运算 (惰性运算)
next()
斐波那契数列
yield #暂停 return
3.15 用生成器实现并发编程
3.16迭代器
可迭代对象:list,tuple,dict,str,生成器 可循环
方法:isinstance
可以被next调用的是迭代器
1.1编程语言介绍与分类
什么是编程语言?
本质:与人类语言一样。沟通
电流+一堆硬件
高电压1 低电压0
高电压1 低电压0
高电压1 低电压0 8 晶体管
010101010101 play sound
1010000 open file
机器语言 直接跟硬件打交道
汇编语言 开发效率低
0101010101 <---play_m
高级语言
对底层语言的各种指令 做了封装
play_music("忽然.mp3")
人类代码--翻译-- 》机器语言
根据翻译方式不同产生2个流派
编译性语言 一次性
代表:c,c++,goland
优点:执行速度快
缺点;跨平台可移植性差
硬件:CPU,
软件
解释型语言 边执行边翻译
代表:python,JAVA,RUBY
优点:跨平台好
缺点:需要时间,速度慢
1.2 Python介绍。发展趋势
python发展史
Guido 龟叔 1989 Python
2005-2012 谷歌大量使用PY
2005豆瓣 python
2012 云计算
2014 AI兴起
2017 大众视野
应用: 1WEB开发 Django
2网络编程
3爬虫 制霸
4云计算 难度大
5人工智能,数据分析
6自动化运维
7科学运算
8游戏开发
1.3 注释
# 单行 快捷键Ctrl+?
""" """ 三引号 多行注释
1.4数据类型
1.5字符串
定义
name = "ALex"#有引号就是字符串
段落/多行 三引号""" """
1.6布尔类型bool
a = 3
b = 5
b>a 正确/成立 真True
b<a 错误/不成立 假 False
1.7 列表
[A,B,C]
增
插入 insert
追加 append
删
del remove
改
names[-1] = 23
查
查到元素小标并返回 index()
1.9读取用户指令
input 方法 接受到的所有数据 都以字符串 的格式处理
1.10格式化打印
%s 代表 字符串
%d 代表整数
%f 浮点
1.11运算符
1 % 取模 返回余数
** 幂运算 X的y次方
// 取整数 商
2 比较运算
== 等于
!=不等于
3 赋值运算
4 逻辑运算
1.12流程控制
-单分支
if
-双分支
if else
缩进:
顶级代码必须顶行写
同一级代码,缩进必须一致
缩进4个空格
-多分支
猜字游戏
if elif elif
1.13 while循环
break# 终止循环
continue# 终止此次循环,下一次
else 当程序正常结束 执行 Break结束不执行
第二章
2.1变量的创建过程与回收机制
id() 内存地址 python 有自动垃圾回收机制,可自动隔一段时间把没有变量名的自动回收
2.2如何判断 是否为字符串
type()数据类型
is /is not 数据类型运算(返回值为布尔值)
None 空值
三元运算
d = 值1 if 条件A else 值2
如果条件a成立,就取左边值1,则取 值2
2.3
数据类型 - 列表
切片
-左 》→右 步长默认为1(-1倒着切,右到左)
排序和反转
a[::-1] a.reverse()
sort()
2.4列表循环
for 循环
元组 值不可变
若远元组中包含其他可修改数据类型,则包含数据类型可变
2.5 字符串
有序字符的集合
可用切片。访问单个元素。不可变
**转义符 name = r"ja\nlk\t"
name.
capitalize,casefold,center,count ,endswith,find,
format,
查
find,index, count
改
replace
upper, lower, swapcase, casefold,strip,
split
格式化
format, ljust,rjust,join,
判断
isdigit,startswith.endswith,
2.6 字典
key- value 结构
key 必须为不可变数据类型
可存放多个value
无序
查询速度快
创建
1 dict(name = 'a',age = 15)
2{}.fromkeys(keys,100)#批量值生成字典
keys = [0, 1, 2, 3, 4]
增加
1 键值对
2 setdefault()#保护避免修改
删除
1d.pop()
2 d.popitem()随机删除
3d.clear
4del
修改
1 d['a']=25
2 dic.update(d2) d2 键值对添加到dic中
查操作
1 in
2 get()
3 keys() values() items()
循环字典
for i in dic:
print(i,dic[i])
集合
里面元素不可变,无序
去重效果
生成set()
新增 add(),不可添加列表等可变元素pop,remove,discard
查 in
集合运算:
& 交集 | 并集 -差集 ^对称差集
2.7 二进制
ASCii 值 ord() 英文
GBK 中文
unicode gbk utf-8
py2vs py3 py2 ascii py3 支持unicode
10进制转2进制 bin
16进制hex
8进制oct
2.8 HASH 音译 哈希
散列值 一种复杂的算法
特征:不可逆
计算极快
用途: 密码 MD5加密算法
基于hash,保证同样的输出的结果值一直一致
文件的完整性校验 MD5值
数字签名
基于hash 的类型
dict
key 唯一
key 不可变
查询速度快,不受dic大小影响(二分法)
set
3.1用python操作文件
#### error 复制路径时 (引号前面+r)
encoding问题
1找到文件
2读,修改
3保存&关闭
1.f = open(filename)
2.f.read(100) f.read() 读所有,f.write(lll)
3.f.close()
文件打来模式,只能以一种模式打开
r 只读模式
w 创建模式
a 末尾添加
方法
readline readlines seek#光标移动几个字节
flush 强制从内存刷新到内存
tell 返回当前文件位置
truncate 截取
OS模块 修改文件名等
cys模块 cys.argv 读取外部命令
第三章 函数编程
3.1 bytes 类型
进制--》十进制--asscii/gbk/utf-8/ unicode
数据网硬盘上存,就要以相应的编码转成2进制
图片--》jpg/png --> 2进制
音乐--》MP3/wav-->2进制
视频--》mp4/mov-->2进制
bytes类型,以16进制形式表示,2个16进制构成一个byte。以‘b’来表识
py3默认编码是 utf8
3.2 深浅copy
list dict set
s = {name: alex...}
s2 = s,此时s2与s是共享 同一份数据的
copy一份新数据
浅copy,只copy第一层id地址
s2 = s.copy()
深copy 工具包copy中copy.deepcopy()
3.3 编码转换
1编码与解码
s.encode("utf-8")以utf-8 编码成2进制
s.decode("utf-8")从2进制解码成unicode
2编码转换
gbk---> unicode---->utf-8
3.4 函数
作用
参数
位置参数
默认参数
关键参数 #指令参数
# 位置参数>关键参数/默认参数
非固定参数
再定义参数时,不确定后面调用时,会传递多少个参数进来
*args()元组
**kwargs{}字典
函数返回值不写默认返回None
3.5全部变量与局部变量
局部变量内不可更改全局变量
不建议在局部变量内声明创建全局变量#global name
3.6 嵌套函数&匿名函数
匿名函数 c=lambda x,y:x**y
3.7 高阶函数
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
只需满足以下任意一个条件,即是高阶函数
-- 接受一个或多个函数作为输入
-- return 返回另外一个函数
3.8递归函数
在函数内部,可以调用其他函数。如果一个函数在内部调用自已本身,这个函数就叫做递归函数。
3.9内置函数
bool 空的列表,字典,0 定为False
all 判断全部bool为True
any 有一个True就可以
callable 判断一个对象是否可以调用
dir 返回对象可调用属性
enumerate 返回列表的索引和元素
eval 可以把字符串形式的list,dict,set,tuple,int,在转换成原有的数据类型
exec 把字符串形式的代码,进行解译并执行“print”-->print
filter 过滤 lambda x:x>2 [1,2,3]
frozenset #把一个集合变成不可修改的
isinstance(b,frozenset) 判断数据类型
map lambda x:x**2 [1,2,3]返回[1,4,9]
round 四舍五入
zip 把多个列表拼成一个
3.10 名称空间 name space
L E G B
3.11 闭包
3.12 装饰器
高阶函数 闭包
3.13 列表生成式
a = [i**i for i in a]
3.14 函数生成器
边执行边运算 (惰性运算)
next()
斐波那契数列
yield #暂停 return
3.15 用生成器实现并发编程
3.16迭代器
可迭代对象:list,tuple,dict,str,生成器 可循环
方法:isinstance
可以被next调用的是迭代器
作者:华王
博客:https://www.cnblogs.com/huahuawang/