在Python中有没有运算符计算百分比?

79 投票
8 回答
382080 浏览
提问于 2025-04-16 17:36

我最近了解到,在Python中,“ % ”符号是用来计算一个整数的余数的。不过我不太清楚有没有其他的运算符或者方法可以用来计算百分比。

比如说,用“ / ”这个符号可以得到商,如果其中一个数是小数的话,它就会像我们平常的除法那样给出结果。那么,有没有什么方法可以用来计算百分比呢?

8 个回答

10

%的用法

def percent(expression="1000*12%") -> float:
    if "%" in expression:
        expression = expression.replace("%","")
        a, b = expression.split("*")
        a, b = float(a), float(b)
    return a*b/100

>>> percent("1500*20%")
300.0

另一种方法

p = lambda x : x/100
p20 = p(20)

>>> 150*p20
30.0
191

你可以把两个数字相除,然后再乘以100。需要注意的是,如果“whole”(整体)是0的话,这样做会出错,因为问一个数字占0的百分比是没有意义的:

def percentage(part, whole):
  return 100 * float(part)/float(whole)

或者在后面加一个%符号:

 def percentage(part, whole):
  Percentage = 100 * float(part)/float(whole)
  return str(Percentage) + “%”

如果你想问的问题是“20的5%是多少”,而不是“5占20的百分比是多少”(这是对问题的另一种理解,灵感来自于Carl Smith的回答),你可以这样写:

def percentage(percent, whole):
  return (percent * whole) / 100.0
46

在Python里没有这样的运算符,但自己实现一个其实很简单。在计算中,百分比的用处远不如取余运算,所以我想不到有哪个编程语言会专门实现这个。

撰写回答