5.算术运算符与表达式

5.算术运算符与表达式

欢迎回到《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 中的 ab
  • 表达式:运算符和操作数的组合,计算后得到一个值
  • 赋值:将表达式的计算结果存储到变量中

详细代码示例:生活化场景

示例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按照运算符优先级决定计算顺序。记住这个口诀:** 先乘除,后加减,有括号先算括号 **。

优先级从高到低:

  1. **括号 () **:优先级最高,先算括号内的
  2. 幂运算 **:次高
  3. 乘法 *、除法 /、整除 //、取余 %:同级,从左到右
  4. 加法 +、减法 -:同级,从左到右

示例对比

# 没有括号:先乘除后加减
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}")

建议:如果不确定优先级,或者想让代码更易读,多使用括号。括号不仅确保正确计算,也让别人(包括未来的你)更容易理解代码意图。

实践应用:简易单位转换器

现在,我们来创建一个实用的单位转换器,将所学知识应用到实际项目中。

项目需求

创建一个程序,实现以下功能:

  1. 厘米转米和英寸
  2. 摄氏度转华氏度
  3. 人民币转美元(使用固定汇率)

完整代码实现

# 简易单位转换器
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。")

代码解析

  1. 用户交互:使用 input() 获取用户输入,print() 显示结果
  2. 类型转换float() 将输入的字符串转为数字
  3. 条件判断if-elif-else 根据用户选择执行不同转换
  4. 算术运算:运用了除法、乘法、加法等运算符
  5. 格式化输出:.2f 保留两位小数

扩展建议

  • 添加更多单位转换(如公斤转磅、公里转英里)
  • 使用实时汇率(需要网络请求)
  • 保存转换记录到文件

练习题

练习1:基础计算

计算以下表达式的值,并编写代码验证:

  1. 15 + 3 * 2
  2. (15 + 3) * 2
  3. 20 / 4 + 3
  4. 2 ** 3 * 4

**要求 **:先心算或笔算,再用Python代码验证。

练习2:生活应用题

  1. 小红有50元,买了3本笔记本(每本12元)和2支笔(每支5元),她还剩多少钱?
  2. 一辆汽车以60公里/小时的速度行驶,3小时15分钟后行驶了多少公里?(需要将时间转换为小时)
  3. 一个班级有35名学生,每4人一组进行小组活动,可以分成多少组?还剩几人?

**要求 **:编写Python程序解决这些问题。

练习3:表达式编写

根据描述编写Python表达式:

  1. 计算半径为r的球体积(体积 = 4/3 × π × r³)
  2. 将总秒数转换为天、小时、分钟、秒的格式
  3. 判断一个三位数的各位数字之和(如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的算术运算符与表达式:

  1. **掌握7种算术运算符 **:+-*///%**
  2. 理解运算符优先级:括号→幂运算→乘除→加减
  3. 应用多种生活场景:购物计算、平均分、时间转换、面积计算等
  4. 完成实践项目:简易单位转换器
  5. 巩固练习:通过5类练习题加深理解

算术运算是最基础的编程技能,也是后续所有复杂运算的基石。通过今天的练习,你已经能够用Python解决日常生活中的许多计算问题。

明天,我们将学习比较与逻辑运算符,这是实现程序智能决策的关键。


小贴士

  1. 多动手验证:不确定优先级时,写个小程序测试一下
  2. 善用括号:即使优先级明确,加括号也能让代码更清晰
  3. 理解应用场景:整除和取余在处理分组、分配问题时特别有用
  4. 积累常用公式:如单位转换、几何面积等,建立自己的“公式库”

记住:编程不仅是写代码,更是用代码解决实际问题的思维训练。从今天开始,尝试用Python解决你生活中的简单计算吧!

4.变量与基本数据类型 2026-01-21
6.比较运算符与条件判断 2026-01-21

评论区