Python 数字运算必学:类型转换、优先级规则与常见陷阱避坑指南

今天我们要学习 Python 中最基础也是最实用的技能——处理数字。有了这些知识,我们就能用 Python 制作各种实用的计算器了。
认识 Python 中的数字类型
在 Python 的世界里,数字主要分为两大类:整数和浮点数。
整数 (int)
整数就是我们日常生活中的正整数、负整数和 0。在 Python 中,整数的表示非常直观:
age = 25temperature = -10score = 0population = 1400000000Python 的整数没有大小限制,你想写多大就能写多大。这在处理大数据时非常方便。
浮点数 (float)
浮点数就是带小数点的数字,用来表示更精确的数值:
height = 1.75price = 99.99pi = 3.14159temperature = -5.5需要注意的是,浮点数在计算机中的存储方式可能导致一些精度问题。比如:
result = 0.1 + 0.2print(result) # 输出 0.30000000000000004这不是 Bug,而是计算机存储浮点数的特性。在日常使用中,这点误差通常可以忽略不计。
基本运算符:Python 的计算魔法
Python 提供了丰富的运算符,让我们可以对数字进行各种操作。
算术运算符
# 加法result = 10 + 5 # 15# 减法result = 10 - 5 # 5# 乘法result = 10 * 5 # 50# 除法 (结果总是浮点数)result = 10 / 5 # 2.0result = 10 / 3 # 3.3333333333333335# 整除 (只保留整数部分)result = 10 // 3 # 3# 取余 (求余数)result = 10 % 3 # 1# 幂运算result = 2 ** 3 # 8 (2的3次方)运算符的优先级
就像数学中一样,Python 的运算也有优先级:
- 1. 括号 ()
- 2. 幂运算 **
- 3. 乘法 *、除法 /、整除 //、取余 %
- 4. 加法 +、减法 -
result = 2 + 3 * 4 # 14 (先乘后加)result = (2 + 3) * 4 # 20 (括号优先)result = 2 ** 3 * 2 # 16 (先幂运算后乘法)实战案例:BMI 计算器
Body Mass Index (BMI) 是衡量体重是否标准的常用指标。计算公式是:
BMI = 体重 (kg) / 身高 (m) 的平方
让我们用 Python 实现一个 BMI 计算器:
# BMI 计算器print("=== BMI 计算器 ===")# 获取用户输入weight = float(input("请输入您的体重 (kg):"))height = float(input("请输入您的身高 (m):"))# 计算 BMIbmi = weight / (height ** 2)# 输出结果 (保留2位小数。此处是 f-string 方法,后面会详细介绍,为字符串展示的问题,“保留几位小数”是数值处理的问题,通常使用 round 方法)print(f"您的 BMI 指数是:{bmi:.2f}")# 判断体重状况(可以类比 Shell 中的 if 语句的含义)if bmi < 18.5: print("您的体重偏轻")elif bmi < 24: print("您的体重正常")elif bmi < 28: print("您的体重偏重")else: print("您需要注意体重管理")运行效果:
=== BMI 计算器 ===请输入您的体重 (kg):70请输入您的身高 (m):1.75您的 BMI 指数是:22.86您的体重正常实战案例:房贷计算器
买房是人生大事,了解每月还款金额很重要。我们来制作一个等额本息房贷计算器。
等额本息月供计算公式:月供 = 贷款本金 × 月利率 × (1 + 月利率)^还款月数 / [(1 + 月利率)^还款月数 - 1]
# 房贷计算器print("=== 房贷计算器 (等额本息) ===")# 获取用户输入loan_amount = float(input("请输入贷款总额 (万元):")) * 10000annual_rate = float(input("请输入年利率 (%):")) / 100years = int(input("请输入贷款年限 (年):"))# 计算月利率和还款月数monthly_rate = annual_rate / 12months = years * 12# 计算月供if monthly_rate == 0: monthly_payment = loan_amount / monthselse: monthly_payment = loan_amount * monthly_rate * (1 + monthly_rate) ** months / ((1 + monthly_rate) ** months - 1)# 计算总还款额和利息total_payment = monthly_payment * monthstotal_interest = total_payment - loan_amount# 输出结果print(f"\n--- 计算结果 ---")print(f"贷款总额:{loan_amount:,.2f} 元")print(f"月供金额:{monthly_payment:,.2f} 元")print(f"还款总额:{total_payment:,.2f} 元")print(f"支付利息:{total_interest:,.2f} 元")运行效果:
=== 房贷计算器 (等额本息) ===请输入贷款总额 (万元):100请输入年利率 (%):4.9请输入贷款年限 (年):30--- 计算结果 ---贷款总额:1,000,000.00 元月供金额:5,307.27 元还款总额:1,910,616.19 元支付利息:910,616.19 元获取用户输入:input() 函数
在上面的案例中,我们使用了 input() 函数来获取用户输入。
基本用法
name = input("请输入您的姓名:")print(f"你好,{name}!")input() 函数会暂停程序,等待用户输入并按回车键。需要注意的是:input() 函数返回的永远是字符串类型。
处理数字输入
如果需要获取数字,必须进行类型转换:
# 错误示范age = input("请输入您的年龄:")next_year_age = age + 1 # 报错!不能对字符串进行加法运算# 正确做法age = int(input("请输入您的年龄:"))next_year_age = age + 1print(f"明年您就 {next_year_age} 岁了")类型转换:数字的变身术
在 Python 中,我们经常需要在不同的数据类型之间进行转换。
常用转换函数
# 转换为整数x = int(3.14) # 3 (直接截断小数部分)y = int("100") # 100z = int("3.14") # 报错!不能直接转换带小数点的字符串# 转换为浮点数a = float(10) # 10.0b = float("3.14") # 3.14# 转换为字符串c = str(100) # "100"d = str(3.14) # "3.14"类型转换的实际应用
# 价格计算器print("=== 商品价格计算器 ===")unit_price = float(input("请输入单价:"))quantity = int(input("请输入数量:"))discount = float(input("请输入折扣 (0.8表示8折):"))# 计算总价total = unit_price * quantity * discountprint(f"\n原价:{unit_price * quantity:.2f} 元")print(f"折后价:{total:.2f} 元")print(f"节省:{unit_price * quantity - total:.2f} 元")类型查看
如果不确定某个变量的类型,可以使用 type() 函数:
x = 10y = 3.14z = "hello"print(type(x)) # <class 'int'>print(type(y)) # <class 'float'>print(type(z)) # <class 'str'>常见陷阱与注意事项
除以零
result = 10 / 0 # ZeroDivisionError: division by zero在进行除法运算前,要确保除数不为 0。
类型转换失败
age = int("abc") # ValueError: invalid literal for int()转换前要确保字符串的格式正确。可以使用 try-except 来处理异常:
try: age = int(input("请输入年龄:"))except ValueError: print("输入格式错误,请输入数字!")浮点数比较
# 不推荐if 0.1 + 0.2 == 0.3: print("相等")# 推荐:使用误差范围if abs((0.1 + 0.2) - 0.3) < 0.0001: print("相等")练习题
学以致用,来做几道练习题吧:
- 1. 温度转换器:编写程序,将摄氏度转换为华氏度 (公式:F = C × 9/5 + 32)
- 2. 找零计算器:用户购物支付后,计算应找零多少钱
- 3. 年龄计算器:输入出生年份,计算当前年龄
- 4. 圆面积计算器:输入半径,计算圆的面积 (π 取 3.14159)
- 5. 复利计算器:计算银行存款的复利收益
写在最后
今天我们学习了:
- • Python 中的两种数字类型:整数 (int) 和浮点数 (float)
- • 7 种基本算术运算符及其优先级
- • 使用 input() 函数获取用户输入
- • 数字类型之间的转换方法
- • 两个实用案例:BMI 计算器和房贷计算器
掌握了这些知识,我们就可以用 Python 制作各种实用的计算工具了。下一期我们将学习条件判断,敬请期待。
本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。



