Python 运算符 & 代码块及流程控制

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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。