python3刷TK题库 1009: 财务管理

in #acm7 years ago (edited)

这道主要是输出的格式问题。在python3,有两种模式可选,
print("¥%.2f" % average)
print("¥{:.2f}".format(average))

使用format来表达字符串是最新的方式,它有前一种无法实现的灵活性,如:
命令: print('{1} {0}'.format('one', 'two'))
相应输出: two one

http://tk.hustoj.com/problem.php?id=1009

1009: 财务管理
时间限制: 1 Sec 内存限制: 32 MB
提交: 4479 解决: 2245
[提交][状态][讨论版][命题人:外部导入][下载1元][28kb]
题目描述
小明毕业一年了,并且找到了一份好工作。这一年里他赚了很多钱,现在他想知道他这一年里的平均月薪是多少,请你写一个程序帮他计算。
输入
输入包括12行。第i行为第i个月的实际月薪。(i=1,2,3...)
输出
输出小明的平均月薪,保留两位小数,并且最前面输出一个¥符号。
样例输入
100.00
489.12
12454.12
1234.10
823.05
109.20
5.27
1542.25
839.18
83.99
1295.01
1.75
样例输出
¥1581.42

附一个CPP程序:

#include <iostream>  
#include <iomanip>  
#define MONTH 12  
using namespace std;  
  
int main()  
{  
    int i;  
    float a,sum=0;  
   for(i=1;i<=MONTH;++i)  
   {  
       cin>>a;  
       sum+=a;  
   }  
  
   cout<<"¥"<<setiosflags(ios::fixed)<<setprecision(2)<<sum/12<<endl;  
   return 0;  
}  

我的python3程序:

month_salary=0
total=0
for i in range(0,12):
    month_salary=float(input())
    total=total+month_salary
    i=i+1
average=total/12
print("¥{:.2f}".format(average))

参考资料

  1. https://pyformat.info/
  2. https://www.ploggingdev.com/2016/11/floating-point-arithmetic-issues-in-python-3/
  3. https://stackoverflow.com/questions/8885663/how-to-format-a-floating-number-to-fixed-width-in-python