Python运算、判断、循环

一、运算

1、逻辑运算符

运算符表达式描述
andx and y“与”:如果 x 为假的值,x and y返回 x 的值,否则它返回 y 的值
orx or y“或”:如果 x 为假的值,x or y返回y的值,否则它返回 x 的值
notnot x“非”:如果 x 为真的值,返回 False,如果 x 为假的值,返回True
  • 在Python中,and 和 or 不一定会计算右边表达式的值,有时候只计算左边表达式的只就能得到最终结果(短路原则)。
  • or 运算短路原则:若 or 运算符左边表达式为真,直接返回左边表达式的值,右边表达式不做计算,如: 1 or 0 and 1 的结果为:1。
  • and 运算短路原则:若 and 运算符左边表达式为假,整个 and 表达式的结果为左边表达式的值,右边表达式不做计算;如:0 and 1 的结果为:0。
  • and 和 or 运算符会将其中一个表达式的值作为最终结果,而不一定将 True 或者 False 作为最终结果。在多个逻辑语句连用时,and 语句并不会首先计算,而是作为一个整体,等到该逻辑运算式返回 and 语句的值的时候再进行运算,如:1 or 2 and c,这里 2 and c 会作为一个整体语句A,原逻辑语句会成为 1 or 语句A,根据 or 语句运算规则,则直接返回计算值1,并不会因为没有定义变量c 而报错,这样的场景,我们称之为短路原则。
  • Python中为假的数据有:False、None、0、‘’‘’、[]、()、{},除了这几个都为真。
  • 针对逻辑运算符,优先级:not > and > or
    print(0 and 3 or 4)
    print(4 or 5 and 0)
    print(0 and 3 or 4 and 5 or 6)
    print(3 or b and 5 or 6 and 7)
    print(0 and 3 or 4 and 5 or 6 and not 7)
    
    #4
    #4
    #5
    #3
    #5
    

2、常见运算符优先级

运算符描述
**指数(最高优先级)
* / % //乘、除、取模华锐取整除
+ -加法减法
<= < > >=比较运算符
== !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符
  • 由上往下优先级越低,尽量使用()来限定运算次序,避免运算次序发生错误。

3、数值运算函数

运算符描述
abx(x)x的绝对值
divmod(x,y)(x//y,x%y),输出为二元组形式(也称为元组类型)
pow(x,y)或pow(x,y,z)xy 或者 (xy)%z,幂运算
round(x)或round(x,d)对 x 进行四舍五入,保留 d 位小数,无参数 d 则返回四舍五入的整数值
max(x1,x2,…xn)x1,x2,…xn的最大值,n没有限定,可以是任意数量
min()x1,x2,…,xnx1,x2,…xn的最小值,n没有限定,可以是任意数量
print(abs(100))
print(abs(-100))
print(divmod(5,2))
print(pow(3,2))
print(pow(3,2,2))
print(round(3.1415926))
print(round(3.1415926,2))
print(max(2,0,1,7))
print(max('h','e','l','o'))
print(max('H','E','L','O'))
print(min(2,0,1,7))
print(min('H','E','L','O'))

#100
#100
#(2, 1)
#9
#1
#3
#3.14
#7
#o
#O
#0
#E

二、嵌套语句

1、if 嵌套结构

  • 在判断语句里面又有其他的判断语句,在一个条件满足的前提下,看另一个条件是否满足。
    在这里插入图片描述

  • 语法结构:

    if 条件1:
    	if 条件2:
    		执行语句1
    	else:
    		执行语句2
    else:
    	执行语句3
    
  • 例:地铁先安检,后检票。写一个程序分析一下又几种判断情况。

    # 1 表示有票,0表示无票
    ChePiao = 0
    # 数字大小表示刀具长度
    DaoChang = 11
    if DaoChang<10:
        print("通过安检,现在开始检票!")
        if ChePiao == 1:
            print("检票成功,请准备上车!")
        else:
            print("检票失败,请重新购票!")
    else:
        print("安检未通过,请等待核查!")
        
    #安检未通过,请等待核查!
    
  • 单分支语句嵌套时,可以用逻辑运算符 and 替换
    语法结构:

    if 条件1:
    	if 条件2:
    		执行语句
    

    等价于

    if 条件 1 and 条件 2:
    	执行语句
    

    例:输入一个数字,判断是否是2 和3 的公倍数。

    n=int(input('请输入一个数字:'))
    if n % 2 ==0:
    	if n %3 ==0:
    		print('是2和3的公倍数')
    

    等价于

    n=int(input('请输入一个数字:'))
    if n % 2 ==0 and n %3 ==0:
    	print('是2和3的公倍数')
    

2、循环嵌套语句

  • 类似if的嵌套,循环嵌套就是,循环里面还有循环,外层循环循环一次,内层循环循环多次。
    在这里插入图片描述
    语法结构:

    for 条件1:
    	条件1满足时,做事情1
    		for 条件2:
    			条件2满足时,做事情2
    
  • 例:打印九九乘法表

    for hang in range(1,10):
    	for lie in range(1,hang+1):
    		print("%d*%d=%-4d"%(lie,hang,lie*hang),end=" ")
    	print()
    
    1*1=1    
    1*2=2    2*2=4    
    1*3=3    2*3=6    3*3=9    
    1*4=4    2*4=8    3*4=12   4*4=16   
    1*5=5    2*5=10   3*5=15   4*5=20   5*5=25   
    1*6=6    2*6=12   3*6=18   4*6=24   5*6=30   6*6=36   
    1*7=7    2*7=14   3*7=21   4*7=28   5*7=35   6*7=42   7*7=49   
    1*8=8    2*8=16   3*8=24   4*8=32   5*8=40   6*8=48   7*8=56   8*8=64   
    1*9=9    2*9=18   3*9=27   4*9=36   5*9=45   6*9=54   7*9=63   8*9=72   9*9=81  
    

3、while-else 或 for-else

  • else 跟 while 或 for 连用时,当循环正常结束时(没有执行break)会执行else里面的代码一旦执行了break,就不再执行else里面的代码。

    for i in range(3):
        print(i)
    else:
        print('执行了else语句')
    
    for i in range(3):
        if i==2:
            break
        print(i)
    else:
        print('执行了else语句')
    
    #1
    #2
    #执行了else语句
    #0
    #1
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值