欢迎回到《10天学会Python》系列!今天学习算术运算符与表达式,这是编程中最基础也最实用的部分。就像学习数学要先掌握加减乘除一样,掌握算术运算符是编写任何程序的第一步。
核心概念:Python的“数学工具包”
算术运算符是Python用来进行数学运算的符号,就像数学课上的加减乘除。表达式是由运算符和操作数组成的组合,比如 10 + 5。
Python提供了7种基本算术运算符:
表格复制
| 运算符 | 名称 | 示例 | 结果 |
|---|---|---|---|
+ |
加法 | 5 + 3 |
8 |
- |
减法 | 10 - 2 |
8 |
* |
乘法 | 4 * 6 |
24 |
/ |
除法 | 9 / 3 |
3.0 |
// |
整除 | 9 // 2 |
4 |
% |
取余 | 9 % 2 |
1 |
** |
幂运算 | 2 ** 3 |
8 |
重要概念:
- 操作数:运算符两侧的数字或变量,如
a + b中的a和b - 表达式:运算符和操作数的组合,计算后得到一个值
- 赋值:将表达式的计算结果存储到变量中
详细代码示例:生活化场景
示例1:购物计算(加减法)
# 购物清单:笔记本、笔、橡皮
notebook_price = 12.5 # 笔记本价格
pen_price = 3.8 # 笔的价格
eraser_price = 2.0 # 橡皮价格
# 计算总价
total = notebook_price + pen_price + eraser_price
print(f"商品总价:{total}元")
# 如果有优惠券减5元
final_price = total - 5
print(f"使用优惠券后:{final_price}元")
示例2:平均分计算(除法)
# 计算三门课程的平均分
math_score = 85
english_score = 92
programming_score = 88
# 总和
total_score = math_score + english_score + programming_score
# 平均分(使用浮点数除法)
average_score = total_score / 3
print(f"总分:{total_score}分")
print(f"平均分:{average_score:.2f}分") # 保留两位小数
示例3:时间转换(整除和取余)
# 将总分钟数转换为小时和分钟
total_minutes = 135 # 2小时15分钟
hours = total_minutes // 60 # 整除得到小时数
minutes = total_minutes % 60 # 取余得到剩余分钟数
print(f"{total_minutes}分钟 = {hours}小时{minutes}分钟")
示例4:面积计算(乘法和幂运算)
# 计算圆的面积(面积 = π × 半径²)
import math # 导入数学模块
radius = 5
# 使用幂运算计算半径的平方
area = math.pi * (radius ** 2)
print(f"半径为{radius}的圆面积:{area:.2f}")
# 计算矩形面积
length = 8
width = 6
rectangle_area = length * width
print(f"长{length}宽{width}的矩形面积:{rectangle_area}")
示例5:折扣计算(混合运算)
# 商场打折:原价打8折,再减10元
original_price = 299
discounted_price = original_price * 0.8 # 打8折
final_price = discounted_price - 10 # 再减10元
print(f"原价:{original_price}元")
print(f"8折后:{discounted_price:.2f}元")
print(f"再减10元:{final_price:.2f}元")
示例6:分组问题(整除和取余应用)
# 将45个苹果分给6个小朋友
total_apples = 45
children = 6
# 每人分到的苹果数(整除)
apples_per_child = total_apples // children
# 剩下的苹果数(取余)
remaining_apples = total_apples % children
print(f"每人分到:{apples_per_child}个苹果")
print(f"剩下:{remaining_apples}个苹果")
运算优先级:Python的“计算顺序”
当表达式中有多个运算符时,Python按照运算符优先级决定计算顺序。记住这个口诀:** 先乘除,后加减,有括号先算括号 **。
优先级从高到低:
- **括号
()**:优先级最高,先算括号内的 - 幂运算
**:次高 - 乘法
*、除法/、整除//、取余%:同级,从左到右 - 加法
+、减法-:同级,从左到右
示例对比
# 没有括号:先乘除后加减
result1 = 10 + 5 * 2 # 5*2=10, 10+10=20
print(f"10 + 5 * 2 = {result1}")
# 有括号:先算括号内
result2 = (10 + 5) * 2 # 10+5=15, 15*2=30
print(f"(10 + 5) * 2 = {result2}")
# 幂运算优先级高
result3 = 2 * 3 ** 2 # 3**2=9, 2*9=18
print(f"2 * 3 ** 2 = {result3}")
# 混合运算
result4 = (8 + 4) * 2 ** 3 / 4 - 1
# 计算步骤:
# 1. 括号:8+4=12
# 2. 幂运算:2**3=8
# 3. 乘除:12*8=96, 96/4=24
# 4. 加减:24-1=23
print(f"(8+4)*2**3/4-1 = {result4}")
建议:如果不确定优先级,或者想让代码更易读,多使用括号。括号不仅确保正确计算,也让别人(包括未来的你)更容易理解代码意图。
实践应用:简易单位转换器
现在,我们来创建一个实用的单位转换器,将所学知识应用到实际项目中。
项目需求
创建一个程序,实现以下功能:
- 厘米转米和英寸
- 摄氏度转华氏度
- 人民币转美元(使用固定汇率)
完整代码实现
# 简易单位转换器
print("=== 简易单位转换器 ===")
print("1. 长度转换(厘米转米/英寸)")
print("2. 温度转换(摄氏度转华氏度)")
print("3. 货币转换(人民币转美元)")
print("=" * 30)
# 获取用户选择
choice = input("请选择转换类型(输入1/2/3):")
if choice == "1":
# 长度转换
cm = float(input("请输入厘米数:"))
meters = cm / 100 # 厘米转米
inches = cm / 2.54 # 厘米转英寸
print(f"{cm}厘米 = {meters:.2f}米")
print(f"{cm}厘米 = {inches:.2f}英寸")
elif choice == "2":
# 温度转换
celsius = float(input("请输入摄氏度:"))
fahrenheit = celsius * 9/5 + 32 # 转换公式
print(f"{celsius}℃ = {fahrenheit:.2f}℉")
elif choice == "3":
# 货币转换(简化版,使用固定汇率)
exchange_rate = 0.14 # 1人民币 ≈ 0.14美元
rmb = float(input("请输入人民币金额:"))
usd = rmb * exchange_rate
print(f"{rmb}元 ≈ {usd:.2f}美元")
else:
print("选择无效,请输入1、2或3。")
代码解析
- 用户交互:使用
input()获取用户输入,print()显示结果 - 类型转换:
float()将输入的字符串转为数字 - 条件判断:
if-elif-else根据用户选择执行不同转换 - 算术运算:运用了除法、乘法、加法等运算符
- 格式化输出:
:.2f保留两位小数
扩展建议:
- 添加更多单位转换(如公斤转磅、公里转英里)
- 使用实时汇率(需要网络请求)
- 保存转换记录到文件
练习题
练习1:基础计算
计算以下表达式的值,并编写代码验证:
15 + 3 * 2(15 + 3) * 220 / 4 + 32 ** 3 * 4
**要求 **:先心算或笔算,再用Python代码验证。
练习2:生活应用题
- 小红有50元,买了3本笔记本(每本12元)和2支笔(每支5元),她还剩多少钱?
- 一辆汽车以60公里/小时的速度行驶,3小时15分钟后行驶了多少公里?(需要将时间转换为小时)
- 一个班级有35名学生,每4人一组进行小组活动,可以分成多少组?还剩几人?
**要求 **:编写Python程序解决这些问题。
练习3:表达式编写
根据描述编写Python表达式:
- 计算半径为r的球体积(体积 = 4/3 × π × r³)
- 将总秒数转换为天、小时、分钟、秒的格式
- 判断一个三位数的各位数字之和(如123的各位和为1+2+3=6)
**要求 **:只编写表达式,不需要完整程序。
练习4:找错题
找出下面代码中的错误并修复:
# 错误代码
a = 10
b = 3
result1 = a / b # 想得到整数商
result2 = a % b # 想得到余数
print(f"10除以3的商是:{result1}")
print(f"余数是:{result2}")
**提示 **:注意运算符的选择是否符合意图。
练习5:挑战题(选做)
编写一个程序,根据用户输入的三位数,计算该数的反序数。例如,输入123,输出321。
**提示 **:使用整除和取余操作分离各位数字。
总结
今天,我们系统学习了Python的算术运算符与表达式:
- **掌握7种算术运算符 **:
+、-、*、/、//、%、** - 理解运算符优先级:括号→幂运算→乘除→加减
- 应用多种生活场景:购物计算、平均分、时间转换、面积计算等
- 完成实践项目:简易单位转换器
- 巩固练习:通过5类练习题加深理解
算术运算是最基础的编程技能,也是后续所有复杂运算的基石。通过今天的练习,你已经能够用Python解决日常生活中的许多计算问题。
明天,我们将学习比较与逻辑运算符,这是实现程序智能决策的关键。
小贴士:
- 多动手验证:不确定优先级时,写个小程序测试一下
- 善用括号:即使优先级明确,加括号也能让代码更清晰
- 理解应用场景:整除和取余在处理分组、分配问题时特别有用
- 积累常用公式:如单位转换、几何面积等,建立自己的“公式库”
记住:编程不仅是写代码,更是用代码解决实际问题的思维训练。从今天开始,尝试用Python解决你生活中的简单计算吧!