42
Rozdział 1.
Z zakresem za pan brat
W ten sposób korzystaliśmy z funkcji range
w naszym pierwszym programie.
Przekierowanie danych wyjściowych z funkcji range do
funkcji list skutkuje wyświetleniem ich w postaci listy.
Możemy dostosować wartości POCZĄTKU i KOŃCA
używane przez funkcję range.
Możliwe jest też dostosowanie wartości KROK.
Robi się naprawdę ciekawie, gdy dostosujesz
kierunek zakresu, korzystając z ujemnej wartości
KROKU.
Po wykonaniu wszystkich naszych eksperymentów dotarliśmy do takiego wywołania funkcji
range
(pokazanego powyżej jako ostatnie), dzięki któremu udało nam się uzyskać listę wartości od 99
do 1 (a więc dokładnie tego, które jest wykorzystywane w pętli
for
użytej w kodzie programu
wyświetlającego piosenkę o piwie, jak można się przekonać poniżej).
To wywołanie funkcji
range przyjmuje trzy
argumenty: początek,
koniec i krok.
>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(5, 10))
[5, 6, 7, 8, 9]
>>> list(range(0, 10, 2))
[0, 2, 4, 6, 8]
>>> list(range(10, 0, -2))
[10, 8, 6, 4, 2]
>>> list(range(10, 0, 2))
[]
>>> list(range(99, 0, -1))
[99, 98, 97, 96, 95, 94, 93, 92, ... 5, 4, 3, 2, 1]
Python nie zabroni Ci robić głupot. Jeśli użyta przez Ciebie
wartość POCZĄTKU jest WIĘKSZA niż wartość KOŃCA,
a wartość KROKU jest dodatnia, nie otrzymasz nic
(w tym przypadku dostaniesz pustą listę).
Eksperymentowanie z zakresami
Teraz, gdy wiesz już co nieco na temat
początku
,
końca
i
kroku
,
poeksperymentujmy trochę w powłoce, aby dowiedzieć się, jak możemy skorzystać
z funkcji
range
w celu wygenerowania wielu różnych zakresów liczb całkowitych.
W trzymaniu ręki na pulsie pomoże nam inna funkcja,
list
, umożliwiająca
przetwarzanie danych wyjściowych funkcji
range
w czytelne dla nas listy,
które będziemy mogli zobaczyć na ekranie.
jesteś tutaj
43
Podstawy
Zaostrz ołówek
Poniżej ponownie zamieściliśmy kod przykładu z piwem. Wypełniliśmy nim całą stronę,
abyś mógł spokojnie skoncentrować się na każdym wierszu tworzącym tę „poważną
aplikację biznesową”.
Weź ołówek i napisz w pustych miejscach, co Twoim zdaniem robią poszczególne
wiersze kodu. Spróbuj wykonać to zadanie samodzielnie,
zanim
spojrzysz na nasze
wnioski, które zamieściliśmy na następnej stronie. Żeby Cię zachęcić do pracy,
skomentowaliśmy pierwszy wiersz kodu za Ciebie.
word = “butelki”
for beer_num in range(99, 0, -1):
print(beer_num, word, “piwa na ścianie.”)
print(beer_num, word, “piwa.”)
print(“Jedną weź.”)
print(“Podaj w koło.”)
if beer_num == 1:
print(“Nie ma już butelek piwa na ścianie.”)
else:
new_num = beer_num - 1
if new_num == 1:
word = “butelka”
print(new_num, word, “piwa na ścianie.”)
print()
Przypisujemy wartość “butelki”
(będącą łańcuchem znakowym)
do nowej zmiennej o nazwie „word”.
44
Rozdział 1.
Piwo wyjaśnione
Zaostrz ołówek
Poniżej ponownie zamieściliśmy kod przykładu z piwem. Wypełniliśmy nim całą stronę,
abyś mógł spokojnie skoncentrować się na każdym wierszu tworzącym tę „poważną
aplikację biznesową”.
Miałeś wziąć ołówek i napisać w pustych miejscach, co Twoim zdaniem robią
poszczególne wiersze kodu. Żeby Cię zachęcić do pracy, skomentowaliśmy pierwszy
wiersz kodu za Ciebie.
Jak Ci poszło? Czy Twoje wyjaśnienia przypominają nasze?
Rozwiązanie
word = “butelki”
for beer_num in range(99, 0, -1):
print(beer_num, word, “piwa na ścianie.”)
print(beer_num, word, “piwa.”)
print(“Jedną weź.”)
print(“Podaj w koło.”)
if beer_num == 1:
print(“Nie ma już butelek piwa na ścianie.”)
else:
new_num = beer_num - 1
if new_num == 1:
word = “butelka”
print(new_num, word, “piwa na ścianie.”)
print()
Przypisujemy wartość “butelki” (będącą
łańcuchem znakowym) do nowej
zmiennej o nazwie „word”.
Powtarzamy działanie określoną liczbę razy,
od 99 w dół do zera. Używamy beer_num
w roli zmiennej iteracyjnej pętli.
Te cztery wywołania funkcji print odpowiadają
za wyświetlenie słów piosenki odpowiednich
dla bieżącej iteracji pętli. W każdej iteracji
wyświetlana jest jedna (cała) zwrotka.
Zaczynamy tu od zwrotki z 99 butelkami,
następnie zmniejszamy liczbę butelek,
wyświetlamy kolejną zwrotkę i tak dalej.
Tu następuje sprawdzenie, czy jesteśmy przy
ostatniej krążącej w koło butelce..
I jeśli jesteśmy, wyświetlamy zakończenie
tekstu piosenki.
W przeciwnym razie..
Zapamiętujemy numer następnego piwa
w kolejnej zmiennej o nazwie „new_num”.
Jeśli właśnie przymierzamy się do wypicia
naszego ostatniego piwa...
Zmieniamy wartość zmiennej word, aby
ostatni wiersz tekstu piosenki miał sens.
Uzupełniamy tekst zwrotki wyświetlanej
w bieżącej iteracji.
Na końcu tej iteracji wyświetlamy pusty
wiersz. Gdy wykonamy wszystkie iteracje,
kończymy działanie naszego programu.

Get Python Rusz głową! Wydanie II now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.