在 Python 中计算两个数字之间的百分比

news/2024/10/30 15:34:11/

要计算两个数字之间的百分比,请将一个数字除以另一个数字,然后将结果乘以 100,例如 (30 / 75) * 100。这显示第一个数字占第二个数字的百分比。 在示例中,307540%

def is_what_percent_of(num_a, num_b):return (num_a / num_b) * 100print(is_what_percent_of(30, 75))  # 👉️ 40.0
print(is_what_percent_of(20, 75))  # 👉️ 26.6666...
print(round(is_what_percent_of(20, 75), 2))  # 👉️ 26.67# --------------------------------------------------def get_percentage_increase(num_a, num_b):return ((num_a - num_b) / num_b) * 100print(get_percentage_increase(50, 30))  # 👉️ 66.6666...
print(get_percentage_increase(50, 100))  # 👉️ -50.0# --------------------------------------------------def get_percentage_difference(num_a, num_b):# 👇️ use abs() function to always get positive numberreturn (abs(num_a - num_b) / num_b) * 100print(get_percentage_difference(50, 30))  # 👉️ 66.6666...
print(get_percentage_difference(50, 100))  # 👉️ 50.0

Python 中计算两个数字之间的百分比

第一个函数接受 2 个数字并返回第一个数字占第二个数字的百分比。

例如,25 / 50 * 100 表示 255050%

print((25 / 50) * 100) # 👉️ 50.0

计算两个数字之间的百分比时,我们可能需要四舍五入到小数点后的特定位数。

round 函数采用以下 2 个参数:

  • number 要四舍五入到小数点后 ndigits 精度的数字
  • ndigits 数字在操作后应具有的小数点后的位数(可选)
print(round((23 / 43) * 100, 2))  # 👉️ 53.49

round 函数返回四舍五入到小数点后 ndigits 精度的数字。

如果省略 ndigits,函数返回最接近的整数。

第二个函数显示如何获得两个数字之间的百分比增加/减少。

def get_percentage_increase(num_a, num_b):return ((num_a - num_b) / num_b) * 100print(get_percentage_increase(50, 30))  # 👉️ 66.6666...
print(get_percentage_increase(50, 100))  # 👉️ -50.0

第一个示例显示从 30 增加到 50 的百分比是 66.6666...%

第二个显示从 10050 的百分比增加是 -50%

如果你总是需要得到一个正数,使用 abs() 函数。

def get_percentage_increase(num_a, num_b):return (abs(num_a - num_b) / num_b) * 100print(get_percentage_increase(50, 30))  # 👉️ 66.6666...
print(get_percentage_increase(50, 100))  # 👉️ 50.0

abs 函数返回数字的绝对值。 换句话说,如果数字是正数,则返回数字,如果数字是负数,则返回数字的负数。这样,我们始终可以保证在计算两个数字之间的百分比差异时得到一个正数。

我们可能想要处理的事情是除以 0。除以 0 会在 Python 中引发 ZeroDivisionError

def get_percentage_increase(num_a, num_b):return (abs(num_a - num_b) / num_b) * 100print(get_percentage_increase(50, 0))  # 👉️ inf
print(get_percentage_increase(50, 50))  # 👉️ 0.0
print(get_percentage_increase(50, 100))  # 👉️ 50.0

python ZeroDivisionError

我们可以在 try/except 块中处理错误。

def get_percentage_increase(num_a, num_b):try:return (abs(num_a - num_b) / num_b) * 100except ZeroDivisionError:return float('inf')print(get_percentage_increase(50, 0))  # 👉️ inf
print(get_percentage_increase(50, 50))  # 👉️ 0.0
print(get_percentage_increase(50, 100))  # 👉️ 50.0

如果我们收到 ZeroDivisionError 错误,我们将返回 Infinity,但是我们可以以适合您的用例的任何其他方式处理该错误。


http://www.ppmy.cn/news/42129.html

相关文章

Java-红黑树的实现

目录一、概述二、红黑树的操作1. 变色2. 左旋与右旋3. 插入节点4. 删除节点三、手写代码1. 通用方法2. 中序遍历3. 左旋4. 右旋5. 添加节点6. 删除节点四、完整代码五、测试1. 红黑树打印类2. 测试代码3. 测试结果一、概述 关于红黑树的学习,先推荐给大家一个网址&…

Spark对正常日志文件清洗并分析

目录 日志文件准备: 一.日志数据清洗: 第一步:数据清洗需求分析: 二.代码实现 2.1 代码和其详解 2.2创建jdbcUtils来连接Mysql数据库 2.3 运行后结果展示: 三、留存用户分析 3.1需求概览 3.2.代码实现 3…

python接口自动化之模拟文件上传接口

一般上传文件的接口格式如下: import requests # 定义url url "http://example.com/upload-file" # 定义请求体(如果没有可以不写),为None即可 data {key1: value1, key2: value2} # 定义请求头 headers {token: token} # 定义上传的文件参…

【数据结构初阶】第五节.栈的详讲

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、栈的基本认识 二、栈模拟实现: 三、栈的实战演练 3.1 有效的括号 3.2 逆波兰表达式 3.3 栈的压入、弹出序列 总结 前言 上一节内容我…

【创造者】Python在AI领域的应用和前景

Python 是一种流行的编程语言,因其易于学习和使用而备受欢迎。它在人工智能领域的应用尤为广泛,可以用于构建和训练各种类型的机器学习和深度学习模型,从而实现人工智能应用。 在 Python 中,有许多开源的库和框架可供使用&#x…

技术面面试高频考点总结-操作系统篇

技术面面试高频考点总结-操作系统篇 文章目录技术面面试高频考点总结-操作系统篇一、操作系统必考考点列举二、操作系统推荐学习资料三、小结题外话大家好呀,这里是小黛!操作系统也是在面试中必考的内容,那今天就来介绍一下吧~ 大家可以用这…

Flink之StreamTableEnvironment对象

StreamTableEnvironment对象方法简介 #1.executeSql("sql 语句") 可以执行SQL #2.sqlQuery("sql 语句") 执行SQL查询,返回查询结果 #3.from("table name") 加载table到内存中 #4.executeInsert("table name") 把结果插入到…

蓝桥杯嵌入式第十一届省赛题目解析

写完第十一届蓝桥杯嵌入式省赛题目,拿出来给大家参考参考,也是让大家一起测试看看有什么问题还需要改进,代码在最后喔。 目录 客观题: 程序设计题 : 题目解析: CubeMX配置 代码演示 : 客观…