1.运算符
2.代码块及流程控制
一、运算符
1.算术运算符
+ - * / // % **
加 减 乘 除 地板除 取余 幂
# // 地板除,所取的结果是整数部分,即商
res = 10 // 5 #结果2
res = 10.0 // 5 #结果为2.0,如果被除数或者除数身上带有小数,结果也会带有小数 .0
# % 取余
res = 10 % 7 # 3
res = -10 % 7 # -3 + 7 = 4 ,前者负数,则结果:-正常余数 + 后者
res = 10 % -7 # 3 - 7 = -4 ,后者为负数,则结果:正常余数 + -后者
res = -10 % -7 # -3 ,前者后者都为负数,则结果:-正常余数
# ** 幂运算
res = 2 ** 4 # 16
2.比较运算符
使用比较运算符,返回的结果是 True 或者 False
> < <= >= == !=
res = var1 <= 10
3.赋值运算符
= += -= *= /= //= %= **=
# 赋值,右 ---> 左
# 以 += 为例:
var1 += var2
var1 = var1 +var2
4.成员运算符
①针对于容器类型数据。
②使用成员运算符,返回的结果是 True 或者 False。
in not in
# 以 str 为例:
strvar = "今天天气很凉爽"
res = "天" is strvar
res = "凉" not is strvar
# 如果是数据类型是字典,通过字典的键来进行判断。
5.身份运算符
用来判断内存地址的存在,返回结果是 True 或者 False
is is not
var1 = 10
var2 = 10
print(var1 is var2)
6.逻辑运算符
and or not
逻辑与 逻辑或 逻辑非
1.使用规律
# and
全真则真,一假则假
# or
全假则假,一真则真
# not
真变假,假变真
2. 短路
True or 表达式 #输出前者,反之输出后者
False and 表达式 #输出前者,反之输出后者
3.逻辑运算符的优先级
() > not > and > or
7.位运算符
针对于二进制进行操作,需转换为二进制才可进行运算
& | ~ ^ << >>
按位与 按位或 按位非 按位异或 左移 右移
# &
全1为1,有0为零
# |
有1为1,全0为0
# ~ 公式:res -(n+1)
res = ~19 # 结果 -20
# ^
不同为1,相同为0
# <<
res = 5 << n
公式:res = 5 * 2 ** n
# >>
res = 5 >> n
公式:res = 5 // 2 ** n
# 位运算符的优先级
<< >> > & > ^ > |
8.总结
1.运算符优先级最高的是:**
运算符优先级最低的是:=
.
2.整体而言:一元运算符 > 二元运算符
.
3.整体对运算符的优先级排序:
算数运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
二、代码块及流程控制
1.代码块
以冒号作为开始,用缩进来划分相同的作用域(作用的范围),这个整体叫做代码块。
# 以 if 判断语句为例:
if 5 == 6:
print(111)
print(222)
对于缩进注意:要么都是 \t , 要么都是 4个空格,不能混合使用。
2.流程控制
流程:代码执行的过程
控制:对代码执行过程中的把控
1.三大结构
(1)顺序结构,代码从上到下依次执行
(2)分支结构,4种
(3)循环结构,for 和 while
2.分支结构
(1).单项分支
if 条件表达式:
code1
(2).双项分支
if 条件表达式:
code1
else:
code2
(3).多项分支
多个条件使,可以利用逻辑运算符
if 条件表达式1:
code1
elif 条件表达式2:
code2
elif 条件表达式3:
code3
else:
code4
(4).巢状分支
if 条件表达式1:
if 条件表达式2:
if 条件表达式3:
code1
else:
code2
else:
code3
else:
code4
3.循环结构
减少代码的冗余,提升代码的效率
(1).while循环
while循环的结构组成:
1.初始化一个变量
2.循环的条件(逻辑)
3.自增自减的值
# 语法格式
i = 0
while i < 10:
code1
i += 1
# 死循环
while True:
code1
# 查看帮助,help() 函数
help(print)
# 双项循环,以打印99乘法表为例
i = 1
while i <= 9:
j = 1
while j <= i:
print("%d*%d=%2d " % (i,j,i*j),end="")
j += 1
print()
i += 1
(2).for循环
遍历、循环、迭代
for循环可以遍历无序的容器,而while不可以
1.遍历
# 遍历无需容器
container = {1,2,3,4,5}
for i in container:
print(i)
# 解包
a,b = ["你","好"]
# 遍历等长的二级容器
container = [[1,2,3],("a","b","c"),[4,5,6]]
for a,b,c in container:
print(a,b,c)
# 遍历不等长的二级容器
container = [[1,2],("a","b","c","d"),"x"]
for i in container:
for j in i:
print(j)
2.循环
range() 对象,配合for使用
# 一个值
for i in range(10): # 0~9 10取不到
code1
# 两个值
for i in range(2,8): # 2~7 8取不到
code1
# 三个值
# 正序
for i in range(1,10,3): # 1,4,7 取值范围1~10,间隔是3
code1
# 倒序
for i in range(10,0,-1): # 10~1 取值范围10~0,间隔是1 0取不到
code1
4.关键字的使用
1.pass
表达占位符的概念,空语句,保证程序能够正常运行
for i in range(10):
pass
2.break
终止当前循环,后面的代码不执行
# while 中
i = 0
while i < 10:
if i == 5:
break
print(i)
i += 1
# for 中
for i in range(10):
if i == 5:
break
print(i)
3.continue
跳过本次循环,后面的代码不执行,从下一次循环开始执行
# while 中
i = 0
while i < 10:
if i == 5:
# while 循环变量需要在continue 进行自增或自减,否则发生死循环
i += 1
continue
print(i)
i += 1
# for 中
for i in range(10):
if i == 5:
continue
print(i)