在 Python 中计算百分比
How to calculate percentage in Python
在 Python 中计算百分比:
- 使用除法
/
运算符将一个数除以另一个数。 - 将商乘以
100
得到百分比。 - 结果显示第一个数字占第二个数字的百分比。
主程序
def is_what_percent_of(num_a, num_b): return (num_a / num_b) * 100 print(is_what_percent_of(25, 75)) # 👉️ 33.33 print(is_what_percent_of(15, 93)) # 👉️ 16.12903.. print(round(is_what_percent_of(15, 93), 2)) # 👉️ 16.13 # -------------------------------------------------- def get_percentage_increase(num_a, num_b): return ((num_a - num_b) / num_b) * 100 print(get_percentage_increase(60, 30)) # 👉️ 100.0 print(get_percentage_increase(40, 100)) # 👉️ -60.0 # -------------------------------------------------- def get_remainder(num_a, num_b): return num_a % num_b print(get_remainder(50, 15)) # 👉️ 5 print(get_remainder(50, 20)) # 👉️ 10
第一个函数接受 2 个数字并返回第一个数字占第二个数字的百分比。
例如,25 / 50 * 100
显示25
是50%
的50
。
主程序
print((25 / 50) * 100) # 👉️ 50.0
计算百分比时,您可能需要四舍五入到小数点后的特定位数。
round函数采用以下 2 个参数:
姓名 | 描述 |
---|---|
number |
要舍入到ndigits 小数点后精度的数字 |
ndigits |
操作后数字应具有的小数点后的位数(可选) |
主程序
print(round((33 / 65) * 100, 2)) # 👉️ 50.77
该
round
函数返回四舍五入到小数点后的精度的数字。 ndigits
如果ndigits
省略,函数返回最接近的整数。
请注意,如果您尝试除以0
,您会得到一个ZeroDivisionError
.
如果您需要以任何方式处理此问题,请使用try/except
块来处理错误。
主程序
def is_what_percent_of(num_a, num_b): try: return (num_a / num_b) * 100 except ZeroDivisionError: return 0 print(is_what_percent_of(25, 0)) # 👉️ 0
第二个函数显示如何获得两个数字之间的百分比增加/减少。
主程序
def get_percentage_increase(num_a, num_b): return ((num_a - num_b) / num_b) * 100 print(get_percentage_increase(60, 30)) # 👉️ 100.0 print(get_percentage_increase(40, 100)) # 👉️ -60.0
第一个示例显示从60
到增加的百分比30
是
100 %
。
而第二个例子表明,从40
到增加的百分比100
是
-60%
。
如果您总是需要得到一个正数,请使用该abs()
函数。
主程序
def get_percentage_increase(num_a, num_b): return abs((num_a - num_b) / num_b) * 100 print(get_percentage_increase(60, 30)) # 👉️ 100.0 print(get_percentage_increase(40, 100)) # 👉️ 60.0
abs函数返回数字的绝对值。换句话说,如果数字是正数,则返回数字,如果数字是负数,则返回数字的负数。
这样我们在计算两个数字之间的百分比差异时总是保证得到一个正数。
您可能还需要处理除以零的情况。
主程序
def get_percentage_increase(num_a, num_b): try: return abs((num_a - num_b) / num_b) * 100 except ZeroDivisionError: return float('inf') print(get_percentage_increase(60, 0)) # 👉️ inf print(get_percentage_increase(60, 60)) # 👉️ 0.0 print(get_percentage_increase(60, 120)) # 👉️ 50.0
如果出现ZeroDivisionError
错误,我们将返回 Infinity,但是您可以使用适合您的用例的任何其他方式处理错误。
代码示例中的第三个函数使用模%
运算符。
主程序
def get_remainder(num_a, num_b): return num_a % num_b print(get_remainder(50, 15)) # 👉️ 5 print(get_remainder(50, 20)) # 👉️ 10
取
模 (%)
运算符返回第一个值除以第二个值的余数。
主程序
print(10 % 2) # 👉️ 0 print(10 % 4) # 👉️ 2
如果右侧的值为零,则运算符会引发
ZeroDivisionError
异常。
左侧和右侧的值也可以是浮点数。