31.01.2024

Programmiersprache lernen mit einem virtuellen Python-Tutor

Python ist eine Programmiersprache, die sich durch eine klare und leicht verständliche Syntax auszeichnet. Diese Eigenschaften machen Python besonders geeignet für den Einstieg in die Programmierung, da die Sprache das Verständnis grundlegender Konzepte und Paradigmen der Informatik ohne eine komplexe Syntax fördert. Mit der Unterstützung von schulKI kannst du die Grundlagen des Programmierens kleinschrittig und interaktiv in deinen Informatikunterricht einführen.

Um die Python-Programmiersprache einzutauchen, eignet sich unser:e Python Tutor:in aus der Chatbot-Kategorie Informatik besonders gut.

Hier finden Schüler:innen zudem erste Prompt-Vorschläge, mit denen sie selbstständig in die Thematik eintauchen können und im Chat mit dem/der Python-Tutor:in eingeführt werden.

Python kennenlernen

Chatte mit der/dem Python-Tutor:in und lasse dir die Regeln der Programmiersprache ganz einfach erklären.

Kannst du mir die Regeln der Python-Programmiersprache einfach erklären?

Natürlich! Python ist bekannt für seine einfache und leicht verständliche Syntax, die oft als nahe an der menschlichen Sprache beschrieben wird. Hier sind einige grundlegende Regeln und Konzepte, die du kennen solltest:

  1. Python verwendet Einrückungen: Im Gegensatz zu vielen anderen Sprachen, die Klammern verwenden, um Blöcke von Code zu strukturieren, verwendet Python Einrückungen. Das bedeutet, dass der Code innerhalb von Schleifen, Funktionen, Klassen usw. eingerückt wird, um zu signalisieren, dass er zu diesem Block gehört.
   def funktion():
       # Dies ist ein Code-Block innerhalb der Funktion.
       print("Eingerückter Code")

   # Dies ist außerhalb der Funktion und nicht mehr eingerückt.
   print("Nicht eingerückter Code")
  1. Variablennamen: Variablennamen in Python können Buchstaben, Ziffern und Unterstriche enthalten, dürfen jedoch nicht mit einer Ziffer beginnen. Außerdem sind Variablennamen case-sensitive, das heißt, variable und Variable wären unterschiedliche Variablen.
  2. Datentypen: Python hat verschiedene eingebaute Datentypen wie int (ganze Zahlen), float (Fließkommazahlen), str (Zeichenketten), list (Listen), tuple (Tupel), dict (Wörterbücher) und bool (Boolesche Werte: True oder False).
  3. Kommentare: In Python beginnen Kommentare mit einem # und erstrecken sich bis zum Ende der Zeile. Mehrzeilige Kommentare werden in der Regel mit dreifachen Anführungszeichen """ oder ''' am Anfang und am Ende markiert.
   # Dies ist ein Einzeiliger Kommentar

   """
   Dies ist ein
   mehrzeiliger Kommentar
   """
  1. Operatoren: Python unterstützt übliche mathematische Operatoren wie + (Addition), - (Subtraktion), * (Multiplikation), / (Division), // (ganzzahlige Division), ** (Potenzierung) und % (Modulo).
  2. Kontrollstrukturen: if, elif und else werden verwendet, um bedingten Code auszuführen. Schleifen gibt es in Form von for und while.
   if bedingung:
       # Tu etwas
   elif andere_bedingung:
       # Tu etwas anderes
   else:
       # Tu noch etwas anderes

   for element in iterable:
       # Wiederhole für jedes Element

   while bedingung:
       # Wiederhole, solange die Bedingung wahr ist
  1. Funktionen: Eine Funktion wird mit dem Schlüsselwort def definiert, gefolgt von einem Funktionsnamen und einer in Klammern eingeschlossenen Parameterliste. Der Code innerhalb der Funktion wird eingerückt.
   def meine_funktion(parameter):
       # Körper der Funktion
       return ergebnis
  1. Importieren von Modulen: Externe Bibliotheken oder Module werden mit import importiert. Du kannst spezifische Funktionen oder Klassen mit from modulename import something importieren.
   import math
   from datetime import datetime
  1. Fehlerbehandlung: Python verwendet try und except Blöcke, um Fehler (Exceptions) abzufangen und entsprechend darauf zu reagieren.
   try:
       # Versuche, etwas zu tun, das einen Fehler verursachen könnte
       pass
   except Exception as e:
       # Handle den Fehler
       print(e)
  1. PEP 8: PEP 8 ist der Style Guide für Python-Code. Es gibt Konventionen, wie z.B. die Nutzung von Leerzeichen, Zeilenlänge und Namensgebung, die dazu beitragen, den Code sauber und konsistent zu halten.

