fork download
  1. """based on http://w...content-available-to-author-only...s.gov/taxstats/indtaxstats/article/0,,id=133521,00.html
  2. in particular Tax Generated, Classified by: Tax Rate and Size of Adjusted Gross Income, in 2008
  3. http://w...content-available-to-author-only...s.gov/pub/irs-soi/08in35tr.xls
  4. """
  5.  
  6. payers_str = """\
  7. 217,955
  8. 365,765
  9. 587,434
  10. 1,137,799
  11. 1,651,758
  12. 2,342,620
  13. 2,542,013
  14. 2,747,013
  15. 2,880,415
  16. 3,266,667
  17. 8,354,766
  18. 8,078,487
  19. 14,031,669
  20. 10,881,138
  21. 19,044,011
  22. 11,672,302
  23. 13,816,581
  24. 3,466,191
  25. 574,677
  26. 139,660
  27. 59,078
  28. 85,689
  29. 21,238
  30. 13,403"""
  31.  
  32. taxes_str = """\
  33. 4,553
  34. 46,472
  35. 68,738
  36. 187,187
  37. 330,361
  38. 618,635
  39. 1,008,780
  40. 1,419,491
  41. 1,892,034
  42. 2,532,470
  43. 8,784,435
  44. 12,351,214
  45. 32,408,731
  46. 37,948,614
  47. 107,402,789
  48. 102,841,250
  49. 240,148,659
  50. 184,072,786
  51. 92,512,758
  52. 42,310,594
  53. 25,763,527
  54. 64,697,267
  55. 35,640,067
  56. 86,304,057"""
  57.  
  58. def parse_data(s):
  59. return [int(v.replace(',', '')) for v in s.split()]
  60.  
  61. payers, taxes = parse_data(payers_str), parse_data(taxes_str)
  62. total_payers, total_taxes = sum(payers), sum(taxes)
  63. curr_payers, curr_taxes = 0, 0
  64. for p, t in zip(payers, taxes):
  65. curr_payers += p
  66. curr_taxes += t
  67. print('{0:>4.1f}% payers paid {1:>4.1f}% taxes'.format(100.0 * curr_payers / total_payers, 100.0 * curr_taxes / total_taxes))
  68.  
Success #stdin #stdout 0.01s 27712KB
stdin
Standard input is empty
stdout
 0.2% payers paid  0.0% taxes
 0.5% payers paid  0.0% taxes
 1.1% payers paid  0.0% taxes
 2.1% payers paid  0.0% taxes
 3.7% payers paid  0.1% taxes
 5.8% payers paid  0.1% taxes
 8.2% payers paid  0.2% taxes
10.7% payers paid  0.3% taxes
13.4% payers paid  0.5% taxes
16.4% payers paid  0.7% taxes
24.2% payers paid  1.6% taxes
31.6% payers paid  2.7% taxes
44.6% payers paid  5.7% taxes
54.7% payers paid  9.2% taxes
72.4% payers paid 19.1% taxes
83.2% payers paid 28.7% taxes
96.0% payers paid 50.9% taxes
99.2% payers paid 67.9% taxes
99.7% payers paid 76.4% taxes
99.8% payers paid 80.4% taxes
99.9% payers paid 82.7% taxes
100.0% payers paid 88.7% taxes
100.0% payers paid 92.0% taxes
100.0% payers paid 100.0% taxes