网络编程
位置:首页>> 网络编程>> Python编程>> python计算两个数的百分比方法

python计算两个数的百分比方法

作者:海边的椰子树  发布时间:2021-06-20 16:39:45 

标签:python,百分比

工作中遇到了要计算两个数百分比的问题,python 2.7 环境。

代码:


#!/usr/bin/env python
#function: 计算百分比
#USAGE: python calculator.py num1 num2
import sys
a=sys.argv[1]
a=float(a)
b=sys.argv[2]
b=float(b)
print "%.2f%%" % (a/b*100)

示例:


root@ops-docker-1:/tmp/data# python calculator.py 3 11
27.27%

下面是我工作中的应用

需求:要计算一堆数的百分比 并记录在文件中


原始文件
-------
root@ops-docker-1:/tmp/data# head -n 7 a.txt
北京 总计:2488         北京 总计:78353      
   电信   301         电信   6515
   移动   70         移动   2349
   联通   1500        联通   36736
   铁通   60         铁通   1671
   教育网   12         教育网   234
   鹏博士   9         鹏博士   51

shell脚本
---------
root@ops-docker-1:/tmp/data# cat ratio.sh
#!/bin/bash
#USAGE: sh ratio.sh src-file dst-file
>$2
i=1
for n in $(grep -E -o "([0-9]*)" $1)
do
if [ $(($i%2)) -ne 0 ];then
 echo $n >A
else
 echo $n >B
 A=$(cat A)
 B=$(cat B)
 echo $A "\t" $B "\t" $(python calculator.py $A $B)>>$2
fi
i=$(($i+1))
done
rm -rf A B

使用
----
root@ops-docker-1:/tmp/data# sh ratio.sh a.txt b.txt
root@ops-docker-1:/tmp/data# head -n 7 b.txt
2488   78353  3.18%
301   6515  4.62%
70    2349  2.98%
1500   36736  4.08%
60    1671  3.59%
12    234   5.13%
9    51   17.65%

合并两个文件格式化处理后显示
root@ops-docker-1:/tmp/data# head -n 7 ab.txt
--------------
北京 总计:2488         北京 总计:78353         2488  78353   3.18%
   电信   301         电信   6515      301  6515   4.62%
   移动   70         移动   2349      70   2349   2.98%
   联通   1500        联通   36736     1500  36736   4.08%
   铁通   60         铁通   1671      60   1671   3.59%
   教育网   12         教育网   234      12   234    5.13%
   鹏博士   9         鹏博士   51      9   51    17.65%

来源:https://blog.csdn.net/Hehailiang_Dream/article/details/54944392

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com