Skip to content

Commit 3f0aba7

Browse files
author
dodo
committed
Beispielcode für Level 5
1 parent 04b05ee commit 3f0aba7

1 file changed

Lines changed: 192 additions & 0 deletions

File tree

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
u"""
2+
Das folgende Programm ist ein einfacher Taschenrechner.
3+
4+
Nach dem Eingeben zweier Zahlen kann eine Operation ausgewählt werden.
5+
Anschließend wird nach neuen Zahlen gefragt.
6+
"""
7+
8+
# Für die Berechnung der Quadratwurzel wird die math Bibliothek benötigt,
9+
# desweiteren wird zum vorzeitigen Beenden die sys Bibliothek benötigt.
10+
import math
11+
import sys
12+
13+
14+
def menu():
15+
u"""Zeigt ein Menü an."""
16+
# Zuerst eine Willkommensnachricht
17+
print()
18+
print("Dies ist ein einfacher Taschenrechner.")
19+
20+
# Diese Endlosschleife wird durch Aufruf der quit Funktion beendet
21+
while True:
22+
print()
23+
counter = 0
24+
for fun in operations:
25+
print("{} {}".format(counter, fun.__name__))
26+
counter += 1
27+
print("Bitte eine Zahl für eine der Operationen angeben")
28+
choice = input(":")
29+
choice = int(choice)
30+
print()
31+
if choice < 0 or choice >= len(operations):
32+
print("Die Eingabe war zu groß.")
33+
continue
34+
else:
35+
operations[choice]()
36+
37+
38+
def add():
39+
u"""
40+
Addiert zwei eingegebene Zahlen.
41+
42+
Die Zahlen können sowohl ganze Zahlen (integer) oder Fließkommazahlen
43+
(float) sein.
44+
"""
45+
sum1 = input("Bitte den ersten Summanden eingaben: ")
46+
sum2 = input("Bitte den zweiten Summanden eingeben: ")
47+
result = float(sum1) + float(sum2)
48+
print("{} + {} = {}".format(sum1, sum2, result))
49+
50+
51+
def sum():
52+
u"""
53+
Summiert eine Menge an Zahlen auf.
54+
55+
Die Summanden können sowohl ganze Zahlen (integer) oder Fließkommazahlen
56+
(float) sein.
57+
"""
58+
values = input("Bitte die Summanden mit Leerzeichen getrennt eingeben:\n")
59+
values = values.split(" ")
60+
result = 0.0
61+
for i in values:
62+
result += float(i)
63+
print("sum({}) = {}".format(values, result))
64+
65+
66+
def product():
67+
u"""
68+
Multipliziert eine Menge an Zahlen auf.
69+
70+
Die Faktoren können sowohl ganze Zahlen (integer) oder Fließkommazahlen
71+
(float) sein.
72+
"""
73+
values = input("Bitte die Faktoren mit Leerzeichen getrennt eingeben:\n")
74+
values = values.split(" ")
75+
result = 1.0
76+
for i in values:
77+
result *= float(i)
78+
print("product({}) = {}".format(values, result))
79+
80+
81+
def difference():
82+
u"""
83+
Subtrahiert eine Zahl von einer anderen.
84+
85+
Minuend und Subtrahend können sowohl ganze Zahlen (integer) oder
86+
Fließkommazahlen (float) sein.
87+
"""
88+
minu = input("Bitte den Minuenden eingeben: ")
89+
subt = input("Bitte den Subtrahenden eingeben: ")
90+
result = float(minu) - float(subt)
91+
print("{} - {} = {}".format(minu, subt, result))
92+
93+
94+
def quotient():
95+
u"""
96+
Teilt einen Divisor durch einen Dividenden.
97+
98+
Dividend und Divisor können sowohl ganze Zahlen (integer), als auch
99+
Fließkommazahlen (float) sein. 0 oder 0.0 sind als Divisor nicht möglich.
100+
"""
101+
divid = input("Bitte den Dividenden eingeben: ")
102+
divis = input("Bitte den Divisor eingeben: ")
103+
result = float(divid) / float(divis)
104+
print("{} / {} = {}".format(divid, divis, result))
105+
106+
107+
def modulo():
108+
u"""
109+
Gibt das Ergebnis einer Modulo Division zurück.
110+
111+
Dividend und Divisor müssen ganze Zahlen sein. 0 ist als Divisor nicht
112+
möglich.
113+
"""
114+
divid = input("Bitte den Dividenden eingeben: ")
115+
divis = input("Bitte den Divisor eingeben: ")
116+
result = int(divid) % int(divis)
117+
print("{} % {} = {}".format(divid, divis, result))
118+
119+
120+
def sqrt():
121+
u"""
122+
Berechnet die Quadratwurzel einer eingegebenen Zahl.
123+
124+
Die Zahl kann sowohl eine ganze Zahl (integer) als auch eine Fließkommazahl
125+
(float) sein.
126+
"""
127+
radiant = input("Bitte eine Zahl eingeben: ")
128+
result = math.sqrt(float(radiant))
129+
print("sqrt({}) = {}".format(radiant, result))
130+
131+
132+
def power():
133+
u"""
134+
Berechnet eine Potenz.
135+
136+
Basis und Exponent können sowohl ganze Zahlen (integer), als auch
137+
Fließkommazahlen (float) sein.
138+
"""
139+
base = input("Bitte die Basis eingeben: ")
140+
exp = input("Bitte den Exponenten eingeben: ")
141+
result = pow(float(base), float(exp))
142+
print("{} ^ {} = {}".format(base, exp, result))
143+
144+
145+
def fak():
146+
u"""
147+
Berechnet die Fakultät einer Zahl.
148+
149+
Die Zahl sollte eine positive ganze Zahl (natürliche Zahl) sein.
150+
"""
151+
x = input("Bitte eine Zahl eingeben: ")
152+
result = 1
153+
for i in range(2, x + 1):
154+
result *= i
155+
print("{}! = {}".format(x, result))
156+
157+
158+
def help():
159+
u"""
160+
Ruft das Hilfe Menü auf.
161+
162+
Das Hilfe Menü zeigt die Docstrings der einzelnen Funktionen an.
163+
"""
164+
for fun in operations:
165+
print(fun.__name__)
166+
print(fun.__doc__)
167+
168+
169+
def quit():
170+
u"""Beendet das Programm."""
171+
sys.exit(0)
172+
173+
174+
# Die Funktionen für die Opertationen werden in einem Tuple gespeichert
175+
operations = (
176+
add,
177+
sum,
178+
product,
179+
difference,
180+
quotient,
181+
modulo,
182+
sqrt,
183+
power,
184+
fak,
185+
help,
186+
quit
187+
)
188+
189+
# Durch diese Bedingung wird das Menü nur aufgerufen, wenn das Programm als
190+
# Hauptprogramm läuft.
191+
if __name__ == "__main__":
192+
menu()

0 commit comments

Comments
 (0)