01-运算符
1.算术运算符:+、-、*、/和//、%、**
1)一元运算符: 正负号 +17 -89
2)二元运算符
加法 | + |
---|---|
减法 | - |
乘法 | * |
除法 | /和// |
取余 | % |
幂数 | ** |
a = 17
b = 6
print('加法', a + b)
print('减法', a - b)
print('乘法', a * b)
print('除法', a / b) # 结果是浮点型的
print('向下整除', a // b) # 有一个向下取整的操作: 结果是<=商 且最接近于商的整数
print('取余', a % b) # 两数相除 获取余数
print('幂数x的y次方', a ** b)
加法 23
减法 11
乘法 102
除法 2.8333333333333335
向下整除 2
取余 5
幂数x的y次方 24137569
3)优先级别😗*幂数>负号>乘、除、余>加减
提高运算符的优先级别,使用()包含,不管多少层都是()
2.复合赋值运算符:+=、-=、*=、/=、//=、%=、**=
1)简单赋值运算符:=
a =10
print(a) # 10
2)复合赋值运算符:+=、-=、*=、/=、//=、%=、**=
num = 125
num -= 15 # num=num-15=125-15 (num=110)
print(num)
num %= 4 # num=num%4=110%14((num=2)
print(num)
3.比较运算符:>(大于)、>=、<、<=、==、!=
> | 判断前者是否大于后者 |
---|---|
>= | 判断前者是否大于或者等于后者 |
< | 判断前者是否小于后者 |
<= | 判断前者是否小于或者等于后者 |
== | 判断前者是否等于后者 |
!= | 判断前者是否不等于后者 |
比较运算符运行结果是布尔类型的,结果只有两个值True和False
算术运算符优先级别高于比较运算符
a = 17
b = 9
res = a + b > b * 2
print(res) # True
res = a - b <= a % b
print(res) # True
# 判断一个数据是否是偶数 偶数:能被2整除【除以2余数为0】
num = 17
res = num % 2 == 0
print(res) # False
# 1.判断一个数的个位数是否为7
# 思路:获取数据的个位数 除以10 取余数 比如 17除以10 商1 余7 16除以10商1余6
res = num % 10 == 7
print(res) # True
# 2.如何获取十位上的数据????
# 可以将十位上的数 处理成个位上的数 ===== 整除10 245//10 = 24
# 将处理后的结果对10取余 24 % 10=4
# 判断一个数据是否是奇数 除以2余1
res = num % 2 == 1
print(res)
res = num % 2 != 0
print(res)
4.逻辑运算符:and(逻辑与运算),or(逻辑或运算), not(逻辑非运算)
运算逻辑符中 not > and > or
and | 逻辑与运算 | 连接的条件必须同时成立 |
---|---|---|
or | 逻辑或运算 | 连接的条件成立其中一个即可 |
not | 逻辑非运算 | 对条件结果进行取反操作,真变假,假变真 |
# 1.输入一个数,判断这个数是否是3的倍数并且也是7的倍数
num = float(input("请输入一个数:"))
res = num % 3 == 0 and num % 7 ==0
print ( res )
# 2.输入一个数,判断这个数的十位是否为2的倍数并且各位是否是3的倍数
num = float(input("请输入一个数:"))
decade = num // 10 % 10
unit = num % 10
res = (decade % 2 ==0 and decade != 0 ) and (unit % 3 == 0 and unit != 0)
print ( res )
# 1.判断输入的数据是否是3或者5的倍数
num = int (input("请输入一个整数:"))
res = num % 3 == 0 or num % 5 ==0
print ( res )
# 2.判断输入的月份是否是30天
month = int (input("请输入一个月份:"))
res = month == 4 or month == 6 or month == 9 or month == 11
print ( '输入的月份是否是30天的结果',res )
# 1.判断一个数是否不为正数
num = int (input("请输入一个整数:"))
res = not (num > 0)
print ( res )
# 2.输入一个月份,判断其是否在1-12之间
month = int(input("请输入一个月份:"))
res = not (month < 1 or month > 12 )
print( '输入的月份是否在1-12之间的结果',res )
区间形式的范围判断,python可以对其进行简写
res=1<=monh<=12
5.成员运算符:in、not in
整数、小数、布尔值、空值 每个数据都是独立的个体,这些都不是容器型数据`
字符串是一个容器型类型,元素是字符
s = 'hello'
res = 'h' in s
print(res) # True
res = 'hl' in s
print(res) # False
res = 'hl' not in s
print(res) # True
02-流程控制语句
1. 顺序结构语句
特点:代码会从第一行到最后一行逐行运行【每条语句都会执行到】
2.分支结构语句
特点:按照逻辑条件满足与否,决定逻辑操作是否运行 【比如游戏星星数达到3颗才能进入下一关】
3.循环结构语句
特点:没有满足某个条件,就需要一直执行相应的逻辑操作
03-分支结构语句
1.单分支结构
1)解释:在顺序流程过程中,检测数据是否达到某个状态点 如果达到这个状态点按照状态点的流程进行操作,如果没有达到的话 按照原流程进行操作
2)语法:
if 条件:
满足条件执行的操作
3)解读: 如果条件满足,就执行相应的操作
4)注意: 相应的操作的执行,要看条件是否满足,体现这种关系使用的是代码块包含的结构
Python中如何体现代码块包含: 使用冒号+四个空格的缩进 【一般编辑器会默认一个tab键 就是四个空格】
print('从学校出发')
# 需要记录当前的时间点
hour = 17
# 要求 时间在18点之前 进行洗车的操作
if hour < 18:
print('洗车店洗车')
print('回到家中')
2.双分支结构
1)解释:相当于十字路口,是向左还是向右
2)语法:
if 条件:
满足条件执行的操作
else:
不满足条件执行的操作
3)解读:如果条件满足 做事情A 否则做事情B
# 做一个成绩判定器: 判断输入的成绩是及格还是不及格
score = float(input('成绩:'))
if score >= 60:
print('及格')
else:
print('不及格')
3.多分支结构
1)解释:出现了3种以上的选择
2)语法:
if 条件1:
操作1
elif 条件2:
操作2
…
elif 条件n:
操作n
else:(以上条件都不满足 执行的操作,这个else语句可以省略)
3)解读:elif ==== else if(如果与否则是对立面, 执行了如果 就不会执行否则)
# 给成绩分等级
"""
>=90 A
>=80 B
>=70 C
>=60 D
<60 E
"""
score = float(input('请输入成绩:'))
if score >= 90:
print('A')
elif score >= 80: # score 肯定是小于90
print('B')
elif score >= 70: # score < 80
print('C')
elif score >= 60:
print('D')
else:
print('E')
练习
# 1.超市活动,购买金额不足180,支付原金额;在180以上,打八折,金额在三百以上,打六折
pay = float(input('请输入购买金额:'))
if pay <= 180:
print(pay)
elif pay >= 180 and pay <= 300:
print(pay * 0.8)
elif pay > 300:
print(pay * 0.6)
# 2.做一个数据比较器:根据输入的两个数。获取其中的最大值
num1 = float(input('数字1:'))
num2 = float(input('数字2:'))
if num1 > num2:
print(num1)
else:
print(num2)
# 3.录入一个人的身高(单位是m)与体重(单位是kg), 根据bmi=体重/(身高的平方),求出这个人的bmi值
"""
<18.5 偏瘦
在18.5到24.9之间正常
>24.9 偏胖
"""
height=float(input("请输入你的身高(m) :"))
weight=float(input("请输入你的体重(Kg) :"))
bmi = (weight /(height * height))
if bmi < 18.5:
print("偏瘦")
elif bmi >= 18.5 and bmi <=24.9:
print("正常")
elif bmi > 24.9:
print("偏胖")
# 4.模拟用户登录:录入用户名与密码,如果用户名为admin,密码为123456abc,则提示登录成功,否则提示登录失败
username = input('用户名:')
passage = input('密码:')
if username == "admin" and passage == "123456abc":
print('登录成功')
else:
print('登录失败')
4.分支语句嵌套
在满足某个条件的基础上还需要再次进行逻辑判断
"""
需求:
计算加油的金额
因为油号不同 价格不同 优惠也是不一样
92 单价8元/L 添加30L及其以上 打8折 否则按照原价处理
95 单价8.8元/L 添加25L及其以上 打8折 否则按照原价处理
98 单价9.5元/L 添加20L及其以上 打9折 25L及其以上8.5折 30L及其以上8折 否则按照原价处理
"""
oil_num = int(input('请输入油号:'))
litre = float(input('加油的升数(L): '))
# 判断油号
if oil_num == 92:
if litre >= 30:
payment = 8 * litre * 0.8
else:
payment = 8 * litre
elif oil_num == 95:
# pass # 代码块必须有内容 当前没有写逻辑可以使用pass占位
if litre >= 25:
payment = 8.8 * litre * 0.8
else:
payment = 8.8 * litre
else:
# pass # 空白代码块的占位符
# if litre >= 30:
# payment = 9.5 * litre * 0.8
# elif litre >= 25:
# payment = 9.5 * litre * 0.85
# elif litre >= 20:
# payment = 9.5 * litre * 0.9
# else:
# payment = 9.5 * litre
if litre < 20:
payment = 9.5 * litre
elif litre < 25:
payment = 9.5 * litre * 0.9
elif litre < 30:
payment = 9.5 * litre * 0.85
else:
payment = 9.5 * litre * 0.8
print(oil_num, '号油添加', litre, '升的油价是', payment)