zu www.bildungsgueter.de zur Inhaltsübersicht des Kapitels

Frage 21

Programmierung mit Python

Auflistung der durch 2 und 3 teilbaren Zahlen


Aufgabentext:

Geben Sie alle Zahlen zwischen 1 und 100, die durch 2 und 3 teilbar sind, aus.

Hier ist zunächst fraglich, was überhaupt gefragt ist:

Programmversion 1

Hier werden die durch 6 teilbaren Zahlen im Bereich von 1 bis 100 bestimmt:

for i in range(1, 101):
    if i % 6 == 0:
        print (i, sep="  ",  end="\n")

Wichtige Hinweise

Der Operator % berechnet den Divisionsrest, der bei der Teilung ganzer Zahlen entsteht. Wenn eine Division "aufgeht", ist der Divisionsrest natürlich 0. Es ist also naheliegend, den Operator % für die Überprüfung der Teilbarkeit zu verwenden.

Der Audruck range(1, 101) erzeugt die natürlichen Zahlen von 1 bis einschließlich 100. Der Wert 101 wird nicht bereitgestellt. Dass man bei Verwendung der Funktion range einen Wert angeben muss, der um 1 größer ist als der größte tatsächlich gelieferte Wert, ist irritierend und führt häufig zu Programmierfehlern - vor allem dann, wenn bereits in Sprachen programmiert wurde, in denen andere Regeln gelten.

Programmversion 2

Hier werden alle Zahlen im Bereich von 1 bis 100 bestimmt, die durch 2 oder durch 3 teilbar sind:

for i in range(1, 101):
    if i % 2 == 0 or i % 3 == 0:
        print (i, sep="  ",  end="\n")

Programmversion 3

Hier wird versucht, die Ergebnisausgabe zu verschönern. Es werden jeweils 10 Zahlen in eine Zeile geschrieben, danach folgt ein Zeilenwechsel. Eine zusätzliche Variable cnt wird verwendet, um zu zählen, wie viele Zahlen bereits in die aktuelle Zeile geschrieben wurden. Solche Zählvariablen sind bei der Herstellung formatierter Ausgaben häufig.

cnt = 0
for i in range(1, 101):
    if i % 2 == 0 or i % 3 == 0:
        print ("{0:3d}".format(i),  end = "\n" if (cnt + 1) % 10 == 0 else ", ")
        cnt = cnt + 1 if cnt < 9 else 0

Bereitstellung eines Python-Programms

In der oben gezeigten Form können die Programme mit einem für die Verwendung mit Python bestimmten Entwicklungssystem ausgeführt werden. Zu denken wäre an Thonny Python IDE oder an das ältere IDLE. In den neueren Versionen von Raspbian (bzw. RaspberryOS) ist Thonny vorinstalliert; in den älteren Versionen IDLE.

Wenn das Programm ohne Verwendung einer Entwicklungsumgebung ausgeführt werden soll, gibt es zwei Möglichkeiten.

Programmstart mit dem Befehl python3

Das Programm wird aus einem Befehlszeilenfenster mit dem Befehl

python3 program.py

gestartet, wobei für program.py der Name der Datei einzusetzen ist, in der das Progrmm gespeichert ist.

Bereitstellung der Programmdatei als ausführbares Programm

Die Datei, in der der Programmtext gespeichert ist, kann in zwei Schritten zu einem ausführbaren Programm gemacht werden:

Das Programm ist also um den gezeigten Kommentar zu ergänzen:

#!/usr/bin/env python3
cnt = 0
for i in range(1, 101):
    if i % 2 == 0 or i % 3 == 0:
        print ("{0:3d}".format(i),  end = "\n" if (cnt + 1) % 10 == 0 else ", ")
        cnt = cnt + 1 if cnt < 9 else 0

Dieser Programmtext sollte nun in der Datei programm.py gespeichert werden.

Der Datei programm.py muss nun das Ausführungsrecht für ihren Eigentümer gewährt werden. Dies geschieht in der bekannten Weise mit dem Befehl chmod:

chmod u+x programm.py

Für die Ausführung des Programms wird nun ins Befehlszeilenfenster eingegeben:

./programm.py

zur Inhaltsübersicht des Kapitels