Diese Regeln und Konzepte bieten eine solide Grundlage für das Schreiben von Python-Code. Es gibt natürlich noch viele andere Aspekte der Sprache, und das Erlernen geschieht am besten durch Praxis und Erfahrung.

Scripte schreiben lassen

Mithilfe des Chatbots kannst du selber Scripte schreiben lassen, wie diese Beispiele zeigen:

Kannst du mir ein Python-Script erstellen, das mir hilft, meine Packliste für den Urlaub zu organisieren? Unterteile die Liste in die Kategorien: Kosmetik, Kleidung und Freizeitutensilien.

Natürlich, ich kann dir ein einfaches Script schreiben, das eine Packliste in den genannten Kategorien erstellt und verwaltet. Das Script gibt dir die Möglichkeit, Elemente in jeder Kategorie hinzuzufügen und die gesamte Liste zu betrachten.

class Packliste:
    def __init__(self):
        self.kosmetik = []
        self.kleidung = []
        self.freizeitutensilien = []

    def hinzufuegen(self, kategorie, gegenstand):
        if kategorie == 'Kosmetik':
            self.kosmetik.append(gegenstand)
        elif kategorie == 'Kleidung':
            self.kleidung.append(gegenstand)
        elif kategorie == 'Freizeitutensilien':
            self.freizeitutensilien.append(gegenstand)
        else:
            print("Unbekannte Kategorie. Bitte wählen Sie zwischen 'Kosmetik', 'Kleidung' oder 'Freizeitutensilien'.")

    def zeige_packliste(self):
        print("Packliste für den Urlaub:")
        print("Kosmetik:")
        for gegenstand in self.kosmetik:
            print(f"- {gegenstand}")
        print("\nKleidung:")
        for gegenstand in self.kleidung:
            print(f"- {gegenstand}")
        print("\nFreizeitutensilien:")
        for gegenstand in self.freizeitutensilien:
            print(f"- {gegenstand}")

# Beispiel:
packliste = Packliste()
packliste.hinzufuegen('Kosmetik', 'Zahnbürste')
packliste.hinzufuegen('Kosmetik', 'Zahnpasta')
packliste.hinzufuegen('Kleidung', 'T-Shirts')
packliste.hinzufuegen('Kleidung', 'Shorts')
packliste.hinzufuegen('Freizeitutensilien', 'Strandtuch')
packliste.hinzufuegen('Freizeitutensilien', 'Sonnenbrille')

packliste.zeige_packliste()

Dieses Skript definiert eine Klasse Packliste, die Listen für Kosmetik, Kleidung und Freizeitutensilien enthält. Du kannst mit der hinzufuegen Methode Gegenstände zu den jeweiligen Listen hinzufügen, und die zeige_packliste Methode zeigt dir die vollständige Liste deines Gepäcks an.

Um das Skript zu verwenden, musst du einfach Instanzen von Packliste erstellen und dann Gegenstände mit der hinzufuegen Methode in den gewünschten Kategorien hinzufügen. Die aktuellen Packlisten kannst du dir dann mit der zeige_packliste Methode anzeigen lassen.

