day2-运算符和分支结构

python支持的运算符:数学运算符、比较运算符、逻辑运算符、*位运算

数学运算符

+(加)、-(减)、*(乘)、/(除)、//(整除)、%(取余、取模)、**(幂运算)
  1. +、-、*、/ 和数学中的+、-、×、÷ 功能和用法一模一样

    注意:/(除法运算)的运算结果是浮点型

    print(1+1)  # 2
    print(2-5)  # -3
    print(2*5)  # 10
    print(2/5)  # 0.4
    
  • 运算结果可以保存在变量中

    result = 3*3
    print(result)   # 9
    
  • 运算对象不一定非得是数据,还可以是变量

    num = 10
    print(num / 2)  # 5.0
    
  1. // - 求商,商保留整数部分(向小取整)

    print(5/2)   # 2.5
    print(5//2)  # 2
    
    print(1.8/2)  # 0.9
    print(1.8//2) # 0.0
    
    print(-2.8//2) # -2.0
    print(-5//2)   # -3
    
  • 应用:取高位数(去低位)

  • 练习

    • 写代码获取输入的任意三位数的百位数
    num = 980
    print(980//100)  # 9
    
    • 去掉任意整数的个位数
    print(678//10)	# 67
    
  1. % - 取余、取模、求余数
  • x % y - 求x除以y的余数

    print(5 % 2)   # 1
    
  • 应用1:判断一个数是否能够被另外一个数整除

    print(7 % 3) # 1 -> 不是0,所以7不能被3整除
    print(9 % 3) # 0 -> 是0,所以9能被3整除
    
  • 应用2:判断一个数的奇偶性

    print(13 % 2)  # 1 -> 不能被2整除,判断为奇数
    print(24 % 2)  # 0 -> 能被2整除,判断为偶数
    
  • 应用3:取低位数

    num = 824
    print(num % 10)  # 4
    print(num % 100) # 24
    
  1. ** - 幂运算
  • x ** y - 求x的y次方

    print(2 ** 3)  # 8
    print(3 ** 2)  # 9
    

    注意:次方数如果是N分之一就是开N次方

    print(16 ** (1/2))  # 4.0
    print(16 ** 0.5)    # 4.0
    print(8 ** (1/3))   # 2.0
    print(256 ** 0.5)   # 16.0
    

比较运算符

>(大于)、<(小于)、==(等于)、!=(不等于)、>=(大于等于)、<=(小于等于)
  1. 所有比较运算符的运算结果都是布尔值

    print(10 > 20)   # False
    print(10 < 20)   # True
    print(10 == 20)  # False
    print(10 != 20)  # True
    print(10 == 10)  # True
    print(10 >= 10)  # True
    
  2. python支持表示范围的连写方式

    num = 10
    print(0 < num < 20)  # True
    
  3. 运算结果不是一定要打印,也可以用变量保存

    result = num < 18
    print('result:',result) # result: True
    

逻辑运算符

and(逻辑与)、or(逻辑或)、not(逻辑非)

注意:从应用角度来讲,所有的逻辑运算符的运算结果都是布尔值

  1. and - 逻辑与运算

    1. 应用场景:相当于生活中的并且;用于需要多个条件同时满足的情况

    2. 运算规则:条件1 and 条件2 - 如果条件1和条件2都成立,结果就是True,只要有一个是不成立的,结果就是False

      True and True -> True
      True and False -> False
      False and True -> False
      False and False -> False

    练习:写出判断一个数是否能同时被3和7整除的条件

    num = 21
    # 条件1:能被3整除(num % 3 == 0)
    # 条件2:能被7整除(num % 7 == 0)
    
    # 方法一:
    print('是否能同时被3和7整除:',num % 3 == 0 and num % 7 == 0)	# True
    # 方法二:
    print('是否能同时被3和7整除:',num % 21 == 0)	# True
    
  2. or - 逻辑或运算

    1. 应用场景:相当于生活中的或者;用于需要多个条件中只要有一个条件满足的场景

    2. 运算规则:条件1 or 条件2 - 如果条件1或者条件2中,有一个是True,结果就是True,两个都是False,结果才是False

      True or True -> True
      True or True -> True
      False or True -> True
      False or False -> False

    练习1:写出判断一个数是否能被2或者5整除

    num = 10
    print('是否能被2或者5整除',num % 2 == 0 or num % 5 == 0)	# True
    num = 12
    print('是否能被2或者5整除',num % 2 == 0 or num % 5 == 0)	# True
    num = 13
    print('是否能被2或者5整除',num % 2 == 0 or num % 5 == 0)	# False
    num = 15
    print('是否能被2或者5整除',num % 2 == 0 or num % 5 == 0)	# True
    

    练习2:判断指定的年是否是闰年

    # 闰年的条件:1)能被400整除(世纪闰年)  2)能被4整除,但是不能被100整除(普通闰年)
    year = 2001
    # 条件1:能被400整除(year % 400 == 0)
    # 条件2:能被4整除但是不能被100整除:year % 4 == 0 and year % 100 != 0
    #       能被4整除:year % 4 == 0
    #       不能被100整除:year % 100 != 0
    print('是否是闰年',(year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))	# False
    
  3. not - 逻辑非运算

    1. 应用场景:对一个条件进行否定

    2. 运算规则:not 条件 - 对指定条件进行否定

      not True -> False
      not False -> True

    age = 20
    print(age > 18)		 # True
    print(not age > 18)  # False(age不大于18)
    print(age <= 18)	 # False
    

    练习:写一个条件判断一个数是否不能同时被3和7整除

    # 练习:写一个条件判断一个数是否不能同时被3和7整除
    # 1)能被3整除不能被7整除
    # 2)能被7整除不能被3整除
    # 3)既不能被3整除也不能被7整除
    
    num = 19
    print('不能同时被3和7整除:',not (num % 3 == 0 and num % 7 == 0))	# True
    print('不能同时被3和7整除:',not num % 21 == 0)						# True
    

逻辑运算符扩展

  1. 逻辑运算符的短路操作
  • 逻辑与运算的短路

    条件1 and 条件2 - 如果条件1是False,那么条件2对应的代码不执行,结果直接是False

  • 逻辑或运算的短路

    条件1 or 条件2 - 如果条件1是True,那么条件2对应的代码不执行,结果直接是True

    False and print('hello') #   -> False
    True or print('world!')  #   -> True
    
  1. 运算对象不是布尔值
  • 逻辑与的通用运算规则

    数据1 and 数据2 - 判断数据1的布尔值是否是True,如果是,那么整个结果就是数据2,否则整个结果就是数据1

    数据1 or 数据2 - 判断数据1的布尔值是否是False,如果是,那么整个结果就是数据2,否则整个结果就是数据1

    补充:数据的布尔值(任意数据怎么转换成布尔)(重要!!!):

    python中所有的数据(不管是什么类型的数据)都有布尔值,所有的零值(0、0.0)和空值(空字符串、空列表、空集合等)的布尔值是False,其他都是True

    print(True and 10)   # 10
    print(False and 10)  # False
    
    print(8 and 7)       # 7
    print(0.0 and 10)    # 0.0
    
    print(8 or 7)        # 8
    print(0 or 8)        # 8
    
    print(not 7)         # False
    print(not '')        # True
    

赋值运算符

简单的赋值运算符:=,复合赋值运算符:+=、-=、*=、/=、//=、%=、**=

注意:1) 所有的赋值运算符最终的目的是给变量赋值;

2) 赋值符号左边必须是变量,右边可以是任何有结果的表达式(除了赋值语句)

3) 复合赋值运算符的左边必须是已经赋值过的变量

  1. =

    a = 19
    age = 20
    
  2. 复合赋值运算符

a = 19
a += 10  # a = a + 10 = 19 + 10 -> a = 19 + 10 
print(a)	# 29

a -= 15  # a = a - 15 = 29 - 15 -> a = 29 - 15
print(a)	# 14

a *= 3
print(a)	# 42

a /= 5
print(a)	# 8.5

a //= 2
print(a)	# 4.0

a **= 3
print(a)	# 64.0

a %= 7
print(a)	# 1.0
  1. 运算符的优先级
  • 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符 (最低)

  • 数学运算符:** > *、/、//、% > +、-

  • 有括号先算括号里面的(这儿的括号是小括号)

    num = 23
    print(num % 3 == 0 and num % 7 == 0)    # False
    
    result = 10 + 3 > 2 * 10
    print(result)   # False
    
    print(3 * 3 ** 2)  # 27
    
  • 布尔参与数学运算的时候:True是1,False是0

    print(True + 1)   # 2
    print(False + 1)  # 1
    

分支结构

  1. 流程控制
  • 顺序执行 - 代码从上往下一条一条的按顺序执行(默认执行方式)
  • 分支结构 - 根据条件选择执行或者不执行某些代码(if语句)
  1. 分支结构

python中能够实现分支结构的只有if

​ 1)if单分支结构 - if

  • 应用场景:如果满足某个条件就执行某段代码,条件不满足就不执行

  • 语法:

    if 条件语句:

    ​ 代码段

  • 说明:

  • if - 关键字;固定写法

  • 条件语句 - 任何有结果的表达式(包括具体的数据、已经赋值过的变量、运算表达式-赋值语句除外…)

  • : - 固定写法(注意:必须使用英文输入法下的冒号)

  • 代码段 - 和if保持一个缩进的一条或者多条语句;需要在满足条件才会执行的代码

  • 执行过程:先判断if后面的条件语句是否为True(如果不是布尔,就看结果的布尔值是否是True),如果是True,就执行 代码段,否则代码段不执行

    if True:
        print('第一条语句')	# 第一条语句
        print('第二条语句')	# 第二条语句
    

    练习:如果指定的年龄已成年,就打印’可以进网吧’

    age = 19
    if age >= 18:
        print('可以进网吧')	# 可以进网吧
    
  1. if 双分支结构:if - else
  • 应用场景:满足条件执行某个操作,不满足的时候执行另外一个操作

  • 语法:

    if 条件语句:

    ​ 代码段1(满足条件需要执行的代码)

    else:

    ​ 代码段2(不满足条件的时候需要执行的代码)

  • 执行过程:先判断if后面的条件语句是否为True(如果不是布尔,就看结果的布尔值是否是True),如果是True,就执行代码段1,否则执行代码段2

    练习1:根据num的值打印’偶数’或者’奇数’

    num = 13
    if num % 2 == 0:
        print('偶数')
    else:
        print('奇数')	# 奇数
    

    练习2:根据year的值打印’闰年’或者’平年’

    # 闰年的条件:1)能被400整除(世纪闰年)  2)能被4整除,但是不能被100整除(普通闰年)
    year = 2000
    # 写法一:
    if  (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
        print('闰年')		# 闰年
    else:
        print('平年')
    
    # 写法二:
    condition = (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0)
    if condition:
        print('闰年')		# 闰年
    else:
        print('平年')
    

    练习3:根据symbol的值来对num进行加1或者减1的操作,symbol是’+‘就加1,symbol是’-'就减1

    symbol = '+'
    num = 10
    if symbol == '+':
        num += 1
    
    if symbol == '-':
        num -= 1
    print(num)		# 11
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值