Python-Übungsaufgaben mit Lösungen, die du ausführen kannst

Sobald du Schleifen, Listen und Dictionaries kennst, brauchst du Aufgaben zum Üben. Diese sechs tauchen in Kursen und Vorstellungsgesprächen immer wieder auf. Jede Lösung ist eine von mehreren gültigen Varianten, und jede wurde ausgeführt, um die gezeigte Ausgabe zu erhalten.

FizzBuzz

Gib die Zahlen 1 bis 15 aus. Bei Vielfachen von 3 gib Fizz aus, bei Vielfachen von 5 Buzz, und bei Vielfachen von beidem FizzBuzz. Der Trick: Prüfe den kombinierten Fall zuerst, denn 15 ist sowohl ein Vielfaches von 3 als auch von 5.

for n in range(1, 16):
    if n % 15 == 0:
        print("FizzBuzz")
    elif n % 3 == 0:
        print("Fizz")
    elif n % 5 == 0:
        print("Buzz")
    else:
        print(n)

Ausgabe:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

Palindrom-Prüfung

Ein Palindrom liest sich rückwärts gleich. Schreibe den Text klein und entferne Leerzeichen, damit Groß- und Kleinschreibung sowie Abstände keine Rolle spielen, und vergleiche ihn dann mit seiner Umkehrung.

def is_palindrome(text):
    cleaned = text.lower().replace(" ", "")
    return cleaned == cleaned[::-1]

print(is_palindrome("Never odd or even"))
print(is_palindrome("Python"))

Ausgabe:

True
False

Vokale zählen

Durchlaufe die Zeichen und zähle die, die in der Zeichenkette der Vokale vorkommen. sum() über einen Generator aus Einsen ist eine kompakte Art zu zählen.

def count_vowels(text):
    return sum(1 for ch in text.lower() if ch in "aeiou")

print(count_vowels("Pip and the Scrap Isle"))

Ausgabe:

6

Das häufigste Wort

Verwende ein Dictionary als Zähler. counts.get(word, 0) gibt 0 für ein Wort zurück, das du noch nicht gesehen hast, sodass du 1 addieren kannst, ohne vorher zu prüfen. max mit key=counts.get wählt das Wort mit der höchsten Anzahl.

text = "the robot and the island and the sea"
counts = {}
for word in text.split():
    counts[word] = counts.get(word, 0) + 1
best = max(counts, key=counts.get)
print(best, counts[best])

Ausgabe:

the 3

Duplikate entfernen und die Reihenfolge behalten

Eine Umwandlung in ein set entfernt Duplikate, verliert aber die Reihenfolge. Um das erste Vorkommen jedes Elements zu behalten, speichere in einer Liste, was du schon gesehen hast.

items = ["a", "b", "a", "c", "b"]
seen = []
for item in items:
    if item not in seen:
        seen.append(item)
print(seen)

Ausgabe:

['a', 'b', 'c']

Zwei Zahlen, die eine Zielsumme ergeben

Gegeben sind eine Liste und ein Ziel. Gib die Positionen von zwei Zahlen zurück, die zusammen das Ziel ergeben. Ein Dictionary mit bereits gesehenen Zahlen beantwortet die Frage in einem einzigen Durchgang: Prüfe bei jeder Zahl, ob die Zahl, die dir noch fehlt, zuvor vorkam.

def two_sum(numbers, target):
    seen = {}
    for i, n in enumerate(numbers):
        if target - n in seen:
            return seen[target - n], i
        seen[n] = i

print(two_sum([2, 7, 11, 15], 9))

Ausgabe:

(0, 1)

Häufige Fragen

Wo finde ich mehr Python-Übungsaufgaben?
Fang mit den Ideen oben an und verändere sie: Zähle Konsonanten statt Vokale, finde das seltenste Wort oder gib bei Zwei-Summen alle Paare zurück. Eine gelöste Aufgabe zu verändern ist die beste nächste Aufgabe.
Soll ich mir die Lösung ansehen, wenn ich festhänge?
Versuche es mindestens zehn Minuten lang. Dann lies die Lösung, schließe sie und schreibe sie am nächsten Tag aus dem Gedächtnis neu. Abschreiben ohne Neuschreiben baut die Fähigkeit nicht auf.
Sind diese Aufgaben gut für die Vorbereitung auf Vorstellungsgespräche?
Ja, FizzBuzz, Palindrome, Zählen und Zwei-Summen sind alles klassische Aufwärmfragen. Im Interview-Ratgeber dieser Seite findest du die Konzeptfragen (Listen gegenüber Tupeln, is gegenüber ==).

Übe es