运算符和分支结构

运算符和分支结构

1.运算符

1.数学运算符:+、-、*、/、%(取余、取模)、//(整除,向上取整)、**(幂运算)

2.比较运算符:>、<、>=、<=、==、!= (所有的比较运算符的运算结果都是布尔值)

3.逻辑运算符:and(逻辑与)、or(逻辑或)、not(逻辑非)

​ not - 逻辑非
​ 应用场景:对一个条件进行否定;如果一个条件正向写很麻烦,但是反向写很简单,就反向写条件然后加not;
​ 运算规则:True变False,False变True;

1)短路操作:

​ and 的短路操作:条件1 and 条件2 - 如果条件1是False,那么条件2对应的代码不会执行
​ or 的短路操作:条件1 or 条件2 - 如果条件1是True,那么条件2对应的代码不会执行

# 验证
True and print('=-=')   # =-=
False and print('=+=')  # False
True or print('+++')    # True
False or print('---')   # ---

2).运算对象不是布尔值

​ 如果表达式的值不是布尔,就转换成布尔再判断;
​ 所有为0和为None的值为False,其他值都是True(python中所有的数据都可以转换成布尔值

4.赋值运算符=、+=、-=、*=、/=、%=、//=、**=

​ 所有的赋值运算都是用来给变量赋值,赋值运算符的左边必须是变量;

​ 复合的赋值运算左边的变量必须是已经赋值过的变量。

5.运算符的优先级

​ 数学运算符(最高) > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
​ 数学运算符:** > *、/、%、// > +、-
​ 如果有括号,先算括号里面的内容。

*6.位运算:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、>>(右移)、<<(左移) - 二进制

# 应用1:判断整数的奇偶性  - 数字对1进行&(按位与)运算,如果结果是1就是奇数,如果结果是0就是偶数
print(18 & 1, 100 & 1, -20 & 1)  # 0 0 0 0
print(11 & 1, 109 & 1, -27 & 1)  # 1 1 1 1
# 应用2:数字 << N  -快速乘 2 ** N ; 数字 >> N  -快速整除 (//)2 ** N
print(4 << 1, 4 << 2)  # 8 16
print(4 >> 1, -5 >> 1)  # 2 -3

2.分支结构

1.if单分支结构 - 满足条件执行代码段,不满足不执行
语法:
if 条件语句:
代码段

说明:

  1. if - 关键字,固定写法;
    2.条件语句 - 任何有结果的表达式:任何类型数据、除赋值语句以外的运算符表达式、函数调用表达式;
    3.:(冒号) - 固定写法。(python中冒号后面一般都需要换行后产生缩进来表示代码块);
    4.代码段 - 和if保持一个缩进(按Tab)的一条或者多条语句;
    在满足条件的时候才会执行的代码段;
    执行过程:先判断条件语句是否为True(如果不是布尔值,就转换成布尔值再判断),如果为True,执行代码段;
if 100:
    pass

if 'abc':
    pass

if 10 + 20:
    pass

a = 100
if a % 2 + 3:
    pass
# if后面不能是赋值语句,if语句代码段至少要有一条语句,在不确定的时候可以先用pass占位;
  1. if双分支结构 - 满足条件执行某个操作,不满足执行另外一个操作
    if 条件语句:
    代码块1(满足条件要执行的代码)
    else:
    代码块2(不满足条件要执行的代码)
    执行过程:
    先判断条件语句是否为True,如果是,执行代码块1,否则执行代码块2;
# 练习3:输入年份,根据年份值打印 '闰年' 或者 '非闰年'
year = int(input('请输入年份:'))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    print('闰年')
else:
    print('非闰年')
  1. if多分支结构 - 根据不同的条件执行不同的操作
    if 条件语句1:
    代码块1
    elif 条件语句2:
    代码块2
    elif 条件语句3:
    代码块3

    else:
    代码块N
    执行过程:
    先判断条件语句1是否为True,如果是直接执行代码块1,然后if语句直接结束;如果为False,就判断条件语句2是否为True,如果是就执行代码块2,if语句结束;以此类推…
    如果前面的条件语句都不满足,则执行else后面的代码块。
# 练习:输入学生的绩点,判断该学生能奖励几杯奶茶
"""
4杯:绩点 > 4
3杯:3.5 <= 绩点 <= 4
2杯:3 <= 绩点 < 3.5
1杯:2.5 <= 绩点 < 3
想都不要想:绩点 < 2.5
"""
grade = float(input('请输入学生的绩点:'))
name = str(input('输入学生的姓名:'))
if grade > 4:
    print(name, '奖励4杯奶茶', sep='')
elif 3.5 < grade <= 4:
    print(name, '奖励3杯奶茶', sep='')
elif 3 < grade <= 3.5:
    print(name, '奖励2杯奶茶', sep='')
elif 2.5 < grade <= 3:
    print(name, '奖励1杯奶茶', sep='')
else:
    print(name, '想都不要想', sep='')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值