python知识结构
2017-03-07 20:39:22 0 举报
AI智能生成
python知识框架(更新中)
作者其他创作
大纲/内容
数据类型
程序概念层级
最简单:表达式:创建处理对象
语句:包含表达式
包(文件夹)和模块(文件)
程序(多个文件夹)
变量与存储
变量:对象的别名
命名规则
字母数字下划线
不能以数字开头
不能包含空格
避免与python关键字和函数冲突
简短且具有描述性
区分大小写(类,为以大写开头,其他多用小写)
创建:第一次赋值时生成
python是动态数据类型
变量的类型取决于关联的对象
其本身无类型的约束
存储
对象有'类型'后存储在内存区域
变量名指向实际的对象,变量本身无类型
对象本身带有类型描述级引用计数器
共享引用
多变量引用同一个对象
==:判断字面值是否相等
is:判断引用地址是否相同
id()全局内置函数:判断存储地址
0-255,自动缓存,只要引用都是共享
小型字符串也会缓存,但是较长较复杂的就会自动释放
python有垃圾回收机制
自动释放未被引用的对象
通过对象引用计数器统计引用
内置核心数据类型
数值类型
整型int|浮点型float
字面值
3.14e5,即3.14*10的5次方,314000.0
二进制:0b1101=13
八进制:0o177=127
十六进制:0x9ff=2559
数字运算符
+ - * / 加减乘除
** 计算数值的某次方:3**2=9
//整除:22//7=3
%取余:22%7=1
常用内置函数
int()强转为整型
int(“30”)=30
转为二进制整数 int(\"1101\",2)=23
八进制:int(“9ff”,16)=2559
float()强转为浮点型
bin(10)='0b1010'转换为二进制
hex(10)='0xa' 转换为十六进制
oct() 转换为八进制
round(3.14)=3 四舍五入
工具模块
math
math.floor(3.99)=3 向下取整
math.floor(-3.99)=4
math.trunc(3.14)=3 只保留整数
math.trunc(-3.144)=-3
math.cell(3.14)=4 与floor相反,向上取整
math.pi 得到π的常量
math.sqrt(144)=12.0 开平方
decimal 精度更高的处理浮点型模块
两种导入类的方式
布尔型的本质
True本质是1
3+True=4
False本质是0
序列
可变序列
list列表 [ ]
包含任意类型的有序集合
scores[0:2]反问第一到第三个范围内的值,第三个不显示
可变长度,异质(类型可多元),可任意嵌套(列表套列表)
支持原位改变
对象引用数组
列表常用操作
排序
l.sort()【列表的函数方法】 从小到大排序
l.sort(key=lambda x:x[-1]) key是排序规则,lambda是一个排序的函数
l.sort(reverse=True) 从大到小排序
【全局函数】:sorted( l ) 基本等同 l.sort()
dict字典
可变序列的通用操作
改变某元素值
s[i]=x
改变特定范围内元素值
s[i:j]=t
t需是可迭代对象?可以是新的序列 [ ],数量未必与待替换对应
s[i:j:k]=t按照步长替换
必须给可迭代对象,且需要完全对应数量给定替换值
删除元素
del s[ i ]
del不是全局函数,只是操作符
del s[i:j]
del s[i:j:k]
s.remove(x) 【序列方法】 删除第一个匹配值
s.clear() 【序列方法】清空
追加元素
s.append(x)【序列方法】
将括号里的内容当一个值追加,比如是序列也会被追加
扩展序列
s.extend(x)【序列方法】
把括号内的元素独立的追加,而非像append一样当一个处理
插入元素
s.insert(i:x) 【序列方法】
检索并删除特定元素
s.pop([i]【序列方法】
中括号说明i可写可不写,不写时是最后一个
反转序列
s.reverse()【序列方法】
reverse只能影响被返回的序列,不会产生新的值
复制序列
s.copy()【序列方法】
l=s[:]
容易造成共享引用
不可变序列
tuple元组 ( )
特性
包含任意对象的有序集合
通过下标索引(位置偏移)访问元素
固定长度,异质,可任意嵌套
不支持原位改变
元组申明
注意,只有一个元素时,需要有“,”如:t=(1,)
元组访问
t[ i ]
t[ i ] [ n ]i位置是一个嵌套的序列,n是嵌套序列中的下标索引
t [ i : j ] 范围访问
range 范围()【函数】
生成数值序列,执行特定次数的循环
str 文本序列,字符串
字面值申明
单行字符串
“”
‘’
多行字符串
''' 多行字符串 '''
三引号内可以换行,这种换行信息会被保留
【转义字符】
'\ \' 换行符
\\t tab空格间隔
\\a 响铃
\\b 退格
\ 回车
\\'
\\\"
\\?
\\0 空字符
\\ooo 以八进制数声明字符
\\xhh 以十六进制数生命字符
\\与后面的字母容易组合成转义字符发生歧义
\\\\用第一个\\转义,后面的\\就能够正常显示
申明忽略转义字符:r\"\
常用操作
str() 类型转换【全局函数】
字符串“修改”
第一种:字符串拼接
操作后会返回一个新值,但是原来的字符没有变,所以需要将新值重新赋值给原来的字符串
str.capitalize() 首字母大写
str.upper() 全部大写
str.lower() 全部小写
str.startswith('str') 判断是否以某字符开头
str.endswith('str') 判断是否以某字符结尾
str.isnumeric() 判断字符是否为数字
str.isalpha() 判断字符是否为字母
str.split() 拆分字符串(列表形式)
制定拆分字符
不指定拆分字符
['www.codeclass.com']当做一个整体拆分成列表
str.join() 连接字符串(列表拼接)
lst=url.split('.') ':'.join(lst) ——'www:codeclass.com'
格式化字符串
python2
%
python3
str.format()
比较复杂,见onenote
通用操作
列表初始化
name=list('大家','我们')
判断某值是否在某序列
x(元素) in s(序列)
T or F
x not in s
连接序列
s1 + s2
重复序列元素内容
s * n(重复次数)
访问某元素
s[ i(下标索引) ] 访问某一个元素
i=0 第一个元素
i=-1 最后一个元素
s [ i : j ] 访问某个区间
[ : 2] 第一个到第三个(不包含第三个)
[ 2: ] 从第三个元素开始到最后一个
[ : ] 全部
s[i:j:k(步长)] 按照步长访问索引范围
s[0:10:2] 从第一个要素开始每隔两个元素取一个值
获取序列长度函数
len(s)
返回序列最值函数
min(s))
max(s)
统计序列总和函数
sum(s)
检索某个元素第一次出现的位置下标【方法】
s.index(x(待检索元素的值))
统计元素出现次数【方法】
s.count(x)
子主题
集合
映射
dict 字典表
通过key(而非下标索引)访问数据
可包括任意对象的无序集合
可变长度,异质,任意嵌套
可变映射分类
对象引用表(hash table))
声明字典
key不可以是list这种可变元素
d=dict(key=value)【全局函数】
操作符/函数(全局)/方法:前面有个点才能用
‘key’in dict
访问
不支持通过索引访问,dict['key']通过键访问
比上一个好在于找不到不会抛出异常,可以弹出指定字符
dict.keys() 返回字典中所有的键 【方法】
dict.values() 返回所有value的值 【方法】
dict.items() 返回所有项[键值对] 【方法】
len(dict)
复制字典
d2=d1.copy()【方法】
清空字典
dict.clear() 【方法】
修改value
dict[key]=value新 【方法】
更新合并
d1.update(d2) 【方法】
删除
del d1[key] 【全局函数】
dict.pop(key) 【方法】 弹出并返回值
dict.popitem() 弹出键值对的项
文件(文档)
声明
路径
'data.txt'相对路径,会在当前系统变量寻找
r'c:\\[ath\\data.txt' 绝对路径
import os (回车)os.getcwd() 获取当前目录
os.chdir('路径') 更改当前目录
模式
文本
'r' 读
'w' 写
c.write('机构:优品课堂\') 写入字符串,\为换行符
写入如果想要在txt看到结果,需要先结束。c.close()就可以看到写入内容
c.writelines(list)一次写入多行
f.flush()不关闭链接,输出缓存到磁盘
'rw' 读写
'a' 追加
二进制(声音、视频)
'*b' 以二进制读取
编码要与文件存储的编码类型一致
utf8
gbk
f.seek(0) 将指针移动到开头,或者其他指定位置
f.close() 关闭文件链接【方法】
读取文件
f.read() 一次性读取所有到字符串,结束后指针在末尾
f.read(N) 读取有限数量的字节或文本
f.read(4) 读取四个字符,指针在第五个字符前
f.readlines() 读取所有的行到列表
f.readline() 读取一行
for line in f: 遍历迭代
程序单元类型
其他
类型对象
内置函数(直接用) type():查看数据是什么类型
空对象:None(特殊常量)
布尔bool
常量
True
False
函数
bool(3>1)=True
真值测试
等同于False的情况
0或0.0或空值,比如(),[],{},和“”和None
语句与流程控制
语句
赋值:创建对象的引用
eg:x=5
运行函数
条件选择执行
if else
迭代语句
for in
循环语句
while True break
eg:def
模块、命名空间、访问
import
from… import
类
异常处理
语法
强制缩进:用4个空格
PEP8 python增强协定标准,代码编排说明
赋值语句
机制
赋值创建对象引用
名称创建于首次赋值
名称引用前必须赋值
某些操作会执行隐式赋值
案例
基本赋值
=
元组/列表赋值
序列赋值(解包)
多目标赋值
a=b=5
参数化赋值
b+=10意思是b=b+10
顺序执行及输入输出
输入
input('提示信息') 默认str
name=input('请输入员工姓名:\')
float(input('请输入员工薪资:\'))
输出
print( )
pirnt(\"=\"*20)
输出为==================
print函数在打印值的时候,自带终止符\,所以会自动换行
python知识结构
IDE集成开发工具
Pycharm
SublimeText
NotePad++
IDLE
Shell
编辑脚本文件
自由主题
0 条评论
回复 删除
下一页