R1634PF3HAQNQ

I_R_PY_W13A_M06 Zbiory

Źródło: Roman Synkevych, domena publiczna.

Ile liczb udało mi się trafić?

Znasz zapewne gry liczbowe polegające na odgadywaniu wylosowanych wcześniej liczb. Napiszemy program, który będzie sprawdzał, ile liczb spośród wylosowanych udało się odgadnąć.

1
Polecenie 1

Skopiuj zaprezentowany kod, wklej go do pustego pliku i zapisz pod nazwą ile_trafionych.py.

Linia 1. wylosowane podkreślnik liczby znak równości otwórz nawias okrągły 5 przecinek 7 przecinek 1 przecinek 3 zamknij nawias okrągły. Linia 2. moje podkreślnik typy znak równości otwórz nawias okrągły 3 przecinek 9 przecinek 1 zamknij nawias okrągły. Linia 4. ile podkreślnik trafionych znak równości 0. Linia 6. if moje podkreślnik typy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy in wylosowane podkreślnik liczby dwukropek. Linia 7. ile podkreślnik trafionych znak równości ile podkreślnik trafionych plus 1. Linia 8. if moje podkreślnik typy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy in wylosowane podkreślnik liczby dwukropek. Linia 9. ile podkreślnik trafionych znak równości ile podkreślnik trafionych plus 1. Linia 10. if moje podkreślnik typy otwórz nawias kwadratowy 2 zamknij nawias kwadratowy in wylosowane podkreślnik liczby dwukropek. Linia 11. ile podkreślnik trafionych znak równości ile podkreślnik trafionych plus 1. Linia 13. print otwórz nawias okrągły cudzysłów Liczba trafionych dwukropek cudzysłów przecinek ile podkreślnik trafionych zamknij nawias okrągły.

W programie używamy krotek do zapisania wylosowanych liczb oraz typowanych liczb. Elementy krotek, podobnie jak i list, możemy wskazywać za pomocą indeksów. Instrukcja warunkowa if moje_typy[0] in wylosowane_liczby: sprawdza, czy pierwsza liczba z krotki moje_typy znajduje się w krotce wylosowane_liczby. Dwie kolejne instrukcje robią to samo dla kolejnych typów i zwiększają zmienną ile_trafionych dla każdego trafienia.

1
Polecenie 2
R3QT03fAlDd6Q
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Ręczne podawanie indeksów kolejnych typów oraz powtarzanie instrukcji warunkowych nie jest dobrym sposobem zliczania poprawnych typów. Do ulepszenia programu moglibyśmy użyć pętli, ale jeszcze szybciej uzyskamy wynik za pomocą operacji na zbiorach.

Zbiory zawierają niepowtarzające się elementy. Mogą to być liczby, ciągi znaków i inne typy danych. Struktury te nie zapisują pozycji dodawanych elementów, więc nie obsługują indeksacji.

1
Polecenie 3

Program ile_trafionych.py zapisz pod nazwą zbior_trafionych.py

Pozostaw w programie krotki z danymi, pozostały kod zastąp poniższym:

Linia 1. ile podkreślnik trafionych znak równości set otwórz nawias okrągły wylosowane podkreślnik liczby zamknij nawias okrągły ampersant set otwórz nawias okrągły moje podkreślnik typy zamknij nawias okrągły. Linia 2. print otwórz nawias okrągły cudzysłów Trafiłeś dwukropek cudzysłów przecinek len otwórz nawias okrągły ile podkreślnik trafionych zamknij nawias okrągły zamknij nawias okrągły.

Skopiuj swój kod i umieść go tutaj:

RtIAVG0uaWvwo

Polecenie set() przekształca podaną krotkę lub listę na zbiór, jednocześnie eliminuje ewentualne powtarzające się wartości. Operator & oznacza operację wyznaczania części wspólnej dwóch (lub więcej) zbiorów. W naszym wypadku otrzymamy zbiór zawierający liczby występujące w obydwu krotkach: {3, 1}. Funkcja len() – podobnie jak wypadku list i krotek – zwraca nam liczbę elementów w zbiorze.

1
Polecenie 4
R1JqzbO0ksTiD
Wymyśl pytanie na kartkówkę związane z tematem materiału.