时间:2021年7月14日 作者:Afollower 分类: 学习记录/Python基础/
1. 变量
1. 创建
在第一次赋值时生成
命名规则
- 包含字母、数字、下划线
- 只能以字母和下划线开头
- 不能有空格
- 避免Python关键字或函数名
- 简短且有描述性
- 注意区分相识值:1 ,l ,I, O,0等
- 私有变量:在名称前添加下划线 ‘_’
- 保护变量,用于继承:在名称前添加 ‘__’
- 在for循环中,不需要使用的变量,可以使用 ‘_’,如 for _ in range(test):
2. 类型
变量无类型约束,类型取决于被赋予的值的对象
3. 交换变量值
- 通过中间变量
- a, b = b, a
2. 对象类型
2.1 整型
2.1.1 类别
#int
intA = 10
#float
floatA = 10.0
Decimal
Fraction
2.1.2 整形比较
符号 | 说明 |
---|
‘>’/’<’ | 大于/小于 | == | 等于 | ‘>=’/’<=’ | 大于等于/小于等于 | != | 不等于 |
2.1.3 运算
2.1.4 运算取整
- math函数:
#floor: 向左取整
math.floor(a/b)
#trunc: 向下取整
math.trunc(a/b)
- round: 四舍五入
round(a/b, x) # 保留x位小数
2.1.5 进制转换
- 基础函数
- bin() 二进制 0b
- oct() 八进制 0o
- hex() 十六进制 0x
- chr() int-> ascii
- ord() ascii -> int
- int(str, num) -> 将num进制的str转换为10进制
- binascii模块:
包含很多在二进制和ASCII编码的二进制表示转换的方法
import binascii
a = b'worker'
b = binascii.b2a_hex(a)
c = binascii.a2b_hex(b)
d = binascii.hexlify(c)
e = binascii.unhexlify(d)
print(a, b, c, d, e)
输出:
b'worker' b'776f726b6572' b'worker' b'776f726b6572' b'worker'
2.2 字符型
2.2.1 声明
str = ''
str = ""
str = """ """
#特殊-三引号:多行注释,原格式打印输出文本
2.2.2 转义符
'\' #添加\避免转义
r'' #忽略转义
2.2.3 字符串操作
replace() #替换
split() #切割
strip() #去除两端的空格 \n等
find() #查找
2.2.4 正则表达式
2.3 列表list
2.3.1 创建
aList = list()
aList = []
aList = [i for i in range(n)] #推导式
2.3.2 常用函数
append(obj) #追加单个 extend(obj) 追加一个序列
count(obj) #统计对象出现次数
remove(obj) #移除匹配的第一个元素, pop()移除最后一个元素
reverse() #反向列表元素
sort() #列表排序
clear() #清空
copy() #复制列表【深克隆】
sum() #统计求和
max() min() len(list) list(tuple) #最大值、最小值、列表长度、将元组转换为列表
2.3.3 排序
sorted(arr:list, reverse=True) #排序,并返回排序后的列表
sort(arr: lsit) # 排序,在原list基础上排序
2.4 字典dict
2.4.1.创建
aDict = {}
aDict = dict()
aDict = {x: y(k) for k in seq} #推导式
aDict[key] = value #新增键值对,键值对存在就修改
2.4.2 常用函数
——————通过已有方式新建字典——————
1. dict.fromkeys(seq1, val) 返回一个以seq序列元素为键, val为初始值的字典
2. copy() 复制字典【深克隆】
——————操作——————
3. keys() 返回一个包含所有键的可迭代对象
4. values() 返回一个包含所有值得可迭代对象
5. items() 返回可迭代的(key, value)元组对象
————————————————
6. key in dict 检查key是否为字典中的键
7. setdefault(key, defaultval) 同get(key) 获取键对应的值,如果值不存在则创建并赋值defaultval
8. dict1.update(dict2) 将dict2中的键值追加到dict1上,如果键相同则覆盖
9. pop(key, defaultval) 删除key所对应的value并返回value, key必须给出,否则返回defaultval
10. popitem() 随机返回并删除最后一对键值对
11. str(dict) 打印 len(dict) 字典元素个数
2.4.3 排序
from operator import itemgetter
eg:
a = {"name": "zs", "age": 18, "city": "深圳", "tel": "1362626627"}
a = dict(sorted(a.items(), key=itemgetter(0))) #根据key排序
#or
a = dict{sorted(a.items(), key=lambda x:x[0/1])}
2.5 元组tuple
2.5.1 创建
aTuple = (value1,)
aTuple = tuple()
#元组在初始化创建后就无法在进行修改操作
2.5.2 常用函数
len() max() min() tuple() #长度、最大值、最小值、将其它序列转换为元组
2.5.3 拆包元组数据
num1, num2 = (100, 200)
print(num1)
print(num2)
2.6 集合set
2.6.1 创建
aSet = set()
aSet = {value1, }
aDict = {x(k) for k in seq} #推导式
#创建空集合时只能使用set()
2.6.2 常用函数
add() #追加元素
clear() #清空集合
copy() #复制集合【深拷贝】
2.7 布尔bool: True / False
2.8 文件file
2.8.1 创建
aFile = openopen(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
with open(...) as aFile:
#说明:推荐使用with, 相当于使用了上下文管理器 __enter__()初始化, __exit__()退出时清理
2.8.2 常用函数
close() #关闭文件
read([size]) #读取指定的字节数,未给则读取全部
readline() #读取整行(包括 \n)
readlines([sizeint]) #读取所有行并返回列表
seek(offset[, whence]) #移动文件读取指针的位置
tell() #返回当前指针的位置
write() #写入文件
2.8.3 mode
r-读 w-写 a-追加 b-二进制 +-读/写【r+ 即读写操作】
附加:'+' 可读写,但是要基于前面的mode,
例:r+ 如果文件不存在则会报错,a+由于指针问题读取不了数据。
在Python3中新增了 'x':写,会检查文件是否存在,不存在才会进行写文件操作,避免覆盖
2.9 空None
is #进行地址比较
[-5, 256] #存储在固定地址值
== #值比较
#判断为空的三个方法
if x is None
if not x
if not x is None <==> if x is not None
#存在问题:在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False,单纯用not无法区分。
if x is not None #推荐使用,明显且避免了为''的情况
2.10 程序单元
- 函数function
- 模块
- 类class
3 对象自省(introspection)
指在运行时判断一个对象的类型的能力
dir() #获取对象常用方法
type() #获取对象类型
id() #获取对象地址
help() #获取函数的说明注释
|