运算符和分支结构

运算符和分支结构

运算符

数学运算符
+
-
*
/
求余数,取余%
整除//
幂运算**

1,+ ,- , * ,/和数学中+,-,*,/的功能是一样的

print(1 + 3)  #4
print(7 - 2)  #5
print(2 * 8)  #16
print(4 / 1)  #4.0
1),% - 求余数,取值

x % y - 求x除于y的余数

print(5 % 2)  #1
print(16 % 2) #0

应用1:判断一个数是否能够被另外一个数整除(看余数是否为0)

print(15 % 5)

应用2:取低位数(对10或者10的幂次方取余)

num = 2398
print(num % 10)  #8  除于10取个位数取值
print(num % 100)   #98   同理

num1 = 1344
print(num1 % 10)  #4
print(num1 % 100) #44
2), // - 整除

x // y - x除于y的商向小取整

print(5 // 2) #2   2  2.5  3   找到整除结果相近的两个整数,取较小的那个
print(1.8 // 2) #0,0  0  0.9  1
print(-5 // 2)   #-3   -3  -2.5  -2

应用:正整数去掉低位

num = 23456
print(num // 10)  #2345  除于10去掉个位的值
print(num // 100) #234

练习1:获取指定正整数的十位数

num = 3945
print(num // 10 % 10)  #4

num1 = num // 10  
num2 = num1 % 10  
print(num2)   #4

print(num % 100 // 10)  #4

练习2:获取指定正整数的百位数

num = 3945
print(num //100 % 10)  #9
print(num % 1000 // 100)  #9
3) , 幂运算 - **

x ** y - 求x的y次方

print(2 ** 3)  #8
print(16 ** 0.5)  #4.0
print(27 ** (1/3)) #3.0
print(2.2 ** 2)  #4.840000000000001
print(2.0 ** 2)  #4.0
# 10 -> 2 ** 3 + 2 ** 1
# 45 -> 2 ** 5 + 2 ** 3 + 2 ** 2 + 2 ** 0
#1/2 ** x1 + 1/2 ** x2 + ······
# 0.2 - 1/8 + 1/16 + 1/128 + ·····
# 0.2 = 0.125 + 0.0625 + 0.0078125 + ···

2,比较运算符

比较运算符:>(大于),<(小于),>=(大于等于),<=(小于等于),==(等于),!=(不等于)
重要结论:所有比较运算的运算结果都是布尔

print(10 > 20)    #False
print(10 < 20)    #True
print(10 >= 10)   #True
print(20 == 10)   #False
print(20 != 10)   #True

注意:python中的比较预算符可以像数据一样通过连写来表示范围

age = 20
print(18 <= age <= 28)  #True

3,逻辑运算符

逻辑运算符:and(逻辑与运算符),or(逻辑与运算),not(逻辑非)

1),and - 逻辑与运算符
'''
1)应用场景:相当于生活中中的并且,用于连接需要同时满足的多个条件
2)运算规则:两个都是True 结果就是True ,只要有一个False结果就都是False
条件1 and 条件2
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)运算规则:只要有一个是True结果就是True,两个都为False结果才是False
True or True - True
True or False - True
False or True - True
False or False - False
"""

练习1

gpa = 4.0
scora = 95
# 拿奖学金的条件:绩点高于4或者操评分不低于95
print('是否可以拿奖学金',gpa >= 4 or scora >= 95) #True

练习:判断指定得到年是否是闰年

其判断方法为:公历年份是4的倍数,且不是100的倍数,为普通闰年。
只有是400的倍数才是世纪闰年。

year = 2020
print('指定年是否是闰年',(year % 4 == 0 and year % 100 != 0) or year % 400 == 0) #True
3),逻辑非 - not

not 条件 - 否定条件

"""
1)应用场景;对指定条件进行否定条件(取反),
一般用于正向条件情况很多很复杂,反向条件却很简单的时候,条件就反向写然后加not
2)运算规则:
not True   -  False
not False  -  True
"""

举例

# 年龄大于18:age > 18
# 年龄不大于18:age <= 18  not age >18
num = 18
print(num == 18) #True
print(not num == 18,num != 18) #False False

练习:写出一个不能被3和7整除的条件

# 能被3整除不能被7整除
# 能被7整除不能被3整除
# 既不能被3整除也不能被7整除
print(not num % 21 == 0) #True
4),短路操作
# 条件1 and 条件2  -  如果条件1是False,那么条件2不会执行
# 条件1 or 条件2  -  如果条件1是True,那么条件2不会执行
True and print('与运算的条件2') #与运算的条件2
False or print('或运算的条件2') #或运算的条件2

5,逻辑运算符的拓展 - 运算对象不是布尔值

"""
数据1 and 数据2  -  如果数据1的布尔值是True,结果就是数据2,否则结果是数据
数据1 or 数据2  -  如果数据据1的布尔值是True,结果就是数据1,否则结果是数据2 
"""
print(8 and 7)#7
print(0 and 2) #0
print(False and 3)#False

print(8 or 9)#8
print(0 or 7)#7
# (特别重要)6,数据的布尔值  -  数据转换成布尔的结果
# python中所有类型的数据都有布尔值
# 所有的零值和空值对应的布尔值是False,其他数据的布尔值都是True
# 常见的零值和空值:0,0.0,0.00,'',"",[],{},(),None
print(bool(0),bool(0.0),bool('')) #False False False
print(bool(12),bool(-9.1212),bool('ban')) #True True True

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

(重要)重要结论:所有的赋值运算符的 功能都是给变量赋值不会产生一个结果(赋值运算的表达方式没有结果),所有赋值运算符的左边必须是变量

a = 10
10 > 20
# print(a = 10)  报错
print(10>20)
1),=

定义:变量或者重新给变量赋值的时候使用

name = 20
num = 10 * 20
print(num)
2),+=,-=,*=,/=,%=,//=,**=

要求:赋值符号前面的变量必须是已经定义过变量

# 变量 += 数据 -> 变量 = 变量 + 变量
b = 10
b += 2
print(b)  #12

b -= 3
print(b)  #9

b **= 2
print(b)  #81

b %= 2
print(b)  #1
3),运算符的优先级

数学和运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

** > *,/,%,// > +,-
# 有括号先算括号里面的
b = 10 + 20
c = 10 < 5 * 3 #c = 10 < 15  ->  c = True
print(c)

5,分支结构

1),流程控制
"""
1)顺序结构(默认) - 代码从上往下依次执行,每条语句执行一次
2)分支结构 - 代码的执行看条件是否成立(if语句)
3)循环结构 - 让代码重复(for,while)
"""
2),if分支结构
1]if单分支结构(满足条件操作才执行,不满足条件操作不执行)
"""
语法:
if 条件语句:
    代码段
说明
if   -   关键字,固定写法
条件语句  -  仍和有结果的表达式,例如:数据,运算表达式(赋值运算除外),函数调用表达式等
:    -    固定写法
代码段  -  就是和if保持一个缩进的一条或多条语句(至少一条) :就是需要满足条件才执行的代码

执行过程
先判断条件语句是否是True(如果条件语句的结果不是布尔,就转换成布尔再看),
如果为True就执行代码段,否则代码不执行
    
"""
a = 100
if a > 10:
    print('代码1')

练习1:如果指定的数量是偶数就打印‘偶数’

num = 23
if num % 2 == 0:
    print('偶数')
#了解
if not num % 2:
    print('偶数')

练习2:如果指定的数量是偶数就打印‘奇数’

# 方法1
if num % 2 != 0:
    print('奇数') # 奇数
#方法2
if num % 2:
    print('奇数') # 奇数

练习3:判断指定的数据是否是水仙花数

num = 345
# 5 ** 3 + 4 ** 3 + 3 ** 3 = 216 1= 345 (不是水仙花数)
# 153:1 ** 3 + 5 ** 3 + 3 ** 3 = 153 == 153 (是水仙花数)
a = num % 10
b = num % 100 // 10
c = num // 100
if a ** 3 + 4 ** 3 + c ** 3 == num:
    print('是水仙花数')  
2]if双分支结构 - 满足条件执行某个操作,条件不满足时执行另一个操作
"""
语法:
if 条件语句:
    代码段1(满足条件才执行的代码)
else:
    代码段2(条件不满足的时候才执行的代码)
代码段3(不管条件满足不满足都要执行的代码)            
"""

练习:根据年龄值打印成年或者为成年

age = 28
if age < 18:
    print('未成年') 
else:
    print('成年') #成年
3]if多分支结构 - 根据不同的条件做不一样的事情
# if-elif-elif-...-else
"""
语法:
if 条件语句1:
    代码段1
elif 条件语句2:
    代码段2    
elif 条件语句3:
    代码段3
...
else:
    代码段n

前提:多个条件中如果其中一个条件满足,其他的条件绝对不会满足

if 条件1:
    代码段1
if 条件2:
    代码段2
...
"""

练习:将指定百分制的分数分成A(90以上)/B[80,90]/C[60,80)/D(60以下)/四个等级

score = 90
if score > 90:
    print('A')
elif 80 <= score:
    print('B')
elif 60 <= score:
    print('C')
else:
    print('D')   #B
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值