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],)
posted @ 2019-04-26 16:02  mmszxc  阅读(166)  评论(0)    收藏  举报