Читать книгу Programmieren mit LEGO® MIND-STORMS® 51515 und SPIKE® Prime - Alexander Schulze - Страница 26

Programmstruktur

Оглавление

Für die Kennzeichnung eines zusammengehörigen Programmblocks werden Einrückungen genutzt. Dies hat den großen Vorteil, dass durch diese Vorgabe eine lesbare Form des Programmcodes entsteht. Alle Programmzeilen mit der entsprechenden Einrückung werden als zusammengehörig angesehen. Sobald der Programmcode innerhalb eines Blocks gerufen wird, wird der gesamte Code des Blocks nacheinander ausgeführt, bis entweder das Blockende erreicht ist oder ein Fehler auftritt.

Runde Klammern werden für die Klammerung von Ausdrücken sowie Methodensignaturen und Methodenaufrufe verwendet. Eine öffnende Klammer leitet den Ausdruck beziehungsweise die Übergabe von Parametern an eine Methode oder deren Deklaration ein und muss mit einer schließenden Klammer abgeschlossen werden.

Das folgende kurze Beispiel zeigt diese Aspekte für einen Block und den Aufruf einer Methode print mit Parameterübergabe in runden Klammern kurz auf. Wenn der Wert der Variablen a kleiner als 5 ist, werden zwei Zeilen Text ausgegeben:

if a < 5:

print("Hallo")

print("Dies ist ein Beispiel")

In Python müssen Funktionen und Klassen, die verwendet werden sollen und nicht zu den Standardbibliotheken gehören, dem Programm bekannt gemacht werden. Dies erfolgt im Programmkopf zu Beginn eines Programms. Dabei stehen die Schlüsselwörter from und import zur Verfügung. Funktionen und Klassen sind in sogenannten Modulen definiert, die z. B. als eigenständige Python-Programmdateien mit der Dateiendung .py vorliegen. Dabei können entweder ein vollständiges Modul oder gezielt einzelne Klassen oder Funktionen importiert werden.

Die folgende Anweisung importiert das gesamte Modul math und bietet damit Zugriff auf alle Funktionen aus diesem Modul. Damit eine Funktion aus dem Modul im Programm genutzt werden kann, muss der Modulname mit einem Punkt der Funktion vorangestellt werden.

import math

Alternativ kann auch direkt eine Funktion oder Klasse importiert werden, welche dann ohne Präfix genutzt werden kann. Um beispielsweise die Funktion sin (für Sinus) aus dem Modul math direkt nutzen zu können, ist folgende Anweisung notwendig:

from math import sin

Das folgende Beispielprogramm gibt neben dem Text »Hallo Welt« auch den Kosinus und Sinus von 0 aus, wobei einmal die Funktion sin über das Modul und ein weiteres Mal durch das direkte Importieren angesprochen wird.

import math

from math import sin

print('Hallo Welt')

print(math.cos(0))

print(math.sin(0))

print(sin(0))

In der Konsole erfolgt damit folgende Ausgabe:


Der folgende Screenshot zeigt die vollständige Programmierumgebung mit ausgeklappter Konsole, Hilfe und dem erwähnten Beispielprogramm sowie der entsprechenden Ausgabe.


Abb. 3–13 // Python-Beispielprogramm mit Konsolenausgabe und Darstellung der Wissensdatenbank

Das folgende Beispiel einer vollständigen Python-Klasse mit dem Namen PythonDemo verdeutlicht mehrere sprachliche Elemente von Python. Kommentare (Zeilen mit einem # im Quellcode) beschreiben die jeweils folgende Programmzeile und geben somit einen Überblick über die wichtigsten sprachlichen Elemente, einige Ausdrücke und Schlüsselwörter. Diese werden im Verlauf des Buchs aufgegriffen und bei den einzelnen Kapiteln für die jeweiligen Themen detailliert erläutert.

# Verwendung von Klassen / Funktionen anderer Module

import random

# Definition einer Klasse PythonDemo

# Beginn des Klassennamens mit einem Großbuchstaben

class PythonDemo:

# Einrückung für die Festlegung der Zugehörigkeit der weiteren Elemente

zu der Klasse oder jeweiligen Methode

# Definition eines Konstruktors ohne weiteren Parameter

# Methodenname __init__ von Python als Erkennung des Konstruktors vorgegeben

# Runde Klammern für Methodensignatur mit öffnender und schließender Klammer

def __init__(self):

print('Konstruktoraufruf ohne Parameter')

# Definition einer Methode random_output mit einem Parameter

# Beginn mit einem Kleinbuchstaben, Trennung mehrerer Wörter durch einen Unterstrich

def random_output(self, max):

# Aufruf einer Methode randrange mit zwei Parametern

if random.randrange(0, max) < 50:

# Aufruf der Methode print mit einem Text als Parameter

print('Zufallszahl ist kleiner als 50')

else:

# Aufruf zweier Methoden print in einem Block

# Beide Methoden im else-Block werden gerufen,

# solange die erste Methode fehlerfrei durchlaufen wird

print('Schade, Zufallszahl ist größer oder gleich 50')

print('Erneut versuchen')

# Erzeugen einer neuen Objektinstanz im Hauptprogramm/-script

demo = PythonDemo()

# Aufruf der Methode mit dem Parameter 100 als Obergrenze der Zufallszahl

demo.random_output(100)

Programmieren mit LEGO® MIND-STORMS® 51515 und SPIKE® Prime

Подняться наверх