现在我们知道如何处理数字和字符串了,让我们写一个实际有用的程序!假设你想知道自己的体重(单位:英石)。一个简洁的程序可以轻松完成这个任务。因为1英石等于14磅,而1千克大约等于2.2磅,所以以下公式可以帮我们计算:

\(mstone=mkg×2.214m_{stone} = \frac{m_{kg} \times 2.2}{14}\)

让我们把这个公式转化为程序!

mass_kg = int(input("What is your mass in kilograms?"))
mass_stone = mass_kg * 2.2 / 14
print("You weigh", mass_stone, "stone.")

运行这个程序,你就能得到自己的体重(单位:英石)!注意,应用公式就像写下几个数学表达式一样简单:

mass_stone = mass_kg * 2.2 / 14

常用数学运算符

下面是一些常用的数学运算符

语法 数学运算 运算名称
a + b a + b 加法
a - b a - b 减法
a * b a × b 乘法
a / b a ÷ b 除法
a // b ⌊a ÷ b⌋ 向下取整除法
a % b a mod b 取余
-a -a 负值
abs(a)   a
a ** b a^b 指数
math.sqrt(a) √a 平方根

注意:
要使用 math.sqrt() 函数,你需要显式地导入 math 模块。写上 import math 即可。此外,关于其他通过该语句提供的函数,详情请见文档。

浮点数的四舍五入误差

由于浮点运算的局限性,四舍五入错误可能导致一些意想不到的结果。例如:

>>> print(0.6 / 0.2)
3.0
>>> print(0.6 // 0.2)
2.0

对于 Python 2.x 系列,/ 对整数和长整型执行“向下取整除法”,而对浮点数和复数执行“真除法”。而在 Python 3.x 中,/ 对所有型执行“真除法”。

这种问题的修复方法是使用 round() 函数对正常的除法结果进行四舍五入,因为 Python 中的错误导致 round(0.5) 向下舍入。

运算顺序

Python 使用标准的运算顺序(PEMDAS)来进行数学运算,似于高中或中学代数和几何中的运算顺序。即,数学表达式的求值顺序如下(许多人用 PEMDAS 记住这个顺序),也适用于括号中的运算。

运算名称 语法 说明 PEMDAS 记忆法
括号 ( ... ) 在进行其他操作之前,Python 需要先评估所有括号中的内容 Please
指数 ** 由于指数是乘法或除法的简写,因此它应该先被计算 Excuse
乘法和除法 * / // % 乘法和除法应该先进行 My
加法和减法 + - 然后进行加法和减法 Dear

格式化输出

在做数学时,理想情况下我们希望得到整洁的数字。遗憾的是,现实世界中的数字并不总是那么整齐。例如,下面的计算结果是很长且难看的数字:

What is your mass in kilograms? 65
You weigh 10.2142857143 stone.

默认情况下,Python 的 print 语句会输出小数点后 10 位数字。如果你只想保留一到两位数字,可以使用 round() 函数来进行四舍五入。round() 函数接受两个参数:要四舍五入的数字,以及希望保留的小数位数。例如:

>>> print(round(3.14159265, 2))
3.14

现在,让我们修改程序,只打印保留两位小数的结果:

print("You weigh", round(mass_stone, 2), "stone.")

这也展示了函数嵌套的概念。你可以将一个函数放在另一个函数里面,程序照样能够正常工作。如果你不喜欢这样做,也可以使用多个变量:

twoSigFigs = round(mass_stone, 2)
numToString = str(twoSigFigs)
print("You weigh " + numToString + " stone.")

要了解更多格式化选项,请参阅输入和输出章节中的格式化部分。

Last modified: Thursday, 30 January 2025, 11:54 PM