python 1.3 运算符 +列表 字典 解压赋值
运算符 取值赋值 逻辑运算
1 运算符
# 加减 乘除
# 格式化输出 也可以使用加号 ,效率低
a = 111
b = 222
print(a+b)
# 除法
# print(10/3) # 取flot 浮点型
#
#地板除 取 整数
# print(10//3)
# % 取余数
tatol_size = 10000 # 总数1万条
page_size = 30 # 每页放30天
page_number=(tatol_size // page_size) # 除法 取整数
page_tiaoshu=(tatol_size % page_size) # 除法 取余数
page_jingque=(tatol_size / page_size) # 除法 取浮点数
print("显示满30条的页面有%s页 ,最后一个有%s条数据"%(tatol_size,page_size))
print("%s"%(page_jingque))
字符串运算
# a = "aaa"
# b = "bbb"
# print(a+b) #结果是 aaabbb 效率低不要使用
列表运算
# 既然字符串能相加,列表能不能相加
# a = [111,222,333]
# b = [111,222,333]
# print(a + b) # [111, 222, 333, 111, 222, 333]
# 结果是 一个新的列表产生了
# 能相加 也就是能相乘
运算符的简写
+=
-=
*=
/=
//=
**=
2 成员运算
敏感词在里面是Ture
messges = "A B C D"
if "A" in messges:
print("少儿不宜")
not in 不在里面 变成 Ture
name = input("请输入注册的用户名")
if (name not in "admin")==True:
print(f"恭喜{name}注册成功")
else:
print(f"{name},已存在,请重新注册")
比较运算
字符串比较
# 用于 数值比较的
# 等于 = 不等于 != 大于 > 小于<
# 了解 字符串也可以比价大小
# a1 = "abcd"
# a2 = "z"
#
# print(a1 > a2) #False # 按照字符编码的顺序比较的,了解内容
数字比较
a = 123
b = 456
print(a==b)
#False
列表能不能比大小
大小的比较 只在于 同类型的数据 比大小
不同类型的数据之间是不能比大小的
关于相等的比较 也只能用于同类型数据
大于等于 小于等于 只能用于 整形之间的比较
3 逻辑运算
v2 = "wupeiqi" and "alex"
# 第一步:将and前后的只转换为布尔值 True and True
# 第二步:判断本次操作取决于谁?由于前面的是True,所以本次逻辑判断取决于后面的值。
# 所以,后面的只等于多少最终结果就是多少。 v2 = "alex"
v3 = "" and "alex"
# 第一步:将and前后的只转换为布尔值 False and True
# 第二步:判断本次操作取悦于谁?由于前面的是False,所以本次逻辑判断取决于前面的值。
# 所以,前面的只等于多少最终结果就是多少。 v2 = ""
# and 前面为真,取后面
# and 前面为假,取前面
v4 = 1 or 8
# 第一步:将and前后的只转换为布尔值 True or True
# 第二步:判断本次操作取悦于谁?由于前面的是True,所以本次逻辑判断取决于前面的值。
# v4 = 1
v5 = 0 or 8
# 第一步:将and前后的只转换为布尔值 False or True
# 第二步:判断本次操作取悦于谁?由于前面的是False,所以本次逻辑判断取决于后面的值。
# v5 = 8
# or
and
# 一 条件 : 只能要能到True 或者False 两种值得东西都能当做条件
# 1、显示的布尔值 表面上直接是真假
# 比较运算的结果
# 变量值直接就是True 或者Flase
# 2、隐式的布尔值: 表面是一种植,在底层会被解释器转换成 布尔值
# 0 ,None , 空 对应的布尔值 位false 其余值都是True
# 数字类型: 111 1.3
# 字符串: "dun" None
# [11,222]
# {"a1":222}
# 都是隐式的布尔值
not
# 关键字 not 对条件的结果去反
# print(not 0)
# 对于 Node的判断 应该使用 is 去判断
# 条件1 and 条件2 链接两个条件,两个结果都为True 最终结果才是True
# print(True and 10 >3 )
or
条件1 or 条件2 链接两个条件,只要有一个条件为True 最终结果才是True
# print(True or 10 <3 )
# 短路运算
# 优先级的 排列 面试重点
# not > and > or
# 要使用 () 做优先级 标识
总结 大小的规律,同级别,从左到右比较
1、括号内的优先级最高
2、加减乘除 优先级第二
3、比较运算符 第三
4、逻辑运算符 最次 not > and > or
括号 > 加减乘除>比较运算符>逻辑运算符
4 练习题
v1 = 1 or 2 等于 1
v2 = -1 or 3 等于 -1
v3 = 0 or -1 等于 -1
v4 = 0 or 100 等于 100
v5 = "" or 10 等于 10
v6 = "wupeiqi" or "" 等于 wupeiqi
v7 = 0 or "" 等于1 0
print(v1,v2,v3,v4,v5,v6,v7)
# or,看第一个值,如果第一个值为真,结果就应该是第一个值,否则就结果就是第二个值。
v1 = 4 and 8 等于 8
v2 = 0 and 6 等于 0
v3 = -1 and 88 等于 88
v4 = "" and 7 等于 ""
v5 = "武沛齐" and "" 等于 ""
v6 = "" and 0 等于 ""
v7 = 0 and "中国" 等于 0
print(v1,v2,v3,v4,v5,v6,v7)
# and,看第一个值,如果第一个值真,结果就应该是第二个值,否则结果就是第一个值。
总结
or 比较 假假取值假2,真真比较,取值真1 其他全真
and 比较 假假取值假1,真真比较,取值真2, 其他全假
赋值运算
1、赋值运算 变量和数值为相同的数据类型
age = 18
age = age + 1
print(age)
精简一下
增量赋值
age = 18
age += 1 ======= age = age +1
age -= 1 ======= age = age -1
print(age)
交叉赋值
x=111
y=222
# 两个变量要互相变化数据
# 一般做法 x = temp ,然后 x= y ,y= temp ,借助
# 另外变量名,链接
# 精简语法 x,y = y,x 即可
x,y = y,x
print(x,y)
链式赋值
# x =10
# y = x
# x = z
# 简写
#
# x=y=z=10
# print(x,y,z)
列表使用的解压赋值
# a = [111, 222, 333, 444, 555]
# mom1, mom2,mom3 = a[:2]
#
# print(mom1, mom2, mom3)
# 上述案列不能对列表的值进行分段提取,只能对变量名做改变
# 要想取列标前三个值,
# 那么后面的值也要取出来,赋值给一个变量名
# a = [111, 222, 333, 444, 555]
# mom1, mom2, mom3 ,*xxx = a
# ※号的功能 xxx是变量名 _ 是代表废弃代码的意思
# a = [111, 222, 333, 444, 555]
# mom1, mom2, mom3 ,*_ = a
# print(mom1, mom2, mom3)
# 对于列表的取值,能正向取值,
# 也可以反向取值,
# 是可以取值中间的值 但是 多个数值取出的话,就不方便,不擅长
# a = [111, 222, 333, 444, 555]
# _,_,*b,_ =a
# print(b)
字典的解压取值
# a = {"k1": "aaa", "k2": "bbb", "k3": "bbb"}
#
# x, y, z = a
#
# print(x,y,z)
# print(a[x],a[y],a[z],)
浙公网安备 33010602011771号