Hallo und Herzlich Willkommen =)
In dieser Lektion zeige ich dir wie du die enorm viel Zeit und Arbeit sparen kannst, indem du Code nutzt der bereits von anderen Programmierern geschrieben, optimiert und getestet wurde.

Python wird von sehr vielen Entwicklern genutzt, und sehr häufig brauchen viele Entwickler die gleichen grundlegenden Funktionalitäten in ihren Programmen.
Deshalb gibt es Funktionen wie print(), die standardmäßig in Python enthalten sind, damit nicht jeder Entwickler seine eigene Funktion schreiben muss um einen Text im Konsolenfenster anzuzeigen.
Und es gibt natürlich nicht nur Funktionen, um Text auszugeben, sondern für fast alle denkbaren Standard Funktionalitäten, die du in deinen Programmen verwenden möchtest.
Diese bereits vorhandenen Funktionen sind oft sehr gut getestet, sodass bei deren Verwendung nur wenig Fehler auftreten.
Außerdem sind die darauf optimiert möglichst schnell ausgeführt zu werden und dabei möglichst wenig Speicherplatz zu belegen.
Einige dieser Funktionen, wie print() kannst du einfach so verwenden.
Andere Funktionen gehören zwar auch standardmäßig zu Python dazu, müssen aber vor der Nutzung erst in dein Programm eingebunden werden.
Funktionen mit gleichen Anwendungsbereichen werden dabei meist in Module zusammengefasst.
Module dienen also als Sammlung von vorgefertigten Funktionen.
Möchtest du vorhandenen Funktionen nutzen, kannst du nach dem Schlüsselwort „import“ den Namen des Moduls, in dem die Funktionen enthalten sind, angeben, und es somit in dein Programm einbinden.
Normalerweise befindet sich der Abschnitt, in dem Module in ein Programm eingebunden werden immer zu Beginn des Codes.
Zur Nutzung einer Funktion aus dem importieren Modul, kannst du im Code den Namen des Moduls, gefolgt von einem Punkt und anschließend dem Namen der Funktion schreiben.
Möchtest du nicht das ganze Modul, sondern nur Teile daraus importieren, kannst du das „from“ Schlüsselwort nutzen.
Wenn dir der Name eines Moduls zu lang ist um ihn immer wieder zu tippen, kannst du ein Modul mit dem Schlüsselwort „as“ unter einem beliebigen Namen importieren.

import time
from datetime import datetime
import math as m

for i in range(3):
    print(f"{datetime.now()} - {m.pi}")
    time.sleep(1)

### ERGEBNIS / AUSGABE ###
2020-04-23 19:07:08.299398 - 3.141592653589793
2020-04-23 19:07:09.314949 - 3.141592653589793
2020-04-23 19:07:10.315151 - 3.141592653589793
Einige Module werden nicht standardmäßig mit Python mitgeliefert.
Wenn du versuchst eine Funktion aus einem dieser Module zu verwenden wirst du eine Fehlermeldung erhalten:
„ModuleNotFoundError: No module named ‘NameDesModuls’“

Um fehlende Module zu installieren kannst du pip, den Standard Paket Manager von Python verwenden.
Zum installieren eines Moduls musst du zuerst die Eingabeaufforderung öffnen.
Dort kannst du dann mit dem Befehl „pip install“ Pakete aus dem Python Paket Index (https://pypi.org/) installieren.
Dort findest du normalerweise alles was du brauchst.
Möchtest du zum Beispiel Funktionen zum Erstellen von Diagrammen nutzen, gibst du den Befehl „pip install matplotlib“ ein.
Pip beginnt dann automatisch mit dem Download des Paketes und gibt bescheid sobald es erfolgreich installiert wurde.

Du kannst sehen welche externen Module du auf deinem Rechner installiert hast indem du den Befehl „pip list“ ausführst.

Nach der Installation kannst du das Modul wie gewohnt importieren und nutzen.

from matplotlib import pyplot as plt

plt.plot([1, 2, 4, 8, 16, 32])
plt.show()

### ERGEBNIS / AUSGABE ###
Wenn du Probleme oder Fragen zu dieser Lektion hast, dann schaue am besten in die Kommentare wo du schon viele Antworten finden wirst oder ich deine offenen Fragen schnellstmöglich beantworten werde.
Wenn du es geschafft hast ein Modul aus dem Python Paket Index mit pip zu installieren, in dein eigenes Programm einzubinden und es dort zu nutzen hast du einen weiteren riesigen Schritt geschafft und weißt jetzt die wichtigsten Grundlagen die du brauchst um diene ersten kleinen Programme zu schreiben um die Welt ein klein wenig besser zu machen =)