第三课
1.算术运算符的优先级
'''
运算符
算数运算符
一元运算符: 正负号
二元运算符
加法 +
减法 -
乘法 *
除法 /和//(整除)
取余 %
幂数 **
优先级 **幂数>负号>乘除余>加减
提高运算符的优先级使用()包含不管多少层都是()
'''
print(-2**2)
print((-2)**2)
print(-2*-4)
2.复合赋值运算符
'''
简单的赋值运算符
=
a=10[将等号右边的数据赋值给左边的变量名]
复合赋值运算符
在进行赋值的时候先操作了算术运算
+=
-=
*=
/=
//=
%=
**=
'''
num=125
num -=15
print(num)
num %=4
print(num)
num **=4
print(num)
3.比较运算符
'''
比较运算符
比较两个数据,判断大小
> 判断前者是否大于后者
> 判断前者是否大于或者等于后者
< 判断前者是否小于后者
< 判断前者是否小于后者或者等于后者
== 判断前者是否等于后者
!= 判断前者是否不等于后者
运算结果是布尔类型的只有true和false
算数运算符优先级别高于比较运算符
'''
a=17
b=9
res=a+b>b*2
print(res)
num=17
res=num%2==0
print(res)
res=num%10==7
print(res)
'''
1.判断十位数是否为 先处理成个位上的数===整除10 245//10=24
2.将处理后的结果对10取余 24%10=4
'''
res = num % 2 == 1
print(res)
res = num % 2 != 0
print(res)
4.逻辑运算符
'''
逻辑运算符是来操作逻辑关系的
逻辑与 and
连接的条件必须同时成立(并且)结果才成立
逻辑或 or
连接的条件成立其中一个即可(或者)
逻辑非 not
对条件结果去反操作真变假,假变真
'''
score=float(input('请输入成绩'))
gpa=float(input('请输入绩点'))
res=score>90 and gpa>4.5
print(res)
num=int(input('请输入一个数'))
res=num%7==0 and num%3==0
print(res)
num=int(input('请输入一个数'))
res=(num%10%3==0 and num%10%3!=0) and (num//10%10%2==0 and num//10%10%2!=0)
print(res)
'''
逻辑或 or
条件 1 or 条件 2
其中一个条件成绩即可
'''
'''
闰年:分为普通闰年和世纪闰年
普通闰年能被4整除但不能被100整除
'''
year=int(input('请输入年份'))
res=(year%4==0 and year%100!=0 or year%400==0)
print(res)
month=int(input('请输入月份呢'))
res=month==7 or month==8 or month==9
print(res)
num=int(input('请输入一个数'))
res=num%3==0 or num%5==0
print(res)
month=int(input('请输入月份'))
res= month==4 or month==6 or month==9 or month==11
print(res)
'''
逻辑非 not
对逻辑结果取反 not 条件
如果条件是成立 not 之后 结果就为false
如果条件是不成立的 not 后 结果就是true
'''
num=int(input('请输入整数'))
res=not(num%2==0)
print(res)
num=int(input('请输入一个数'))
res=(num%7==0 or num%3==0) and not(num%21==0)
print(res)
num=int(input('请输入一个数'))
res=not (num>0)
print(res)
month=int(input('请输入一个月份'))
res=not((month<1)or(month>12))
print(res)
1<=month<=12
5.成员运算符
'''
成员:众多中的一个
这个运算符是应用在容器型数据的元素判断的
判断数据是否在某个容器型数据中
整数 小数 布尔值 控制 每个数据都是独立的个体都不是容器型数据
字符串是一个容器型类型元素是字符【长度为1的字符串被称为字符比如‘a’】
字符串是由0或者多个字符串拼接起来的
0个字符的情况下称为空字符串
成员运算符in
格式 数据in容器型数据
逻辑 把数据当作一个整体,判断数据是否包含在容器中
格式 数据not in 容器型数据
判断是否不在容器中
'''
s='hello'
res= 'h' in s
print(res)
res= 'hl' in s
print(res)
res= 'hl'not in s
print(res)
6.分支结构化语句
'''
1.单分支结构
在顺序流程过程中检测数据是否达到某个状态点如果达到这个状态点按照状态点的流程进行操作
如果没有到达 按照原流程进行操作
2.双分支结构
相当于十字路口,是向左还是向右
语法:
if 条件:
满足条件执行操作
else
满足条件执行操作
2.多分支结构
出现了三种极其以上的选择
语法:
if 条件1:
操作一
elif 条件2
操作二
elif 条件n
操作n
else:
以上条件都不满足执行的操作
以上条件都不满足执行的操作'''
print('从学校出发')
hour=17
if hour <18:
print('洗车店洗车')
print('回到家中')
score=float(input('成绩:'))
if score>=60:
print("及格")
else:
print("不及格")
score=float(input('请输入成绩'))
if score>=90:
print("a")
elif score>=80:
print("b")
elif score>=70:
print("c")
elif score>=60:
print("d")
else:
print("e")
p=int(input('请输入金额'))
if p>=300:
print("需要支付",p*0.6)
elif p>=180:
print("需要支付", p * 0.8)
else:
print("需要支付",p)
num1=int(input('请输入第一个数'))
num2=int(input('请输入第二个数'))
if num1>num2:
print('第一数个大',num1)
else:
print('第二数个大', num2)
h=float(input('请输入身高(米)'))
w=float(input('请输入体重(kg)'))
bmi=w/(h*h)
if bmi>24.9:
print('偏胖')
elif bmi>18.5:
print('正常')
else:
print('偏瘦')
z=input('请输入用户名')
m=input('请输入密码')
if ('admin'in z) and ('123456asd'in m):
print('登陆成功')
else:
print('登陆失败')
'''
分支语句嵌套
在满足某个条件的基础上还需要再次进行逻辑判断
'''
'''
需求:
计算加油的金额
因为油号不同 价格不同 优惠也是不一样
92 单价8元/L 添加30L八折处理否则原价处理
95 单价8.8元/L 添加25L八折处理否则原价处理
98 单价9.5元/L 添加20L九折 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 < 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)
7.循环
'''
循环:周而复始重复做同一件事情
一直重复操作没有终止在编程里被称为死循环(要避免)
常见循环结束状态;
1.循环满n次
2.循环达到某个条件
python中提供两个结构
1.for-in 循环(适合循环满N次的情节)
本质上是在遍历【逐个获取】容器型数据在遍历获取元素的过程中进行
相应的逻辑判断
容器型数据中有几个元素这个循环就执行几次
语法;
for 变量名 in 容器型数据
循环体
解读
in 可以理解成进入容器中拿元素数据
变量名 in 进入拿到数据之后 赋值给变量名
循环结束点 in 到容器中 没有数据可拿的时候循环结束
2.while循环
'''
s='hello'
for ch in s:
print(ch)
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步长
正数--生成递增等差数列 起始>结束
负数--生成递减等差数列 起始>结束
'''
for i in range(100):
print(i)