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