Day2—Python运算符和分支结构

Day2—Python运算符和分支结构

​ Python支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算符。

一、数学运算符

  1. + 、-、*、/和数学中的+、-、×、÷的功能一模一样。
print(2 + 5)   # 7
print(2 - 5)   # -3
print(2 * 5)   # 10
print(2 / 5)   # 0.4
  1. %取余、取模

x % y — 求x除以y的余数。

print(8 % 2)   # 0
print(15 % 4)  # 3

应用一:判断一个数书否能够被另外一个数整除。

print(15 % 3)   # 0 可整除
print(20 % 5)   # 0 可整除
print(12 % 2)   # 0 可整除

应用二:取整数低位数。

num = 789159
print(num % 10)   # 取个位数
print(num % 100)  # 取后两位数
  1. //整除

    x // y — x除以y的结果向下取整。

print(5 / 2)   # 2.5
print(5 // 2)  # 2
print(-5 // 2) # -3

应用:去掉低位数。

num = 27383
print(num // 10)    # 2738
print(num // 100)   # 273
print(num // 1000)  # 27
print(23 // 10)     # 2
print(647 // 100)   # 6
print(8929 // 1000) # 8

练习:获取任意一个整数的十位数。

num = 345
# 方法一
print(num // 10 % 10)   # 4
# 方法二
print(num % 100 //10)   # 4
  1. **

    x ** y — 求x的y次方。

print(2 ** 3)      # 8
print(4 ** 2)      # 16
print(25 ** 0.5)   # 5.0
print(27 ** (1/3)) # 3.0

二、比较运算符

​ 比较运算符:==等于、!=不等于、>大于、<小于、>=大于等于、<=小于等于。

注意:所有的比较运算符的运算结果都是布尔值
  1. ==等于、!=不等于
print(5 == 5)        # True
print(5 != 5)        # False
print(5 != 4)        # True
print(10 % 2 == 0)   # True
print(1 + 1 == 2)    # True
  1. >大于、<小于、>=大于等于、<=小于等于
print(10 > 5)           # True
print(10 <= 10)         # True
print(10 < 10)          # False

# 可以通过连写的方式来表示取值范围
age = 12
print(18 <= age <= 30)   # False
print(0 < age < 18)      # True

三、逻辑运算符

​ 逻辑运算符: and逻辑与运)、or逻辑或运算、not逻辑非运算。

  1. and逻辑与运算

    1. 应用场景

      如果要求多个条件同时满足,这个时候多个条件使用and连接,相当于生活中的并且。

    2. 运算规则

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

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

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

    1. 应用场景
      如果要求多个条件只要有一个条件满足就行,这个时候多个条件用or练剑,相当于生活中的或者。

    2. 运算规则

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

练习一:写出判断一个书是否能够被3或者7或者5整除的条件。

num = 10
print(num, '是否能够被3或者7或者5整除:', num % 3 == 0 or num % 7 == 0 or num % 5 == 0)

练习二:写出判断指定的年份是否为闰年。

闰年:情况一:年份能被4整除但不能被100整除(普通闰年)。
情况二:年份能被400整除(世纪闰年)。

year = 2004
print(year, '是否为闰年:', (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
  1. not逻辑非运算

    1. 应用场景

      如果要对一个条件进行否定,就是有not

age = 19
print(not age > 18)

# 写出不能同时被3和7整除的条件
# 1)能被3整除但是不能被7整除
# 2)能被7整除但是不能被3整除
# 3)既不能被3整除也不能被7整除
num = 12
print((num % 3 == 0 and num % 7 != 0) or (num % 7 == 0 and num % 3 != 0) or (num % 3 != 0 and num % 7 != 0))
# 可以用下面的来代替
print(not num % (3 * 7) == 0)
(了解)逻辑运算度的扩展
  1. 短路操作
  • 逻辑与运算的短路操作:如果第一个条件是False,那么第二个条件对应的语句不会再执行。
  • 逻辑或运算的短路操作:如果第一个条件是True,那么第二个条件对应的语句不会再执行。
True and print('条件2')     # 条件2
False and print('条件2')    # False
True or print('条件2')      # True
False or print('条件2')     # 条件2
  1. 数据的布尔测试(掌握)

    Python中任何类型的数据都可以转换成布尔。

    转换规则:任何为零为空的值都会转换成False,其他的都是True

0 -> False       0.0 -> False       0.000 ->False      '' -> False      "" -> False None -> False    [] -> False        {} -> False        () -> False
#类型转换:bool(数据)  ->  获取指定数据对应的布尔值
print(bool(0))
print(bool(0.0))
print(bool(''), bool(""), bool(None))
print(bool(10), bool(-1))
print(bool(' '), bool("abc"))  # 空格也是True
  1. 运算对象不是布尔值

    python中任何类型的数据都可以作为逻辑运算符的运算对象。

数据1 and 数据2 - 如果数据1的布尔值是否为True,结果就是数据2;如果数据1的布尔值是False,结果就是数据1

数据1 or 数据2 - 如果数据1的布尔值是否为True,结果就是数据1;如果数据1的布尔值是False,结果就是数据2

not 数据1 - 如果数据1的布尔值是否为True,结果就是False;如果数据1的布尔值是False,结果就是True

print(7 and 8)         # 8
print(0 and 10)        # 0
print(-3 and 9)        # 9
print(None and 'abc')  # None
print(False and 100)   # False

print(7 or 8)          # 7
print(0 or 10)         # 10
print(-3 or 9)         # -3
print(None or 'abc')   # abc
print(False or 100)    # 100

print(not 100)         # False
print(not 'abc')       # False
print(not "")          # True

四、赋值运算符

​ 赋值运算符:=+=-=*=/=%=//=**=

重要结论:赋值运算符的作用是给变量赋值,不会产生结果(数据)!!!

# print(a = 10)   报错
a = 10
print(a)
  1. =
    直接将 =右边的数据赋给左边的变量。(=的左边必须是变量)
abc = 20  # 10 = 20 不合法
  1. +=-=*=/=%=//=**=

变量 += 数据 — 将变量中的值取出来和指定进行加法运算,然后将运算的结果重新赋值给变量
注意:变量必须是已经赋值过的变量

num = 100
num += 10    # 与 num = num + 10 同义
print(num)

num -= 20
print(num)   # 90

num *= 2
print(num)   # 180

num %= 3
print(num)   # 0

运算符优先级

1.运算符优先级从高到低:数学运算 > 比较运算 > 逻辑运算 > 赋值运算

2.数学运算符优先级:** > *、/、%、// > +、-

3.有括号先算括号里面的,括号只有小括号。

五、if分支结构

流程控制

流程控制值得是控制程序的执行顺序。

1.顺序结构(默认):代码从上往下一条一条的按顺序执行。

2.选择/分支结构:根据条件选择执行某个操作(if语法)。

3.循环结构:让代码重复执行。(for循环、while循环)。

if分支结构解决的问题:如果…就…

  1. if单分支结构

    1. 解决的问题:如果满足某个条件就执行某个操作,条件不满足的时候对应的操作就不执行。

    2. 语法:

      if 条件语句:
          代码段
      说明:
      if         —   关键字,固定写法
      条件语句     —  任何有结果的表达式(赋值语句不行)
      冒号        —   固定写法,注意是英文的冒号
      代码段      —   和if保持一个缩进的一条或者多条语句,满足条件才会执行的代码
      
    3. 执行过程

      先判断条件语句的布尔值是否为True,如果是就执行代码,否则代码段不执行。

age = 19
if age >= 18:
    print('可以进入网吧')
    print('可以吸烟')

练习1:如果指定的数是偶数就打印’偶数’,否则不打印

num = 9
if num % 2 == 0:
    print(num, '是偶数')

练习2:如果输入的年份是闰年,就打印‘闰年’,否则不打印

year = int(input('请输入年份:'))   # 注意:通过input函数输入的数据类型是字符串,如果要对结果进行数字操作需要先转换
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print('闰年')
  1. if双分支结构:if - else

    1. 解决的问题:满足条件执行某个操作,条件不满足的收回执行另外一个操作。
    2. 语法:
    if 条件语句:
        代码段1
    else:
        代码段2
    
    1. 执行过程

      判断条件语句的布尔值是否为True,如果是执行代码段1,否则执行代码段2。

练习1:根据输入的数据的性质,打印’奇数‘或者’偶数‘。

num = int(input('请输入数字:'))
if num % 2 == 0:
    print('偶数')
else:
    print('奇数')

练习2:写程序判断一个三位数是否是回文数

num = int(input('请输入一个三维整数:'))
if num % 10 == num // 100:
    print('回文数')
else:
    print('不是回文数')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值