lehrkraefte:snr:informatik:glf23:python:listen

Listen

Mit der Klasse schrittweise geschriebenes Programm (im Editor und an der Tafel):

Mit der Klasse schrittweise geschriebenes Programm (im Editor und an der Tafel):

einfuehrung-listen.py
liste = ["Anna", "Berta", "Charly", "Daniel", "Emil", "Berta", "Ida"]
print(liste)
print(len(liste))
print(liste[0])
print(liste[4])
print("Peter" in liste)
print("Daniel" in liste)
print(liste)
liste[4] = "Zeus"
print(liste)
for s in liste:
    print(s)
notenliste = [6, 5, 4, 3, 2, 1, 6]
nr = 0
while nr < len(liste):
    print("Schüler(in) " + liste[nr] + " hat die Note " + str(notenliste[nr]) + ".")
    nr = nr + 1

Schreibe ein neues Python-Programm, das den Durchschnitt aller Zahlen (etwa Schulnoten) in einer Liste ausrechnet. Die erste Zeile des Programms definiert die Liste und sieht beispielsweise wie folgt aus.

zahlenliste = [4, 6, 3, 5, 4, 2, 5, 6, 5, 5, 4, 4]

Das Programm soll aber auch für jede andere Liste von Zahlen funktionieren.

Hinweis: Verwende eine for-Schleife über alle Listenelemente.

Schreibe in Python ein Quiz-Programm, das dem Benutzer nacheinander die Fragen in der unten angegebenen Liste fragen stellt und ihm anhand der Liste korrekte_antworten jeweils mitteilt, ob die Antwort korrekt war oder nicht. Am Ende soll ausgegeben werden, wie viel Prozent der Antworten korrekt waren.

Das Programm soll auch funktionieren, wenn du die Liste der Fragen und Antworten veränderst oder vergrösserst.

Hinweis: Verwende eine while-Schleife!

fragen = ["Wie hoch ist der Säntis? (in Metern) ", "Bei welcher Ortschaft entsteht die Sitter? ", "Wie tief ist der Bodensee an seiner tiefsten Stelle? (in Metern) "]
korrekte_antworten = ["2502", "Weissbad", "251"]

Das folgende Programm zeigt dir, wie man die “leere Liste” definiert und wie man eine Liste am Ende um ein Element erweitert.

Beachte die Syntax des append-Befehls: Zuerst kommt der Name der Liste, gefolgt von einem Punkt, danach der Aufruf der Funktion append mit dem neuen Element als Argument.

a = []
print(a)
a.append(42)
print(a)
a.append(1000)
print(a)

Schreibe ein Python-Programm, das vom Benutzer so lange Zahlen einliest und diese in einer Liste speichert, bis dieser “q” (wie quit) eingibt. In diesem Fall soll die gesamte Liste und die Summe der Listenelemente ausgegeben werden.

Hinweis:

Hinweis:

Ohne while-loop wird das kaum gehen. Eine Lösungsmöglichkeit besteht darin, ganz am Anfang eine Variable per eingabe = “” zu definieren. In einer while-Schleife bekommt diese Variable jeweils die aktuelle Benutzereingabe als Wert zugewiesen. Sobald eingabe = “q” gilt, soll die Schleife nicht mehr ausgeführt werden.

Neben append gibt es viele andere Möglichkeiten, eine Liste zu modifizieren, siehe etwa https://www.w3schools.com/python/python_lists_change.asp.

Das Sieb des Eratosthenes ist der folgende Algorithmus zum Erstellen einer Liste aller Primzahlen bis zu einer gegebenen Zahl $n$. Dabei werden Zahlen in einer Liste durch Einrahmen oder Durchstreichen markiert.

  • Schreibe alle natürlichen Zahlen von 2 bis n auf.
  • Gehe alle Zahlen der Liste nacheinander durch:
    • Wenn die aktuell betrachtete Zahl nicht markiert ist:
      • Rahme sie ein und streiche all ihre (echten) Vielfachen.

Die Primzahlen in der Liste sind genau die nicht-gestrichenen Zahlen

Vgl. etwa https://de.wikipedia.org/wiki/Sieb_des_Eratosthenes.

Speichere den folgenden Pseudo-Code als Python-Programm sieb-des-eratosthenes.py ab. Verwandle die Sprachanweisungen in Python-Code!

# Sieb des Eratosthenes; das Durchstreichen von Zahlen wird hier durch Null-Setzen simuliert.
 
n = 100
liste = list(range(n + 1))  # Dieser Befehl erzeugt eine Liste aller Zahlen 
                            # von 0 (einschliesslich) bis n + 1 (uneinschliesslich).
                             # d.h. im Fall n = 10 gilt
                             # liste = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
liste[1] = 0  # da 1 keine Primzahl ist, wird die Zahl 1 durchgestrichen = auf Null gesetzt.
Lass i in einer while-Schleife alle Zahlen von 2 bis n durchlaufen:
    Falls i nicht durchgestrichen ist (d. h. der Eintrag unserer Liste mit Index i ist nicht Null):
        Lass d in einer while-Schleife alle Vielfachen von i zwischen 2 * i und n durchlaufen:
            Streiche d durch, d. h. setze das Element der Liste liste mit Index d auf 0.
print("Primzahlliste")
Lass n in einer for-Schleife alle Elemente der Liste liste durchlaufen:
    Wenn n nicht durchgestrichen ist (also das Element der Liste liste mit Index n nicht Null ist):
        print(n, end=', ')
print()

zu ergänzen

zu ergänzen

???.py
 
  • lehrkraefte/snr/informatik/glf23/python/listen.txt
  • Last modified: 2023/11/23 14:30
  • by Olaf Schnürer