1.8. Mały Lotek
Informacja
Przykład pokazuje użycie instrukcji wejścia i wyjścia, instrukcji iteracyjnej oraz warunkowej, a także generatora liczb pseudolosowych. Program wymaga umiejętności wyodrębniania bloków kodu za pomocą wcięć.
1.8.1. Zadanie
Napisz program maly_lotek.py, który losuje liczbę i daje użytkownikowi trzy szansy na jej odgadnięcie.
Dane:
liczba– losowa liczba całkowita z zakresu <1; 10>, którą należy odgadnąć,typ– liczba całkowita pobierana z klawiatury,
Wynik – wypisane komunikaty:
„Zgadłeś!” – jeżeli użytkownik odgadł wylosowaną liczbę,
„Nie zgadłeś. Spróbuj jeszcze raz.” – jeżeli użytkownik nie zgadł, ale ma jeszcze szanse,
„Miałem na myśli liczbę: liczba” – jeżeli użytkownik nie odgadł wylosowanej liczby.
1.8.2. Losowanie liczby
Korzystanie z generatora liczb pseudolosowych umożliwia moduł random.
Zawiera on m.in. funkcję randint(), która zwraca liczbę z obustronnie domkniętego zakresu <a; b>:
1import random
2
3liczba = random.randint(1, 10)
4print('Wylosowana liczba:', liczba)
5
1.8.3. Pobieranie typów
Trafienie za pierwszym razem wylosowanej liczby jest bardzo trudne, dajemy graczowi 3 szanse. Uzupełniamy kod:
6for i in range(3):
7 print('Próba ', i + 1)
8 typ = int(input('Jaką liczbę od 1 do 10 mam na myśli? '))
9
Pobieranie i sprawdzanie kolejnych liczb wymaga powtórzeń, czyli pętli (zob. pętla).
Ponieważ wiemy, że użytkownik ma trzy szanse, stosujemy pętlę for i in range(3):.
W każdym powtórzeniu wypisujemy numer próby i pobieramy z klawiatury liczbę całkowitą,
którą zapisujemy w zmiennej: typ = int(input('Podaj liczbę od 1 do 10: ')).
Uwaga
Zakładamy na razie, że gracz wprowadza poprawne dane, czyli liczby całkowite!
1.8.4. Sprawdzanie typów
Do sprawdzenia, czy użytkownik odgadł wylosowaną liczbę, musimy skorzystać ze złożonej instrukcji warunkowej:
10 if liczba == typ:
11 print('Zgadłeś!')
12 break
13 elif i == 2:
14 print('Wylosowano liczbę: ', liczba)
15 else:
16 print('Spróbuj jeszcze raz.')
17 print()
Jeżeli zmienne liczba `` i ``typ zawierają tę samą wartość, wypisujemy komunikat o sukcesie.
W przeciwnym razie jeżeli pobrano trzeci typ (i == 2) i nie był on trafny, wypisujemy wylosowaną liczbę.
W przeciwnym razie wypisujemy komunikat, żeby spróbować jeszcze raz.
1.8.5. Ćwiczenie
Zgadywanie, gdy losowana liczba jest wypisywana, nie jest zabawne. Zakomentuj instrukcję wypisującą wylosowaną liczbę.
Dopisz odpowiednie polecenie, które wypisze liczbę podaną przez gracza.
W trybie interaktywnym interpretera Pythona sprawdź działanie funkcji
randint():~$ python3 >>> list(range(30)) >>> for i in range(0, 100, 2) ... print i ... >>> exit()
Funkcja
range()może przyjmować opcjonalne parametry określające początek, koniec oraz krok generowanej listy wartości.
Pojęcia
Materiały Python 101
udostępniane przez
Centrum Edukacji Obywatelskiej na licencji
Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowa.
- Utworzony:
2026-05-30 o 19:12 w Sphinx 7.3.7
- Autorzy: