Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
talit:python_basics_2 [2021-03-11 07:27] – [Aufgabe 2.2] sps | talit:python_basics_2 [2021-06-03 13:02] (aktuell) – [Aufgabe 3] sps | ||
---|---|---|---|
Zeile 29: | Zeile 29: | ||
## Aufgabe 2.2 | ## Aufgabe 2.2 | ||
- | * falls du das nicht eh schon gemacht hast, ist das die nächste Aufgabe: Prüfung und erneute Abfrage bei falscher Eingabe soll in einer (oder mehreren) Funktionen | + | * falls du das nicht eh schon gemacht hast, ist das die nächste Aufgabe: Prüfung und erneute Abfrage bei falscher Eingabe soll in einer Funktion '' |
<code python> | <code python> | ||
""" | """ | ||
- | def validate_int(i): | + | def get_int_value(caption): |
- | Diese Funktion | + | Diese Funktion |
- | falls nein, wird ein Fehler zurückgegeben. | + | Zurückgegeben, wird entweder die Zahl oder q. |
+ | Die Funktion soll eine weitere Funktion validate_int() verwenden (s. unten). | ||
Parameter: | Parameter: | ||
- | i String, der in eine Zahl umgewandelt werden soll | + | caption |
- | Rückgabewerte: | + | Rückgabewerte: |
- | num ermittelte | + | num eingegebene |
- | err | + | quit True Benutzer hat mit " |
- | -1 Fehler, String i enthält Zeichen, die nicht in Zahlen umgewandelt werden können | + | False Zahl steht in num |
""" | """ | ||
- | def validate_int(i): | + | def get_int_value(caption): |
pass | pass | ||
""" | """ | ||
- | def get_int_value(caption): | + | def validate_int(i): |
- | Diese Funktion | + | Diese Funktion |
- | wiederholt, bis eine gültige Zahl eingegeben wurde oder die Eingabe vom Benutzer mit " | + | |
- | zurückgegeben, | + | |
- | Die Funktion soll die oben stehende Funktion validate_int verwenden. | + | |
Parameter: | Parameter: | ||
- | caption | + | i String, der in eine Zahl umgewandelt werden soll |
- | Rückgabewerte: | + | Rückgabewerte: |
- | num eingegebene | + | num ermittelte |
- | quit True Benutzer hat mit " | + | err |
- | False Zahl steht in num | + | -1 Fehler, String i enthält Zeichen, die nicht in Zahlen umgewandelt werden können |
""" | """ | ||
- | def get_int_value(caption): | + | def validate_int(i): |
pass | pass | ||
</ | </ | ||
Zeile 77: | Zeile 74: | ||
* In der nächsten Version werden weiterhin zwei Zahlen eingegeben, aber neu ist, dass auch der Operator eingegeben werden kann/muss. | * In der nächsten Version werden weiterhin zwei Zahlen eingegeben, aber neu ist, dass auch der Operator eingegeben werden kann/muss. | ||
* Es werden also nicht mehr einfach Summe und Produkt berechnet, sondern der Benutzer gibt die Operation vor, und es wird anschliessend nur noch genau diese Operation berechnet und ausgegeben. | * Es werden also nicht mehr einfach Summe und Produkt berechnet, sondern der Benutzer gibt die Operation vor, und es wird anschliessend nur noch genau diese Operation berechnet und ausgegeben. | ||
- | * Erlaubte Operatoren sind: + - * / % e w | + | * Erlaubte Operatoren sind: '' |
- | * **+ - * /** dürften klar sein | + | * '' |
- | * **%** bedeutet //modulo// und berechnet den Rest der ganzzahligen Division.\\ 7 / 3 = 3 Rest 1, somit 7 % 3 = 1\\ In Python verwendet man dafür ebenfalls den Operator %. | + | * '' |
- | * **e** verwenden wir für // | + | * '' |
- | * **w** steht für //Wurzel//, also " | + | * '' |
+ | |||
+ | Für diese Aufgabe benötigen wird drei neue Funktionen: | ||
+ | <code python> | ||
+ | def get_operator(caption) | ||
+ | </ | ||
+ | und darin | ||
+ | <code python> | ||
+ | def validate_op(s) | ||
+ | </ | ||
+ | und schliesslich für die eigentliche Berechnung: | ||
+ | <code python> | ||
+ | def calc_result(n1, | ||
+ | </ | ||
## Aufgabe 4 | ## Aufgabe 4 | ||
Zeile 87: | Zeile 97: | ||
* Es werden nun keine einzelnen Zahlen und auch kein Operator mehr abgefragt, sondern nur noch der ganze Ausdruck, zB. 24*13. | * Es werden nun keine einzelnen Zahlen und auch kein Operator mehr abgefragt, sondern nur noch der ganze Ausdruck, zB. 24*13. | ||
* Es gibt also nur noch eine einzige Eingabe. | * Es gibt also nur noch eine einzige Eingabe. | ||
- | * Das Programm prüft vor der Berechnung, ob der Ausdruck aus zwei Zahlen und einen Operator besteht. Falls nein, wird das erste ungültige Zeichen angezeigt und die Eingabe muss korrekt wiederholt werden. | + | * Das Programm prüft vor der Berechnung, ob der Ausdruck aus zwei Zahlen und einem Operator besteht. Falls nein, wird das erste ungültige Zeichen angezeigt und die Eingabe muss korrekt wiederholt werden. |
## Aufgabe 5 | ## Aufgabe 5 |