inputs_param
                Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| inputs_param [2017/07/04 14:30] – [Beispiele] gg | inputs_param [2017/07/05 11:03] (current) – gg | ||
|---|---|---|---|
| Line 450: | Line 450: | ||
| php input.php Werner 30 | php input.php Werner 30 | ||
| </ | </ | ||
| + | |||
| + | ==== Python ==== | ||
| + | Python bietet mit **OptParse** oder **ArgParse** ziemlich gute Module für Programmparameter an. Hier soll aber gezeigt werden, wie es mit Bordmitteln funktioniert. | ||
| + | === Code === | ||
| + | <code python> | ||
| + | import sys | ||
| + | |||
| + | # Funktion definieren | ||
| + | def checkName(name): | ||
| + | # ist die Länge korrekt | ||
| + | if len(name) == 0: | ||
| + | return False | ||
| + | |||
| + | firstCharacter = True | ||
| + | for c in name: | ||
| + | if firstCharacter: | ||
| + | # ist das erste Zeichen ein Grossbuchstabe? | ||
| + | if c < ' | ||
| + | return False | ||
| + | firstCharacter = False | ||
| + | else: | ||
| + | # sind alle anderen Zeichen Kleinbuchstaben? | ||
| + | if c < ' | ||
| + | return False | ||
| + | |||
| + | # Alle Bedingungen sind erfüllt | ||
| + | return True | ||
| + | |||
| + | def checkAge(age): | ||
| + | # ist die Länge korrekt? | ||
| + | if len(age) <= 0 or len(age) > 2: | ||
| + | return False | ||
| + | |||
| + | # Fängt das erste Zeichen zwischen 1 und 9 an? | ||
| + | if age[0] < ' | ||
| + | return False | ||
| + | |||
| + | # Ist das zweite Zeichen (falls vorhanden) zwischen 0 und 9? | ||
| + | if len(age) == 2: | ||
| + | if age[1] < ' | ||
| + | return False | ||
| + | |||
| + | # Alle Bedingungen sind erfüllt | ||
| + | return True | ||
| + | |||
| + | # Die Anzahl der Parameter prüfen | ||
| + | if len(sys.argv) != 3: | ||
| + | print(" | ||
| + | sys.exit(1) | ||
| + | |||
| + | # sprechendere Namen verwenden | ||
| + | name = sys.argv[1] | ||
| + | age = sys.argv[2] | ||
| + | |||
| + | # Die Parameter prüfen | ||
| + | if not checkName(name): | ||
| + | print(" | ||
| + | sys.exit() | ||
| + | if not checkAge(age): | ||
| + | print(" | ||
| + | sys.exit() | ||
| + | |||
| + | # Ausgabe | ||
| + | print(" | ||
| + | </ | ||
| + | === Ausführen === | ||
| + | Die Datei input.py mit obigen Quelltext füllen und so zum Laufen bringen: | ||
| + | <code bash> | ||
| + | python3 input.py | ||
| + | </ | ||
| + | |||
| + | ===== Übungen ===== | ||
| + | * Lese eine ganze Zahl als Programmparameter ein und berechne die Fakultät dieser Zahl | ||
| + | * Erweitere die obigen Beispiele um einen weiteren Parameter. Lese zusätzlich das Geburtsdatum ein (inklusive Prüfungen!) und gib es aus | ||
| + | * Baue einen kleinen Taschenrechner, | ||
| + | * Erweitere den Taschenrechner um die Multiplikation und Division | ||
inputs_param.1499171453.txt.gz · Last modified: 2017/07/04 14:30 by gg
                
                