fork download
  1. def commas(data):
  2. data = str(data)
  3. place = 0
  4. commas = [-1]
  5. while place < len(data):
  6. if data[place] == ",":
  7. commas.append(place)
  8. place += 1
  9. return commas
  10.  
  11. def getParts(data):
  12. data = str(data)
  13. listOfCommas = commas(data)
  14. parts = []
  15. a = 0
  16. while a < 3:
  17. parts.append(data[listOfCommas[a] + 1:listOfCommas[a + 1]])
  18. a += 1
  19. parts.append(data[listOfCommas[3] + 1:])
  20. a = 0
  21. while a < 4:
  22. parts[a] = parts[a].strip()
  23. try:
  24. parts[a] = int(parts[a])
  25. except:
  26. pass
  27. a += 1
  28. return parts
  29.  
  30. def valueMeasure(measureUnit):
  31. units = ["GN", "GM", "PN", "TR", "ON"]
  32. values = [0.0021, 0.0321, 0.0500, 1, 0.9115]
  33. a = 0
  34. while a < len(units):
  35. if units[a] == measureUnit:
  36. return values[a]
  37. a += 1
  38.  
  39. def valueCarats(carat):
  40. carats = [24, 22, 18, 14, 12, 8, 6, 1]
  41. percentages = [1, 0.917, 0.75, 0.583, 0.50, 0.333, 0.25, 0.04167]
  42. a = 0
  43. while a < len(carats):
  44. if carats[a] == carat:
  45. return percentages[a]
  46. a += 1
  47.  
  48. def findValue(parts, dollar):
  49. value1 = 1
  50. a = 0
  51. while a < len(parts) - 1:
  52. value1 *= float(parts[a])
  53. a += 1
  54. value1 *= (100 - float(parts[3])) / 100
  55. value1 *= dollar
  56. return float(round(value1 * 100) / 100)
  57.  
  58. def main():
  59. datas = []
  60. values = []
  61. a = 0
  62. dollar = input()
  63. while a < 5:
  64. datas.append(raw_input())
  65. parts = getParts(datas[a])
  66. parts[1] = valueMeasure(parts[1])
  67. parts[2] = valueCarats(parts[2])
  68. values.append(findValue(parts, dollar))
  69. a += 1
  70. a = 0
  71. while a < 5:
  72. b = 0
  73. values[a] = str(values[a])
  74. while b < len(values[a]):
  75. if values[a][b] == ".":
  76. c = b
  77. b += 1
  78. if len(values[a][c + 1:]) == 1:
  79. values[a] += "0"
  80. print values[a]
  81. a += 1
  82.  
  83. main()
Success #stdin #stdout 0.01s 7856KB
stdin
1249.37
25, TR, 1, 17.5
64, GM, 14, 25
593, GN, 24, 30
310, PN, 8, 20
3.5, ON, 22, 16.67
stdout
1073.76
1122.29
1089.09
5158.90
3045.70