数据类型转换:自动类型转换:整型 浮点型 布尔类型(非0为真,0为假)
强制类型转换:int() / float() / str()
print(a+"+"+b+"="+str(c)) 字符串和字符串拼接
print("%s+%s=%s" % (a , b , c)) 字符串的格式化%s
print(f"{a}+{b}={c},这是一个最简单的算法") f {}
print("{0}+{1}={2},这是一个简单的算法".format(a , b , c)) format函数
常见的运算符:
算数运算符:+ - * / //(整除) %(取余) **(幂次方)
关系运算符: > < >= <= == !=(<>)
逻辑运算符:and(两真才真,一假则假) or(一真则真,两假才假) not
所属运算符:in not in
is运算符:is判断内存地址是否相同 ==判断值是否相同
赋值运算符:= += -= *= /= //= %= **= python中不存在自增自减(++/--)
三目运算符: 变量 = 值1 if 条件 else 值2
程序控制流程:
代码整体执行顺序 :从上到下 从左到右
选择:不同条件下,执行不同的代码
if条件:单分支 if 条件:
双分支 if 条件成立: else 条件不成立:
pass关键字保证语法完整性
缩进正确可以继续嵌套
多分支 if 条件1: elif 条件2: elif 条件3: …. else:以上条件都不满足
变量
循环
while条件:
循环体
else:
循环正常结束时的代码(能运行证明循环正常结束
for循环:主要用于容器的迭代
for 临时变量 in 容器:
数据结构:
线性表:
数组:类型一致的,大小固定,连续的内存结构
链表(单向双向):不一定要内存空间连续,大小不固定
栈:先进后出
队列:先进先出
修改数据:列表名[列表下标]=新的数据
增加数据: list.append(""),向列表的尾部增加元素
list.insert(位置下标,"要添加的元素"),向对应下标位置添加元素
list.extend(list2),将两列表合并,list2追加于list后
删除数据: remove(元素):列表名.remove("元素")
pop(通过下标删除元素):列表名.pop("下标") ,默认删除最后一位(-1)元素 ,会返回列表数据
clear():清空列表里的数据
查找数据: index(元素): 列表.index(元素),获取匹配第一元素的索引下标
index(元素,start) 从start下标开始寻找
count():计数 copy():浅拷贝 c=列表名.copy()
sort():排序 a.sort() reverse():倒序 a.reverse()
sort(reverse=Ture) 从大到小
Set(集合):
底层基于哈希来实现的,不能重复,无顺序 {}
set():去除重复
集合是无法进行访问的----无序
集合也能通过len()获取长度
集合遍历: for i in set1
集合常见的方法:
Add(元素):通过元素给集合追加但无序 set.add("元素")
Pop():任意一个元素被移除 set.pop()
Remove(元素):通过元素去移除 set.remove("元素")
Discard(元素):同样是通过元素移除,区别在于要移除的元素不存在时discard不会报错
Intersection():交集
Union():并集
difference():差集
元组tuple 不可变数据类型,有序的
tu=(1,2,3,[5,6,7]) 列表能变,元组不能变
元组中元素存在可变数据类型,那么更改可变数据类型中的元素不会报错
遍历: for I in tu3:
访问:元组名[元组下标]
tu3.count()
tu3.index()
字典
dict()
Dict1={"uname":"666","age":"13"}
查找数据:
字典名["键名"]
Dict1["school"]="huazhu"存在则进行覆盖,不存在则添加
len()
Get(key,默认不存在时返回):通过key获取值的
keys():获取所有的键
values():获取所有的值
setdefault():添加键值对
del 要移除的项 可以移除任何变量
dict1.formkeys((1,2,3,4)):创建key值为1,2,3,4的字典,键值为none
删除:
pop():通过key删除键值对
items():返回键值对,返回的是列表,列表每一项为元组
update():
冒泡排序(相邻两个数进行两两比较,找到最大数):