fork download
  1. import math
  2.  
  3. def toKelvin(this, convertFrom):
  4. if convertFrom == "f":
  5. return (this + 459.67) * 5/9
  6. elif convertFrom == "c":
  7. return this + 273.15
  8. else:
  9. return "nope"
  10.  
  11. def toCelsius(this, convertFrom):
  12. if convertFrom == "f":
  13. return (this - 32) * 5/9
  14. elif convertFrom == "k":
  15. return this - 273.15
  16. else:
  17. return "nope"
  18.  
  19. def toFahrenheit(this, convertFrom):
  20. if convertFrom == "c":
  21. return (this * 9/5) + 32
  22. elif convertFrom == "k":
  23. return (this * 9/5) - 459.67
  24. else:
  25. return "nope"
  26.  
  27. def toRadians(this, convertFrom):
  28. if convertFrom != "d":
  29. return "nope"
  30. else:
  31. return this * (math.pi / 180)
  32.  
  33. def toDegrees(this, convertFrom):
  34. if convertFrom != "r":
  35. return "nope"
  36. else:
  37. return this * (180 / math.pi)
  38.  
  39.  
  40. def convert(this):
  41. convertFrom = this[-2:-1]
  42. convertTo = this[-1:]
  43. old = float(this[:-2])
  44. new = ""
  45.  
  46. if convertTo == "d":
  47. new = toDegrees(old, convertFrom)
  48. elif convertTo == "r":
  49. new = toRadians(old, convertFrom)
  50. elif convertTo == "c":
  51. new = toCelsius(old, convertFrom)
  52. elif convertTo == "f":
  53. new = toFahrenheit(old, convertFrom)
  54. elif convertTo == "k":
  55. new = toKelvin(old, convertFrom)
  56.  
  57. if new == "nope":
  58. return "No candidate for conversion"
  59. else:
  60. return (str(round(new, 2)) + convertTo)
  61.  
  62. def main():
  63. challenge = "3.1416rd\n90dr"
  64. bonus = "212fc\n70cf\n100cr\n315.15kc"
  65.  
  66. t = bonus
  67.  
  68. inputs = t.split('\n')
  69. outputs = []
  70.  
  71. for i in range(len(inputs)):
  72. outputs.append(convert(inputs[i]))
  73. print(outputs[i])
  74.  
  75. main()
  76.  
Success #stdin #stdout 0.02s 9984KB
stdin
Standard input is empty
stdout
100.0c
158.0f
No candidate for conversion
42.0c