Zadania praktyczne z Pythona z rozwiązaniami, które możesz uruchomić
Gdy znasz pętle, listy i słowniki, potrzebujesz zadań do ćwiczeń. Tych sześć wraca w kursach i na rozmowach kwalifikacyjnych. Każde rozwiązanie to jeden z kilku poprawnych sposobów, a każde zostało uruchomione, aby uzyskać pokazany wynik.
FizzBuzz
Wypisz liczby od 1 do 15. Dla wielokrotności 3 wypisz Fizz, dla wielokrotności 5 wypisz Buzz, a dla wielokrotności obu wypisz FizzBuzz. Sztuka polega na tym, by najpierw sprawdzić przypadek łączny, bo 15 jest też wielokrotnością 3 i 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)Wynik:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz
Sprawdzanie palindromu
Palindrom czyta się tak samo wspak. Zamień tekst na małe litery i usuń spacje, aby wielkość liter i odstępy nie miały znaczenia, a potem porównaj go z jego odwrotnością.
def is_palindrome(text):
cleaned = text.lower().replace(" ", "")
return cleaned == cleaned[::-1]
print(is_palindrome("Never odd or even"))
print(is_palindrome("Python"))Wynik:
True False
Liczenie samogłosek
Przejdź pętlą po znakach i policz te, które należą do ciągu samogłosek. sum() po generatorze jedynek to zwięzły sposób liczenia.
def count_vowels(text):
return sum(1 for ch in text.lower() if ch in "aeiou")
print(count_vowels("Pip and the Scrap Isle"))Wynik:
6
Najczęstsze słowo
Użyj słownika jako licznika. counts.get(word, 0) zwraca 0 dla słowa, którego jeszcze nie było, więc możesz dodać 1 bez sprawdzania. max z key=counts.get wybiera słowo o najwyższym wyniku.
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])Wynik:
the 3
Usuwanie duplikatów z zachowaniem kolejności
Zamiana na zbiór (set) usuwa duplikaty, ale gubi kolejność. Aby zachować pierwsze wystąpienie każdego elementu, trzymaj listę tego, co już widziano.
items = ["a", "b", "a", "c", "b"]
seen = []
for item in items:
if item not in seen:
seen.append(item)
print(seen)Wynik:
['a', 'b', 'c']
Dwie liczby o zadanej sumie
Mając listę i cel, zwróć pozycje dwóch liczb, których suma jest równa celowi. Słownik liczb już widzianych odpowiada na pytanie w jednym przebiegu: dla każdej liczby sprawdź, czy liczba, której jeszcze potrzebujesz, pojawiła się wcześniej.
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))Wynik:
(0, 1)
Częste pytania
- Gdzie znajdę więcej zadań praktycznych z Pythona?
- Zacznij od pomysłów powyżej i zmieniaj je: licz spółgłoski zamiast samogłosek, znajdź najrzadsze słowo albo zwróć wszystkie pary dla dwóch liczb o zadanej sumie. Zmienianie rozwiązanego zadania to najlepsze następne zadanie.
- Czy warto zajrzeć do rozwiązania, gdy utkniesz?
- Najpierw spróbuj przez co najmniej dziesięć minut. Potem przeczytaj rozwiązanie, zamknij je i napisz ponownie z pamięci następnego dnia. Samo przepisywanie bez ponownego pisania nie buduje umiejętności.
- Czy te zadania nadają się do ćwiczenia przed rozmową o pracę?
- Tak, FizzBuzz, palindromy, liczenie i dwie liczby o zadanej sumie to klasyczne pytania na rozgrzewkę. Pytania koncepcyjne (listy kontra krotki, is kontra ==) znajdziesz w przewodniku po rozmowach kwalifikacyjnych na tej stronie.