前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【Python】运算符详解:从基础到高级,掌握数据操作的利器

【Python】运算符详解:从基础到高级,掌握数据操作的利器

作者头像
小言从不摸鱼
发布2024-10-22 15:48:44
发布2024-10-22 15:48:44
17600
代码可运行
举报
文章被收录于专栏:机器学习入门机器学习入门
运行总次数:0
代码可运行

学习目标 🍀 熟练掌握Python运算符

🍔 运算案例

需求:用户手工输入梯形的上底、下底以及高,能直接通过Python打印出梯形的面积为多少。

🍔 算术运算符

所谓的算数运算符就是我们日常生活中的加减乘除等待。

运算符

描述

实例

+

1 + 1 输出结果为 2

-

1 - 1 输出结果为 0

*

2 * 2 输出结果为 4

/

10 / 2 输出结果为 5

//

整除

9 // 4 输出结果为 2

%

取余(取模)

9 % 4 输出结果为 1

**

幂指数

2 ** 4 输出结果为 16,即2的4次方,2 * 2 * 2 * 2

()

小括号

小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9

案例1:了解一下算术运算符

代码语言:javascript
代码运行次数:0
复制
num1 = 10
num2 = 2
​
# 四则运算 + - * /
print(f'加:{num1 + num2}')
print(f'减:{num1 - num2}')
print(f'乘:{num1 * num2}')
print(f'除:{num1 / num2}')

案例2:和其他编程语言不太相同的几个算术运算符

代码语言:javascript
代码运行次数:0
复制
num1 = 20
num2 = 6
num3 = 5
​
# 1、整除
print(f'整除:{num1 // num2}')
# 2、求余数
print(f'余数:{num1 % num2}')
# 3、幂指数
print(f'幂指数:{num2 ** 3}')
# 4、圆括号
print(f'优先级:{(num1 + num2) * num3}')

🍔 算术运算符案例:求梯形的面积

知识点:用户输入、数据类型转换以及算术运算符

代码语言:javascript
代码运行次数:0
复制
a = float(input('请输入上底:'))
b = float(input('请输入下底:'))
h = float(input('请输入高:'))
​
s = (a + b) * h / 2
​
print(f'梯形的面积:{s}')

🍔 赋值运算符

运算符

描述

实例

=

赋值

将=右侧的结果赋值给等号左侧的变量

案例1:把某个值赋值给某个变量

代码语言:javascript
代码运行次数:0
复制
num = 10

案例2:多个变量同时进行赋值操作

代码语言:javascript
代码运行次数:0
复制
n = 5
f = 10.88
s = 'hello world'

简写为:

代码语言:javascript
代码运行次数:0
复制
n, f, s = 5, 10.88, 'hello world'
print(n)
print(f)
print(s)

案例3:多个变量赋予相同的值

代码语言:javascript
代码运行次数:0
复制
a = 10
b = 10

简写为:

代码语言:javascript
代码运行次数:0
复制
a = b = 10

🍔 复合赋值运算符

复合赋值运算符 = 算术运算符 结合 赋值运算符

复合赋值运算符的计算顺序 = 先执行算术运算符,执行完毕后,把结果在赋值给左边的变量。

案例:综合案例

代码语言:javascript
代码运行次数:0
复制
i = 1
# 相加并赋值,先加1,然后把结果赋值给左边的变量
i += 1
print(f'更新后,i的值为:{i}')
​
num1 = 9
# 取模并赋值,先求余数,然后在把结果赋值给左边的变量
num1 %= 2
print(f'更新后,num1的值为:{num1}')
​
num2 = 2
# 幂指数并赋值,先求幂指数,然后把结果赋值给左边的变量
num2 **= 3
print(f'更新后,num2的值为:{num2}')

🍔 比较运算符

特别注意:当我们使用比较运算符对两个变量进行比较时,其返回一个布尔类型的值。

案例:两个数大小的比较

代码语言:javascript
代码运行次数:0
复制
num1 = 10
num2 = 20
​
print(num1 > num2)  # False
print(num1 < num2)  # True
print(num1 >= num2) # False
print(num1 <= num2) # True
print(num1 == num2) # False
print(num1 != num2) # True

🍔 练习题

练习题1:提示用户输入圆的半径,根据公式S = πr2求圆的面积

代码语言:javascript
代码运行次数:0
复制
r = float(input('请输入要计算圆的半径:'))
PI = 3.14
s = PI * r ** 2
print(f'圆的面积为:{s}')

