Kurs Python richtig lernen/Aufgabe 3: Parameter einlesen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche

Zurück zum Kurs Python richtig lernen#Uebungen.

Dieses Beispiel zeigt, wie wir ein Python-Programm vom Terminal aus starten können und Parameter an das Programm übergeben können.

Das Beispielprogramm quadrieren.py verlangt ein einziges Argument: eine ganze Zahl. Diese Zahl wird dann vom Programm quadriert und im Terminal ausgedruckt wird.

Das Beispielprogramm namen_ausgeben.py verlangt zwei Argumente: einen Vor- und einen Nachnamen. Es wird dann in der Konsole geschrieben: "Dein Name ist Vorname Nachname" (was Vorname und Nachname dann auch sind)

Um das Programm auszuführen, müssen wir das Programm in der Konsole aufrufen, also zum Beispiel:

 python quadrieren.py 5
 python namen_ausgeben.py Albert Einstein

quadrieren.py

# -*- coding: utf-8 -*-
import sys


def quadrieren(zahl):
    return zahl * zahl


def main():
    if len(sys.argv) < 2:
        # Wird ausgeführt wenn das Programm nicht korrekt aufgerufen wurde
        print """quadrieren.py
        Quadriert eine ganze Zahl.
        Funktionsweise:
            python quadrieren.py zahl
        """
        sys.exit()
    
    # Programm ausführen, das heisst, etwas Nützliches machen
    zahl = int(sys.argv[1])
    print quadrieren(zahl)


if __name__ == '__main__':
    main()
 

namen_wiedergeben.py

# -*- coding: utf-8 -*-
import sys


def namen_ausgeben(vorname, name):
    print 'Dein Name ist', vorname, name


def main():
    if len(sys.argv) < 3:
        # Wird ausgeführt wenn das Programm nicht korrekt aufgerufen wurde
        print """namen_wiedergeben.py
        Gibt den Namen aus, der als Parameter dem Programm uebergeben wurde.
        Funktionsweise:
            python namen_wiedergeben.py Vorname Nachname
        Beispiel:
            python namen_wiedergeben.py Albert Einstein
            Schreibt "Dein Name ist Albert Einstein" in die Konsole.
        """
        sys.exit()
    
    # Programm ausführen, das heisst, etwas Nützliches machen
    vorname = sys.argv[1]
    name = sys.argv[2]
    namen_ausgeben(vorname, name)


if __name__ == '__main__':
    main()