算术运算的优先级
一元运算符 正负号 +17 - 89
二元运算符 +
-
*
/或//
%
**
优先级别 **幂数>负号>乘、除、余>加减
复合赋值运算符
简单的赋值运算
=
a=10【将等号右边的数据值给左边的变量名
复合赋值运算符
在进行赋值的时候 先操作了算术运算
+=
-=
*=
/=
num = 125
num -=15 #==>num = num -15 = 125 - 15 =110
print(num)
num=%4 #==>num = num % 4 = 110 % 4 =2
print(num)
num**= 5
print(num) #==> num = num**5
比较运算符
比较两个数据,判断大小
> 判断前者是否大于后者
>= 判断前者是否大于或者等于后者
< 判断前者是否小于后者
<= 判断前者是否小于或者等于后者
== 判断前者是否等于后者
!= 判断前者是否不等于后者
比较运算符运行运行结果是布尔类型,结果只有两个值Ture和False
算术运算符优先级别高于比较运算符
a=17
b=9
res = a+b >b*2
print(res) #Ture
res = a-b <=a%b
print(res) #Ture
#判断一个数据是否是偶数 偶数:能被2整除【除以2余数为0】
num=17
res=num%2==0
print(res)
判断一个数的个数是否为7
获取数据的个位数???? 除以10 取余数 比如17除以10 商1 余7 16除以10 商1余6
res=num % 10 == 7
print(res) #Ture
如何获取十位以上的数据????
1.可以将十位以上的数 处理成个位上的数 ==== 整除10 245//10 = 24
2.将处理后的结果对10 取余 24 % 10 = 4
判断一个数据是否为奇数 除以 2余1
res = num % 2 == 1
print(res)
res = num % 2 != 0
print(res)
逻辑运算符
逻辑运算符是来操作逻辑关系的
逻辑与and
连接的条件必须同时成立【也就是条件之间是并且的关系】,结果才是成立的
逻辑或or
连接的条件成立其中一个即可【也就是条件之间的关系是或者关系】4
逻辑非not
对条件结果进行去翻操作,真变假,假变真
大学中评奖学金 平均成绩和绩点
平均成绩在90 以上 并且 绩点在4.5以上
定义两个变量 表示成绩和绩点
score=float(input('请输入平局成绩:'))
gpa= float (input('请输入绩点:'))
res = score >90 and gpa >4.5
print(res)
练习
1.输入一个数 判断是否为三的倍数 并且是7 的倍数
2.输入一个数 判断这个数的十位是否为2的倍数 并且 个位是否是3的倍数
1.num = int(input('请输入一个整数:'))
res = num % 3 == 0 and num % 7 == 0
print (res)
2.num = int(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 or 条件2
其中一个条件即可
#判断一个年是否为润年
#闰年:分为两种分为普通闰年和世纪闰年
#普通闰年:能被4整除但不能被100整除 2020年
#世纪闰年:能被400整除 2000年
#普通闰年和世纪闰年满足其中一个要求就是闰年
year = int (input('请输入年份:'))
common = year % 4 == 0 and year% 100 != 0
century = year % 400 == 0
res = common or century
#第二种res=(year % 4 == 0 and year % 100 !=0) or (year % 400 == 0)
print(res)
#判断输入的月份是否为第三个季度的 7月8 月9月
month = int(input('月份:'))
res = month == 7 or month == 8 or month== 9
print('输入的月份是否是第三季度的结果:',res)
判断输入的数据是否是3 或者 5 的倍数
判断输入的月份的天数是否是30天
# num = int(input('请输入一个数据:'))
# res = num % 3 or num % 5
# print(res)
#
# month = int(input('月份:'))
# res = month == 4 or month == 6 or month == 9 or month == 11
# print(res)
# 逻辑非not
# 对逻辑结果取反: not条件
# 如果条件是成立的 not之后结果就为false
# 如果条件是不成立的 not之后 结果就是Ture
# num = int(input('请输入整数:'))
# res = not(num % 2 == 0 )
# print(res)
#
# # 判断一个数是否能被3 或者 7 整除 但是不能同时被3和7 整除
# num = int(input('请输入整数:'))
# res = (num % 3 == 0 or num % 7 == 0 ) and not (num % 3 == 0 and num % 7 == 0)
# print(res)
# 练习
# 判断一个数是否不为正数
# 输入一个月份 判断其是否在 1-12 之间
num = float(input('请输入一个数:'))
res = not(num > 0)
print(res)
month = int(input('月份:'))
res = not(month < 1 or month> 12)
print(res)
成员运算符
成员: 众多的一个
这个运算符是应用在容器型数据的元素判断的
判断数据是否在某个容器型数据中
整数、小数、布尔值、空值 每个数据都是独立的个体,这些都不是容器型数据
10 3.14 True None
字符串是一个容器型类型,元素是字符【长度为1 的字符串成为字符,比如’a’,‘0’, ’ ']
字符串就是由 0 个或者多个字符拼接起来的
0个字符的情况下 称为空字符串 ’ '[是个空箱子]
成员运算符 in
格式 : 数据 in 容器型数据
逻辑 : 把数据当做一个整体,判断数据是否包含在容器中
格式:数据not in 容器类型数据
判断数据是否不在容器中
s = 'hello'
res = 'h'in s
print(res)
s = 'hello'
res = 'hl' in s
print(res)
res = 'hl' not in s
print(res)
流程控制语句
通过代码逻辑控制程序的执行流程
程序的流程有三种情况
1.顺序结构语句 , 特点 : 代码会从第一行到最后一行逐行运行【每条语句都会执行到】
2.分支结构语句, 特点:按照逻辑条件满足与否,决定逻辑操作是否运行【比如游戏星星数达到3个才能进入下一关】
3.循环结构语句, 特点: 没有满足某个条件,就需要一直执行相应的逻辑操作
分支结构语句
三种形态
1.单分支结构:在顺序流程过程中 检查数据是否达到某个状态 如果达到这个状态点按照状态点的流程进行操作 如果没有达到的话 按照原流程进行操作
例如:
学校 — 回家
如果时间比较早 在6点之前到家 先去洗车—再回家
语法:
if 条件:
满足条件执行的操作
解读: 如果条件满足 就执行相应的操作
注意: 相应的操作的执行 要看条件是否满足 体现
2.双分支结构
相当于十字路口,向左还是向右
语法:
if条件:
满足条件执行
else:
不满足条件执行的操作
解读:
如果条件满足 做事A 否则做事情B
3.多分支结构
出现了3 种及其以上的选择
语法:
if 条件1:
操作1:
elif 条件2:
操作2
…
elif条件n:
操作n
else :
以上条件都不满足 执行的操作
这个else语句可以省略
elif === else if
如果与否者是对立面 执行了如果就不会执行否者
print('从学校出发')
# 需要记录当前的时间点
hour = 17
# 要求 时间在18点之前 进行洗车的操作
if hour < 18:
print('洗车店洗车')
print('回到家中')
# 简单双分支的例子
# 做一个成绩判定器: 判断输入的成绩是及格还是不及格
score = float(input('成绩:'))
if score >= 60:
print('及格')
else:
print('不及格')
# 多分支的案例
# 给成绩分等级
"""
>=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以上 打8折,金额在300以上打6折
录入购买金额,计算出支付金额
2.做一个数据比较器:根据输入的两个数 获取其中一个的最大值
3.录入身高(单位是m)、体重(单位是kg),计算一个人的BMI值,判定身体状况
BMI小于18.5偏瘦
BMI在18.5到24.9之间正常
BMI大于24.9偏胖
4.模拟用户登录:录入用户名与密码,如果用户名为admin 密码为123456abc 则提示登录成功 否则提示登录失败
# 1. 超市活动,购买金额不足180,支付原金额,在180以上 打8折, 金额在300以上打6折
# 录入购买金额,计算出支付金额
# money = float(input('请输入购买金额:'))
# if money > 300:
# payment = money * 0.6
# elif money > 180:
# payment = money * 0.8
# else:
# payment = money
# print('支付金额为', payment)
# 2. 做一个数据比较器:根据输入的两个数 获取其中的最大值
# num1 = float(input("a:"))
# num2 = float(input('b:'))
# if num1 > num2:
# print('a比较大,a的值为', num1)
# else:
# print('b比较大,b的值为', num2)
# 3. 录入身高(单位是m)、体重(单位是kg),计算一个人的BMI值,判定身材状况
# BMI小于 18.5 偏瘦
# BMI在18.5到24.9之间正常
# BMI大于24.9 偏胖
# height = float(input('身高(m):'))
# weight = float(input('体重(kg):'))
# bmi = weight / height ** 2
# if bmi < 18.5:
# print('偏瘦')
# elif bmi <= 24.9:
# print('正常')
# else:
# print('偏胖')
# 4. 模拟用户登录:录入用户名与密码,如果用户名为admin 密码为123456abc 则提示登录成功 否则提示登录失败
# username = input('用户名:')
# password = input('密码:')
# if username == 'admin' and password == '123456abc':
# print('登录成功')
# else:
# print('登录失败')
分支语句嵌套
在满足某个条件的基础上还需要再次进行逻辑判断
需求:计算加油的金额
因为油号不同价格是不同 优惠也是不一样的
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)
循环结构语句
循环 :周而复始 重复做同一件事
一直重复操作 ,没有终止,在编程称为死循环【在程序中是要避免的 --程序卡死】
常见的循环技术状态:
1.循环满N次 比如:体育测试:围着操场跑满5圈
2.循环达到某个条件 比如体育测试: 跑满1000米
python提供的循环操作,有两个结构:
1.for in 循环 适合于循环满N次的情景
本质上是在遍历【逐个获取】容器型数据,在遍历获取元素的过程中进行相应的逻辑判断
容器型数据中有几个元素,这个循环就执行几次
语法:
for 变量名 in 容器型数据:
循环体
解读:
in可以理解成进入容器中拿元素数据
变量名 in进入拿到数据之后 赋值给变量名
循环结束点: in到容器中 没有数据可拿的时候 循环结束
- while 循环
s='hello'
#逐一将字符串中的元素提取出来
for ch in s:
print(ch)
#跑了一圈
# 获取字符串中小于l的字符
# 逻辑 获取到元素之后 要对其进行判断 判断是否是小于l的
for ch1 in s:
if ch1 < 'l':
print(ch1)
range(stop)
设定一个结束值,等差数列是从0开始 步长为1 到stop【不包含】结束
range(10) ===> 0 1 2 3 4 5 6 7 8 9
range(start,stop)
设定了起始和结束值 等差数列是从start【包含】开始 步长为1 到stop【不包含】结束
range(start,stop,step)
step 步长
正数 ------- 生成的是递增的等差数列 要求 起始值< 结束值
负数---------生成的是递减的等差数列 要求 起始值>结束值
stop结束位置【不包含】
start开始位置【包含】
range(1,10,2)====> 1 3 5 7 9
ranfe (10,0,-2)======> 10 8 6 4 2
range (100) ===>0-99
for ele in range (1, 101):
print('跑第',ele ,'圈')
for ele1 in range (0,100,5):
print(ele1)