练习题2:赋值运算 => 输入身高,体重,求BMI = 体重(kg)/身高(m)的平方。

代码语言:javascript
代码运行次数:0
复制
height = float(input('请输入您的身高(m):'))
weight = float(input('请输入您的体重(kg):'))
​
bmi = weight / height ** 2
​
print(f'您的BMI值为{bmi}')

🍔 逻辑运算符(与或非)

not就是取反,只有一个表达式not 表达式,如果表达式为True,则not以后就返回False。反之,则返回True。

and :逻辑与,只有当两边的表达式全部为真,则最终结果返回为真,否则返回为假。

x :False

y :False

result = x and y

or :逻辑或,只要有一方为真,则整个表达式的返回结果就为真。除非两边的表达式都为假,则整个结果返回为假。

result = x or y

讲个非诚勿扰的小故事:

① 女孩子要求比较高,要求男孩子必须要有房且有车

代码语言:javascript
代码运行次数:0
复制
表达式1 and 表达式2
当表达式1为True且表达式2为True时,则整个表达式返回结果为True
当表达式1或表达式2中有一个表达式为假,则整个表达式返回结果为False
​
​
有房 and 有车  则  牵手成功
有房 and 没车  则  牵手失败
没房 and 有车  则  牵手失败

② 女孩子要求一般,要求男孩子有房或者有车即可

代码语言:javascript
代码运行次数:0
复制
表达式1 or 表达式2
当表达式1为True或表达式2为True时,则整个表达式返回结果为True
当表达式1与表达式2都为False时,则整个表达式才会返回False
​
​
有房 or 有车  则  牵手成功
有房 or 没车  则  牵手成功
没房 or 有车  则  牵手成功
没房 or 没车  则  牵手失败

逻辑与、或、非,其最终的返回结果也是一个布尔类型的值,True或False。另外在实际工作中,逻辑运算符也主要和if分支结构相结合。

案例:

代码语言:javascript
代码运行次数:0
复制
a = 1
b = 2
c = 3
​
print((a > b) and (b > c))  # False
print((a > b) or (b > c))   # False
print((a < b) or (b > c))   # True
print(not (a > b))          # True

🍔 扩展:短路运算

在Python代码中,逻辑运算符的运算,要遵循==短路运算==原则。

① 表达式1 and 表达式2,如果表达式1条件为真,则最终的运算结果由右边的表达式2来决定。如果表达式1条件为假,则最终结果为假。其右边的表达式2不需要在进行运算。

② 表达式1 or 表达式2,如果表达式1为真,则最终的运算结果由表达式1来决定,为真。如果表达式1为假,则最终结果由表达式2来决定。如果表达式2为真,则最终结果为真,如果表达式2为假,则最终结果为假。

代码语言:javascript
代码运行次数:0
复制
print(3 and 4 and 5)  # 5
print(5 and 6 or 7)   # 6
4 > 3 and print('hello world')  # 输出hello world

在逻辑运算中,不一定逻辑运算符的两边都是纯表达式,也可以是数值类型的数据或字符串类型的数据。

==Python把0、空字符串和None看成 False,其他数值和非空字符串都看成 True==,所以:

① 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

代码语言:javascript
代码运行次数:0
复制
print(3 and 4)  # 4
print(0 and 1)  # 0

② 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。 所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

代码语言:javascript
代码运行次数:0
复制
print(6 or 7)  # 6
print(6 and 7 or 8)  # 7

🍔 运算符的优先级

什么是运算符的优先级?其实我们小学就已经接触过了,就是在一个表达式中,我们先算谁的问题。

先算乘除,后算加减,有括号的先算括号里面的。

个人建议:

① 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,尝试把它拆分来书写

② 不要过于依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用( )来控制表达式的执行顺序

💘若能为您的学习之旅添一丝光亮,不胜荣幸💘 🐼期待您的宝贵意见,让我们共同进步共同成长🐼

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🍔 运算案例
  • 🍔 算术运算符
  • 🍔 算术运算符案例:求梯形的面积
  • 🍔 赋值运算符
  • 🍔 复合赋值运算符
  • 🍔 比较运算符
  • 🍔 练习题
  • 🍔 逻辑运算符(与或非)
  • 🍔 扩展:短路运算
  • 🍔 运算符的优先级
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档