Python学习100天(从入门到精通系列文章)
文章目录
- Python学习100天(从入门到精通系列文章)
- 前言
- 一、运算符优先级总览
- 二、算术运算符
-
- 2.1 基本算术运算
- 2.2 运算优先级
- 三、赋值运算符
-
- 3.1 基本赋值与复合赋值
- 3.2 海象运算符(Python 3.8+)
- 四、比较运算符和逻辑运算符
-
- 4.1 比较运算符
- 4.2 逻辑运算符
- 五、运算符应用实战
-
- 5.1 例子1:华氏温度转摄氏温度
- 5.2 例子2:计算圆的周长和面积
- 5.3 例子3:判断闰年
- 总结
前言
上节课我们学习了Python中的变量,掌握了如何用变量来存储和操作数据。有了变量之后,下一步自然就是学习如何对变量进行运算。今天这篇文章将带你全面了解Python中的各种运算符和表达式,这是编程中最核心的基础之一。
一、运算符优先级总览
在Python中,运算符按照优先级从高到低排列如下:
| []、[:] | 索引、切片 |
| ** | 幂 |
| ~、+、- | 按位取反、正号、负号 |
| *、/、%、// | 乘、除、模、整除 |
| +、- | 加、减 |
| >>、<< | 右移、左移 |
| & | 按位与 |
| ^、| | 按位异或、按位或 |
| <=、<、>、>= | 小于等于、小于、大于、大于等于 |
| ==、!= | 等于、不等于 |
| is、is not | 身份运算符 |
| in、not in | 成员运算符 |
| not、or、and | 逻辑运算符 |
| =、+=、-=、*=、/=、%=、//=、**=、&=、|=、^=、>>=、<<= | 赋值运算符 |
说明:所谓优先级就是在一个运算表达式中,如果出现了多个运算符,应该先执行什么再执行什么的顺序。如果搞不清楚优先级,可以使用圆括号(小括号)来确保运算的执行顺序。
二、算术运算符
2.1 基本算术运算
Python中的算术运算符非常丰富,除了加、减、乘、除之外,还有整除、求模(求余数)和求幂运算符:
"""
算术运算符
"""
print(321 + 12) # 加法运算 → 333
print(321 – 12) # 减法运算 → 309
print(321 * 12) # 乘法运算 → 3852
print(321 / 12) # 除法运算 → 26.75
print(321 // 12) # 整除运算 → 26
print(321 % 12) # 求模运算 → 9
print(321 ** 12) # 求幂运算 → 1196906950228928915420617322241
2.2 运算优先级
算术运算遵循"先乘除后加减"的原则,求幂运算的优先级高于乘除法。使用圆括号可以改变运算顺序:
print(2 + 3 * 5) # 17(先乘后加)
print((2 + 3) * 5) # 25(括号优先)
print((2 + 3) * 5 ** 2) # 125(先求幂,再乘法)
print(((2 + 3) * 5) ** 2) # 625(括号改变顺序)
三、赋值运算符
3.1 基本赋值与复合赋值
赋值运算符的作用是将右边的值赋给左边的变量。它还可以跟算术运算符组合成复合赋值运算符:
"""
赋值运算符和复合赋值运算符
"""
a = 10
b = 3
a += b # 相当于:a = a + b → a = 13
a *= a + 2 # 相当于:a = a * (a + 2) → a = 13 * 15 = 195
print(a) # 输出 195
3.2 海象运算符(Python 3.8+)
Python 3.8 引入了海象运算符:=,它可以在赋值的同时返回表达式的值:
"""
海象运算符
"""
# print((a = 10)) # SyntaxError: invalid syntax
print((a := 10)) # 10(海象运算符)
print(a) # 10
提示:普通赋值表达式a = 10不能直接放在print()中,会报语法错误。海象运算符解决了这个问题。
四、比较运算符和逻辑运算符
4.1 比较运算符
比较运算符(也称关系运算符)包括:
| == | 等于(注意是两个等号!) |
| != | 不等于 |
| < | 小于 |
| > | 大于 |
| <= | 小于等于 |
| >= | 大于等于 |
注意:比较相等用的是==(两个等号),而=是赋值运算符。
4.2 逻辑运算符
Python中有三个逻辑运算符:
- and(与):两边都为True结果才是True,具有短路特性(左边为False时右边不执行)
- or(或):任意一边为True结果就是True,具有短路特性(左边为True时右边不执行)
- not(非):对布尔值取反
"""
比较运算符和逻辑运算符的使用
"""
flag0 = 1 == 1
flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2
flag4 = flag1 or flag2
flag5 = not flag0
print('flag0 =', flag0) # True
print('flag1 =', flag1) # True
print('flag2 =', flag2) # False
print('flag3 =', flag3) # False
print('flag4 =', flag4) # True
print('flag5 =', flag5) # False
print(flag1 and not flag2) # True
print(1 > 2 or 2 == 3) # False
说明:比较运算符的优先级高于赋值运算符,所以flag0 = 1 == 1先执行1 == 1得到True,再赋值给flag0。
五、运算符应用实战
5.1 例子1:华氏温度转摄氏温度
转换公式:C = (F – 32) / 1.8
"""
将华氏温度转换为摄氏温度(方式一)
"""
f = float(input('请输入华氏温度: '))
c = (f – 32) / 1.8
print('%.1f华氏度 = %.1f摄氏度' % (f, c))
Python中还有更简洁的格式化输出方式——f-string(推荐):
"""
将华氏温度转换为摄氏温度(方式二:f-string)
"""
f = float(input('请输入华氏温度: '))
c = (f – 32) / 1.8
print(f'{f:.1f}华氏度 = {c:.1f}摄氏度')
5.2 例子2:计算圆的周长和面积
"""
输入半径计算圆的周长和面积
"""
import math
radius = float(input('请输入圆的半径: '))
perimeter = 2 * math.pi * radius
area = math.pi * radius ** 2
print(f'周长: {perimeter:.2f}')
print(f'面积: {area:.2f}')
Python 3.8 新增的调试输出语法:
print(f'{perimeter = :.2f}') # 输出:perimeter = 34.56
print(f'{area = :.2f}') # 输出:area = 95.03
说明:f'{a = }'会同时输出变量名和值,非常方便调试。
5.3 例子3:判断闰年
"""
输入年份,闰年输出True,平年输出False
"""
year = int(input('请输入年份: '))
is_leap = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
print(f'{is_leap = }')
闰年判断规则:
总结
本节课我们系统学习了Python中的各类运算符:算术运算符(加减乘除、整除、求模、求幂)、赋值运算符(含海象运算符)、比较运算符和逻辑运算符,并通过三个实战例子展示了运算符的实际应用。变量、运算符和表达式是任何编程语言的核心基础,务必熟练掌握。如果有什么不理解的地方,欢迎在评论区留言讨论!


