第6集 算术运算符
1. 算术运算符概述
Python提供了7种算术运算符,用于执行数学运算:
| 运算符 | 名称 | 示例 | 说明 |
|---|---|---|---|
+ |
加法 | a + b |
两个数相加 |
- |
减法 | a - b |
两个数相减 |
* |
乘法 | a * b |
两个数相乘 |
/ |
除法 | a / b |
两个数相除(结果为浮点数) |
// |
整除 | a // b |
两个数相除(结果为整数,向下取整) |
% |
取余 | a % b |
两个数相除的余数 |
** |
幂运算 | a ** b |
a的b次方 |
2. 基本算术运算符
2.1 加法运算符(+)
# 整数加法
a = 10
b = 20
result = a + b
print(f"{a} + {b} = {result}") # 输出:10 + 20 = 30
# 浮点数加法
x = 3.14
y = 2.86
result = x + y
print(f"{x} + {y} = {result}") # 输出:3.14 + 2.86 = 6.0
# 整数和浮点数相加(结果为浮点数)
result = a + x
print(f"{a} + {x} = {result}") # 输出:10 + 3.14 = 13.14
# 字符串连接(+号也可以用于字符串)
str1 = "Hello"
str2 = "World"
result = str1 + " " + str2
print(result) # 输出:Hello World2.2 减法运算符(-)
# 整数减法
a = 20
b = 10
result = a - b
print(f"{a} - {b} = {result}") # 输出:20 - 10 = 10
# 浮点数减法
x = 5.5
y = 3.2
result = x - y
print(f"{x} - {y} = {result}") # 输出:5.5 - 3.2 = 2.3
# 负数
num = 10
result = -num
print(f"-{num} = {result}") # 输出:-102.3 乘法运算符(*)
# 整数乘法
a = 5
b = 6
result = a * b
print(f"{a} × {b} = {result}") # 输出:5 × 6 = 30
# 浮点数乘法
x = 2.5
y = 4.0
result = x * y
print(f"{x} × {y} = {result}") # 输出:2.5 × 4.0 = 10.0
# 字符串重复(*号也可以用于字符串)
stars = "*" * 10
print(stars) # 输出:**********
# 列表重复
numbers = [1, 2] * 3
print(numbers) # 输出:[1, 2, 1, 2, 1, 2]3. 除法运算符
3.1 普通除法(/)
# 普通除法(结果总是浮点数)
a = 10
b = 4
result = a / b
print(f"{a} ÷ {b} = {result}") # 输出:10 ÷ 4 = 2.5
# 整数除法结果也是浮点数
result = 8 / 2
print(f"8 ÷ 2 = {result}") # 输出:8 ÷ 2 = 4.0
# 浮点数除法
x = 7.5
y = 2.5
result = x / y
print(f"{x} ÷ {y} = {result}") # 输出:7.5 ÷ 2.5 = 3.03.2 整除运算符(//)
整除运算符执行除法后向下取整,返回整数。
# 正数整除
print(f"10 // 3 = {10 // 3}") # 输出:3(10 ÷ 3 ≈ 3.333,向下取整为3)
print(f"9 // 3 = {9 // 3}") # 输出:3
print(f"10 // 5 = {10 // 5}") # 输出:2
# 负数整除(注意负数整除的特点)
print(f"-10 // 3 = {-10 // 3}") # 输出:-4(-10 ÷ 3 ≈ -3.333,向下取整为-4)
print(f"10 // -3 = {10 // -3}") # 输出:-4
print(f"-10 // -3 = {-10 // -3}") # 输出:3
# 浮点数整除
print(f"10.5 // 3 = {10.5 // 3}") # 输出:3.0
print(f"10.9 // 3 = {10.9 // 3}") # 输出:3.03.3 取余运算符(%)
取余运算符返回除法的余数。
# 基本取余
print(f"10 % 3 = {10 % 3}") # 输出:1(10 ÷ 3 = 3余1)
print(f"15 % 4 = {15 % 4}") # 输出:3(15 ÷ 4 = 3余3)
print(f"20 % 5 = {20 % 5}") # 输出:0(20 ÷ 5 = 4余0)
# 负数取余(结果符号与除数相同)
print(f"-10 % 3 = {-10 % 3}") # 输出:2
print(f"10 % -3 = {10 % -3}") # 输出:-2
print(f"-10 % -3 = {-10 % -3}") # 输出:-1
# 应用:判断奇偶数
num = 15
if num % 2 == 0:
print(f"{num}是偶数")
else:
print(f"{num}是奇数") # 输出:15是奇数
# 应用:判断闰年
year = 2024
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"{year}是闰年")
else:
print(f"{year}是平年")4. 幂运算符(**)
幂运算符用于计算指数。
# 基本幂运算
print(f"2 ** 3 = {2 ** 3}") # 输出:8(2的3次方)
print(f"3 ** 4 = {3 ** 4}") # 输出:81(3的4次方)
print(f"10 ** 2 = {10 ** 2}") # 输出:100(10的平方)
# 分数指数(开方)
print(f"4 ** 0.5 = {4 ** 0.5}") # 输出:2.0(4的平方根)
print(f"9 ** 0.5 = {9 ** 0.5}") # 输出:3.0(9的平方根)
print(f"8 ** (1/3) = {8 ** (1/3)}") # 输出:2.0(8的立方根)
# 负数指数
print(f"2 ** -1 = {2 ** -1}") # 输出:0.5(1/2)
print(f"10 ** -2 = {10 ** -2}") # 输出:0.01(1/100)
# 大数幂运算
print(f"2 ** 10 = {2 ** 10}") # 输出:10245. 运算符优先级
运算符的优先级决定了表达式中运算的执行顺序:
| 优先级 | 运算符 | 说明 |
|---|---|---|
| 1(最高) | ** |
幂运算 |
| 2 | +x, -x |
正负号 |
| 3 | *, /, //, % |
乘除取余 |
| 4(最低) | +, - |
加减 |
# 优先级示例
result = 2 + 3 * 4 # 先乘后加
print(f"2 + 3 × 4 = {result}") # 输出:14
result = (2 + 3) * 4 # 括号优先
print(f"(2 + 3) × 4 = {result}") # 输出:20
result = 2 ** 3 * 4 # 先幂运算,再乘法
print(f"2³ × 4 = {result}") # 输出:32
result = 2 ** (3 * 4) # 先算括号
print(f"2^(3×4) = {result}") # 输出:4096
result = 10 // 3 * 2 # 同级从左到右
print(f"10 // 3 × 2 = {result}") # 输出:6
result = 10 % 3 + 2 # 先取余后加
print(f"10 % 3 + 2 = {result}") # 输出:56. 增强赋值运算符
增强赋值运算符将算术运算和赋值结合起来:
| 运算符 | 示例 | 等价于 |
|---|---|---|
+= |
a += b |
a = a + b |
-= |
a -= b |
a = a - b |
*= |
a *= b |
a = a * b |
/= |
a /= b |
a = a / b |
//= |
a //= b |
a = a // b |
%= |
a %= b |
a = a % b |
**= |
a **= b |
a = a ** b |
# 增强赋值运算符示例
num = 10
# +=
num += 5 # 等价于 num = num + 5
print(f"num += 5: {num}") # 输出:15
# -=
num -= 3 # 等价于 num = num - 3
print(f"num -= 3: {num}") # 输出:12
# *=
num *= 2 # 等价于 num = num * 2
print(f"num *= 2: {num}") # 输出:24
# /=
num /= 4 # 等价于 num = num / 4
print(f"num /= 4: {num}") # 输出:6.0
# //=
num //= 2 # 等价于 num = num // 2
print(f"num //= 2: {num}") # 输出:3.0
# **=
num **= 3 # 等价于 num = num ** 3
print(f"num **= 3: {num}") # 输出:27.07. 综合示例
7.1 计算器程序
"""
简单计算器
执行基本的算术运算
"""
# 获取用户输入
num1 = float(input("请输入第一个数字:"))
num2 = float(input("请输入第二个数字:"))
# 执行各种运算
print(f"\n{num1} + {num2} = {num1 + num2}")
print(f"{num1} - {num2} = {num1 - num2}")
print(f"{num1} × {num2} = {num1 * num2}")
if num2 != 0:
print(f"{num1} ÷ {num2} = {num1 / num2:.2f}")
print(f"{num1} ÷ {num2}(整除)= {num1 // num2}")
print(f"{num1} % {num2} = {num1 % num2}")
else:
print("除数不能为0!")
print(f"{num1} ^ {num2} = {num1 ** num2:.2f}")7.2 温度转换
"""
温度转换
摄氏度和华氏度之间的转换
"""
# 摄氏度转华氏度
celsius = float(input("请输入摄氏度:"))
fahrenheit = celsius * 9 / 5 + 32
print(f"{celsius}°C = {fahrenheit:.1f}°F")
# 华氏度转摄氏度
fahrenheit = float(input("请输入华氏度:"))
celsius = (fahrenheit - 32) * 5 / 9
print(f"{fahrenheit}°F = {celsius:.1f}°C")7.3 计算圆的周长和面积
"""
计算圆的周长和面积
"""
import math
radius = float(input("请输入圆的半径:"))
# 计算周长:C = 2πr
circumference = 2 * math.pi * radius
# 计算面积:A = πr²
area = math.pi * radius ** 2
print(f"\n圆的半径:{radius}米")
print(f"圆的周长:{circumference:.2f}米")
print(f"圆的面积:{area:.2f}平方米")7.4 分数运算
"""
分数运算
"""
import fractions
# 创建分数
frac1 = fractions.Fraction(1, 2) # 1/2
frac2 = fractions.Fraction(3, 4) # 3/4
# 分数运算
print(f"1/2 + 3/4 = {frac1 + frac2}") # 输出:5/4
print(f"3/4 - 1/2 = {frac2 - frac1}") # 输出:1/4
print(f"1/2 × 3/4 = {frac1 * frac2}") # 输出:3/8
print(f"3/4 ÷ 1/2 = {frac2 / frac1}") # 输出:3/28. 数值精度问题
"""
浮点数精度问题
"""
# 浮点数计算可能不精确
result = 0.1 + 0.2
print(f"0.1 + 0.2 = {result}") # 输出:0.30000000000000004
# 使用round()函数四舍五入
print(f"round(0.1 + 0.2, 2) = {round(result, 2)}") # 输出:0.3
# 使用decimal模块进行精确计算
from decimal import Decimal, getcontext
# 设置精度
getcontext().prec = 4
a = Decimal('0.1')
b = Decimal('0.2')
result = a + b
print(f"Decimal('0.1') + Decimal('0.2') = {result}") # 输出:0.30009. 本集总结
本集我们学习了:
- 7种算术运算符的使用方法
- 除法、整除、取余的区别
- 幂运算的各种用法
- 运算符的优先级
- 增强赋值运算符
- 多个实际应用示例
- 浮点数精度问题
核心要点:
/是普通除法(结果为浮点数),//是整除(向下取整)%是取余运算,常用于判断奇偶、整除等场景**是幂运算,可以计算平方、立方、开方等- 运算符有优先级,可以使用括号改变运算顺序
- 增强赋值运算符可以简化代码
- 浮点数计算可能有精度问题,必要时使用decimal模块
下一集预告:我们将学习比较运算符,用于比较两个值的大小关系。
10. 课后练习
- 编写程序,计算两个数的和、差、积、商、余数和幂
- 编写程序,输入一个整数,判断是奇数还是偶数
- 编写程序,输入年份,判断是否为闰年
- 编写程序,计算三角形面积(底×高÷2)
- 编写程序,计算梯形面积:(上底+下底)×高÷2
提示:算术运算符是编程的基础,熟练掌握各种运算符及其优先级非常重要!