Rechner.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #Import
  2. import math
  3. #Funktionen der Rechenoperationen
  4. def add(a, b):
  5. return int(a) + int(b)
  6. def substract1(a, b):
  7. return int(a) - int(b)
  8. def substract2(a, b):
  9. return int(b) - int(a)
  10. def multiply(a, b):
  11. result = 0
  12. for i in range(int(b)):
  13. result = add(result, a)
  14. return result
  15. def divide(a, b):
  16. return int(a) / int(b)
  17. def modulo(a, b):
  18. return int(a) % int(b)
  19. def exponation(a,b):
  20. return int(a) ** int(b)
  21. def falcutaet(n: int) -> int:
  22. if n == 1:
  23. return 1
  24. else:
  25. return falcutaet(n-1)*n
  26. #Hauptfunktion des Rechners
  27. def rechner():
  28. operation = input("Gib die Rechenoperation an (Addition(+), Subtraktion(-), Multiplikation(*), Division(/), Modulo(%), Potenzieren(**), Fakultaet(!)): ") #Variabelen definieren
  29. #Abfangen von ungültigen Eingaben
  30. while True:
  31. a = input("Zahl 1 = ")
  32. if a.isdigit():
  33. break
  34. else:
  35. print("Ungültige Eingabe. Bitte erneut eingeben.")
  36. while True:
  37. if operation == "!":
  38. b = 0
  39. break
  40. b = input("Zahl 2 = ")
  41. if b.isdigit():
  42. break
  43. else:
  44. print("Ungültige Eingabe. Bitte erneut eingeben.")
  45. result = 0
  46. a = float(a)
  47. b = float(b)
  48. #Auswahl und durchführung der Rechenoperation
  49. if operation not in ["+", "-", "*", "/", "%", "**", "!"]:
  50. print("Ungültige Rechenoperation. Bitte erneut eingeben.")
  51. operation = input("Gib die Rechenoperation an (Addition(+), Subtraktion(-), Multiplikation(*), Division(/), Modulo(%), Potenzieren(**), Fakultaet(!)): ")
  52. if operation == "+": #Addition
  53. result = add(a, b)
  54. print("Ergebnis: " + str(result))
  55. elif operation == "-": #Subtraktion
  56. if a > b:
  57. result = substract1(a, b)
  58. print("Ergebnis: " + str(result))
  59. else:
  60. result = substract2(a, b)
  61. print("Ergebnis: " + str(result))
  62. elif operation == "*": #Multiplikation
  63. result = multiply(a, b)
  64. print("Ergebnis: " + str(result))
  65. elif operation == "/": #Division
  66. if b == 0:
  67. print("Fehler: Division durch Null ist nicht erlaubt.")
  68. else:
  69. result = divide(a, b)
  70. print("Ergebnis: " + str(result))
  71. elif operation == "%": #Modulo
  72. if b == 0:
  73. print("Fehler: Division durch Null ist nicht erlaubt.")
  74. else:
  75. result = modulo(a, b)
  76. print("Ergebnis: " + str(result))
  77. elif operation == "**": #Exponation
  78. result = exponation(a, b)
  79. print("Ergebnis: " + str(result))
  80. elif operation == "!": #Fakultaet
  81. if a < 1:
  82. print("Fehler: Fakultaet ist nur für positive ganze Zahlen definiert.")
  83. else:
  84. result = falcutaet(int(a))
  85. print("Ergebnis: " + str(result))
  86. #Hauptprogramm
  87. start = "j"
  88. while True:
  89. start = input("Möchten Sie den Rechner benutzen? (j/n) ")
  90. if start == "j":
  91. rechner()
  92. elif start == "n":
  93. print("Programm beendet.")
  94. break
  95. else:
  96. print("Ungültige Eingabe. Bitte 'j' oder 'n' eingeben.")
  97. start = "j"