python中 算术运算的优先级

算术运算的优先级

一元运算符 正负号 +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 = intinput('月份:'))

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到容器中 没有数据可拿的时候 循环结束

  1. 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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值