Oder lasse dir beispielsweise einen Bubble-Sort-Algorithmus in Python-Programmiersprache schreiben:

Schreib mir einen einfachen Bubble-Sort-Algorithmus in Python.

Klar, hier ist ein einfacher Bubble-Sort-Algorithmus in Python:

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr

Dieser Algorithmus sortiert eine Liste, indem er nacheinander benachbarte Elemente vergleicht und sie bei Bedarf austauscht. Am Ende befinden sich die größten Elemente am Ende der Liste, und der Algorithmus wiederholt diesen Vorgang, bis die gesamte Liste sortiert ist.

Fehlersuche und Fehler beheben

Du kannst zudem eigene Scripte schreiben und mit dem Python-Chatbot gemeinsam nach Fehlern suchen und dir einzelne Sequenzen und ihre Funktion erklären lassen.

Könntest du mir helfen, die Fehler in diesem Python-Script zu finden und zu beheben?

Natürlich, ich helfe gerne! Schick mir bitte den Quellcode, den ich überprüfen soll.

packliste = Packliste
packliste.hinzufuegen('Kosmetik', 'Zahnbürste')
packliste.hinzufuegen('Kosmetik', 'Zahnpasta')
packliste.hinzufuegen('Kleidung', ,T-Shirts')
packliste.hinzufuegen('Kleidung', 'Shorts')
packliste.hinzufuegen('Freizeitutensilien', 'Strandtuch')
packliste.hinzufuegen('Freizeitutensilien', 'Sonnenbrille')

Um den Code korrigieren zu können, benötige ich mehr Informationen über die Klasse Packliste, die hier verwendet wird. Der gegebene Code ist allerdings nicht vollständig und es gibt mehrere Fehler, die ich identifizieren kann:

  1. Packliste wird ohne vorherige Definition verwendet, es ist unklar, ob dies eine Klasse oder ein Objekt ist. Es sollte mit entsprechenden Konventionsregeln groß- oder kleingeschrieben werden, je nachdem, ob es sich um eine Klassenbezeichnung handelt oder nicht.
  2. Die Methode hinzufuegen scheint eine Methode der Klasse Packliste zu sein, aber das entsprechende Objekt ist nicht ordnungsgemäß instantiiert worden.
  3. In der Zeile packliste.hinzufuegen('Kleidung', ,T-Shirts') gibt es einen Syntaxfehler bei den Anführungszeichen um T-Shirts. Dort wurde versehentlich ein zusätzliches Komma plaziert und das erste Anführungszeichen sollte ein einfaches sein.

Unter der Annahme, dass Packliste eine Klasse ist, könnte der korrigierte Code wie folgt aussehen (ich erstelle eine einfache Definition der Klasse Packliste):

class Packliste:
    def __init__(self):
        self.items = dict()

    def hinzufuegen(self, kategorie, item):
        if kategorie not in self.items:
            self.items[kategorie] = []
        self.items[kategorie].append(item)

# Erstellen eines neuen Objekts von der Klasse Packliste
packliste = Packliste()

# Hinzufügen von Items zur Packliste
packliste.hinzufuegen('Kosmetik', 'Zahnbürste')
packliste.hinzufuegen('Kosmetik', 'Zahnpasta')
packliste.hinzufuegen('Kleidung', 'T-Shirts')
packliste.hinzufuegen('Kleidung', 'Shorts')
packliste.hinzufuegen('Freizeitutensilien', 'Strandtuch')
packliste.hinzufuegen('Freizeitutensilien', 'Sonnenbrille')

Der verbesserte Code setzt voraus, dass die Klasse Packliste eine Methode namens hinzufuegen hat und ein Dictionary items zur Verwaltung der Kategorien mit ihren zugehörigen Gegenständen benutzt. Bitte beachte, dass du weitere Informationen über die tatsächliche Implementierung bereitstellen müsstest, damit ich die Korrekturen genau an deinen Use Case anpassen kann.

Josi Künstler