所有运算符的优先级:
(1) 小括号的优先级最高 () => (3+3)*5
(2)
一元运算符:同一时间操作一个数的 ( ~ , - ) -6
二元运算符: 同一时间操作二个数的
** 符号优先级最高
= 符号优先级最低
整体来说,一元运算符优先级大于二元运算符 , ** 除外
乘,除 > 加,减
() > not > and > or
( << >> ) > & > ^ > |
算术运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
(1)算数运算符: + - * / // (地板除) % **(幂运算)
(2)比较运算符: > < >= <= == !=
(3)赋值运算符 = += -= *= /= //= %= **=
(4)成员运算符 in not in 针对于容器类型数据
(5)身份运算符 is is not
(6)逻辑运算符 (and or not)
(7)位运算符 & 按位与
000000010011
000000001111
000000000011
| 按位或
000000010011
000000001111
000000011111
^ 按位异或
000000010011
000000001111
000000011100
<< 乘以n的2次幂
res = 5 << 3 # res = 5 * (3**2)
>> 除以2的n次幂
res = 5 >> 3 # res = 5 * (2**3)
~ 按位非 (针对于补码来进行操作 ,连符号位都要改变) 公式 -(n+1)
变量的命名
字母数字下划线, 首字符不能为数字
严格区分大小写, 且不能使用关键字
变量命名有意义, 且不能使用中文哦
Number (int float bool complex)
int (整型)
# 二进制用0b表示
intvar = 0b1010
# 八进制用0o来表示
intvar = 0o128
# 十六进制用0x来表示
intvar = 0xa6
float 浮点型(小数类型)
# 表示方法一
floatvar = 3.14
# 表示方法二 (科学计数法)
floatvar = 5.88e-2
bool 布尔类型 (True False)
complex 复数类型
'''
复数: 实数 + 虚数 组成的
j : 如果有一个数,他的平方等于-1,那么这个数就是j
科学家认为有。属于高精度的类型
'''
# 表示方法一
complexvar = 4+3j
complexvar = 4j
# 表示方法二 complex(实数,虚数)
complexvar = complex(8,-3)
字符串类型
\n,\r\n: 代表换行
\t: 代表一个缩进 水平制表符
\r: 将\r后面的字符串拉倒当前行首
# 字符串的格式化
%d : 整型占位符
%f :浮点型占位符
%s :字符串占位符
语法: 字符串 % (值1,值2,。。。。。)
综合案例:
strvar = "杜磊开工资了,一共%.2f ,看好了一辆车,价格%d元,心情在%s" % (9.99,10,"崩溃的边缘")
容器类型数据
可哈希的数据 (不可变的数据):Number(int float bool complex) str tuple
不可哈希的数据 (可变的数据): list set dict
list (列表的特性:可获取,可修改,有序)
tuple (元组的特性:可获取,不可修改,有序)
string (字符串的特性:可获取,不可修改,有序)
set (集合特征: 自动去重,无序,用途:用于做交集,差集,并集,补给(做交叉并补的))
dict (字典特征:键值对存储的数据,有序)
字符串的相关操作
(1)字符串的拼接 ( + )
(2)字符串的重复 ( * )
(3)字符串跨行拼接 ( \ )
(4)字符串的索引
(5)字符串的切片: 所谓的切片就是截取
语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到字符串的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
(5)[:]或[::] 截取所有字符串
字符串的函数
capitalize 字符串首字母大写
title 每个单词的首字母大写 (非字母隔开的单词)
upper 将所有字母变成大写
lower 将所有字母变成小写
swapcase 大小写互换
count 统计字符串中某个元素的数量
find 查找某个字符串第一次出现的索引位置 (如果找不到返回-1)
find("字符串",start,end) 可以划定范围查找
index 查找某个字符串第一次出现的索引位置(如果找不到,直接报错)
startswith 判断是否以某个字符或字符串为开头
endswith 判断是否以某个字符或字符串结尾
split 按某字符将字符串分割成列表(默认字符是空格)
split(' ',count) 控制分割几次
join 按某字符将列表拼接成字符串(容器类型都可)
replace 替换字符串(可选择替换的次数)
replace(old,new,n)控制替换几次
center 填充字符串,原字符居中 (默认填充空格)
strip 默认去掉首尾两边的空白符 ( \n \t 空格)
isalnum 字符串中的所有字符都是字母数字且至少有一个字符
isdigit 检测字符串是数字组成 接受二进制字节流
isdecimal 检测字符串是否以数字组成 必须是纯数字
format 字符串的格式化
(1)顺序传参 {}
(2)索引传参 {0} {1}
(3)关键字传参 {a} {b}
(4)容器类型数据传参 {list[0]} {dict['key']}
填充符号的使用( ^ > < )
^ 原字符串居中
> 原字符串居右
< 原字符串居左
{who:*>10}
who : 关键字参数
* : 要填充的字符
> : 原字符串填充的方向
10 : 总长度10 = 原字符串长度 + 填充字符的长度
进制转换等特殊符号的使用( :d :f :s :, )
:d 整型占位符
:f 浮点型占位符 :.2f 代表保留两位小数 可以四舍五入
:s 字符串占位符
:, 金钱占位符
# 综合例子
strvar = "{:s}开工资了,发了{:.2f}钱,买了{:<3d}个降噪耳机"
res = strvar.format("石墙",999.919,19)
print(res)
关于列表的操作
(1)列表的拼接 (同元组)
(2)列表的重复* (同元组)
(3)列表的切片 (同元组)
(4)列表的获取 (同元组)
print(listvar[2])
(5)列表的修改 (可切片)
listvar[1] = "文创丰"
listvar[:2] = "abcd"
listvar[::2] = ["猪八戒","唐僧","孙悟空"]
(6)列表的删除 (可切片)
del listvar[0::2]
del listvar[0::2]
列表的相关函数 增删改查
增:
append 功能:向列表的末尾添加新的元素
insert 功能:在指定索引之前插入元素
extend 功能:迭代追加所有元素
删:
pop 功能:通过指定索引删除元素,若没有索引移除最后那个
remove 功能:通过给予的值来删除,如果多个相同元素,默认删除第一个
clear 功能:清空列表
其他列表函数:
index 功能:获取某个值在列表中的索引
count 功能:计算某个元素出现的次数
sort 列表排序(默认小到大排序)
reverse=True 选择倒叙 True (从大到小)
reverse 功能:列表反转操作
0x集合的交叉并补
& intersection() 交集
- difference() 差集
| union() 并集
^ symmetric_difference() 对称差集 (补集情况涵盖在其中)
< issubset() 判断是否是子集
> issuperset() 判断是否是父集
isdisjoint() 检测两集合是否不相交
集合的相关函数
增:
add() 向集合中添加数据
update() 迭代着增加
setvar.update("abc") 必须是可迭代对象
删:
clear() 清空集合
pop() 随机删除集合中的一个数据
discard() 删除集合中指定的值(不存在的不删除 推荐使用)
remove() 删除集合中指定的值(不存在则报错)
集合不能够修改和查询
定义一个空的冰冻集合
frozenset():
冰冻集合仅仅只能做交叉并补,不能做添加或删除的相关操作
0字典的相关函数
增:
dictvar = {}
dictvar["a"] = 1
fromkeys() 使用一组键和默认值创建字典 ( 不常用 了解)
删:
pop() 通过键去删除键值对 (若没有该键可设置默认值,预防报错)
popitem() 删除最后一个键值对
clear() 清空字典
改:
update() 批量更新(有该键就更新,没该键就添加)
dictvar = {"top":"鲁班七号","middle":"甄姬","bottom":"盘古"}
dictvar2 = {"jungle":"韩信","support":"蔡文姬"}
dictvar.update(dictvar2)
查:
get() 通过键获取值(若没有该键可设置默认值,预防报错)
存在这个键则拿取这个值,如果不存在这个键,则使用默认值,
如果不设置默认值,默认返回None
其他操作:
keys() 将字典的键组成新的可迭代对象
values() 将字典中的值组成新的可迭代对象
items() 将字典的键值对凑成一个个元组,组成新的可迭代对象
文件的操作
open("文件名称","打开的模式","文件的编码")
open的返回值: 文件的io对象 (简称文件句柄)
i => input 输入
o => output 输出
操作模式:
读:
r 默认读模式,只读
rb 二进制的读模式,一般操作非文本文件
r+ 可读可写 (一般先读后写)
写:
w 写模式,只写
wb 二进制的写模式,一般操作非文本文件
w+ 可读可写 (默认光标位置文件首)
追加:
a 追加模式,只追加写
ab 二进制的追加模式,一般操作非文本文件
a+ 可读可写 (默认光标在文件末尾) [再写入时,光标位置一个强制在后]
read() 功能: 读取字符的个数(里面的参数代表字符个数)
seek() 功能: 调整指针的位置(里面的参数代表字节个数)
seek(0):移动到文件首行
seek(0,2):移动到文件末尾
tell() 功能: 当前光标左侧所有的字节数(返回字节数)
flush() 强制刷新写入
刷新缓冲区 flush
# 当文件关闭的时候自动刷新缓冲区
# 当整个程序运行结束的时候自动刷新缓冲区
# 当缓冲区写满了 会自动刷新缓冲区
# 手动刷新缓冲区
文件操作的函数
readable() 检测文件对象是否可读
writable() 检测文件对象是否可写
readline([n]) 功能: 读取一行文件内容
如果当前参数值大于实际字符个数,取当前行
如果当前参数值小于实际字符个数,取参数值这么多的字符
readlines() 功能:将文件中的内容按照换行读取到列表当中
writelines() 功能:将内容是字符串的可迭代性数据写入文件中 参数:内容为字符串类型的可迭代数据
(1) 需要是可迭代性的数据
(2) 里面的元素是字符串
truncate(n) 功能: 把要截取的字符串提取出来,然后清空内容将提取的字符串重新写入文件中 (字节)
"""
read() 参数是字符
readline() 参数是字符
seek() 参数是字节
truncate() 参数是字节
"""
原文:https://www.cnblogs.com/bytes-xyz/p/10692792.html