Python • kurs podstawowy • lekcja 08
Operatory matematyczne
Masz 17 kart i wkładasz po 5 do koperty.
Twój cel: Obliczysz pełne grupy i resztę oraz odróżnisz /, //, % i **.Zmienne i liczby.
Co ma zrobić program?
/ daje iloraz, // iloraz zaokrąglony w dół, a % resztę. Dla dodatnich liczb całkowitych // odpowiada liczbie pełnych grup. Reszta mówi, ile kart nie trafiło do pełnej grupy.
Nie opisuj // jako samego obcięcia cyfr po kropce: -7 // 2 daje -4, czyli zaokrąglenie w stronę minus nieskończoności. Dla dodatnich danych łatwo tego nie zauważyć. Dzielenie przez zero jest niedozwolone.
Podstawowe operatory to +, -, * i /. Potęgowanie zapisujemy **, np. 3 ** 2. Mnożenie i dzielenie mają pierwszeństwo przed dodawaniem; nawiasy pozwalają zmienić kolejność. W przykładach używamy małych liczb, by dało się niezależnie sprawdzić rachunek.
Przewidź przed uruchomieniem
cards = 17
capacity = 5
print(cards / capacity)
print(cards // capacity)
print(cards % capacity)
print(2 + 3 * 4)
Porównaj wynik i prześledź mechanizm
3.4, 3, 2 oraz 14. Trzy pełne koperty mieszczą 15 kart, pozostają 2. W ostatnim wyrażeniu najpierw mnożymy 3 * 4, a potem dodajemy 2.
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
3.4
3
2
14
| Wielkość | Obliczenie | Wynik |
|---|---|---|
| Pełne grupy | 17 // 5 | 3 |
| Karty w grupach | 3 * 5 | 15 |
| Pozostałe karty | 17 % 5 | 2 |
| Kontrola | 15 + 2 | 17 |
Zmień działający program
Dodaj nawiasy tak, aby suma 2 + 3 była mnożona przez 4. Oblicz również kwadrat 5.
Pierwsza wskazówka
Zachowaj działający punkt wyjścia. Zlokalizuj konstrukcję wskazaną w poleceniu i zmień tylko ten etap. Przed uruchomieniem zapisz oczekiwany efekt.
Porównaj swoją modyfikację
print((2 + 3) * 4)
print(5 ** 2)
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
20
25
Znajdź przyczynę problemu
Celowo błędny przykład diagnostyczny. Najpierw postaw hipotezę. Nie kopiuj tej wersji jako poprawnego rozwiązania.
Zamierzone działanie: Policz pełne godziny w 125 minutach.
minutes = 125
hours = minutes / 60
print(hours)
Trop do diagnozy
Porównaj zamierzony rezultat z typami, nazwami i kolejnością instrukcji. Wskaż pierwsze miejsce, w którym zachowanie odbiega od celu.
Zastosuj w nowej sytuacji
Wskazówka do rozpoczęcia
Dla dodatnich danych: liczba = pełne grupy * rozmiar grupy + reszta.
Zacznij od przygotowania danych. Pierwsza instrukcja przykładowego rozwiązania:
seconds = 367
Rozwiązanie do samodzielnej kontroli
seconds = 367
print(seconds // 60)
print(seconds % 60)
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
6
7
Porównaj dane wejściowe, wynik i powód użycia konstrukcji. Inna wersja kodu jest poprawna, jeśli realizuje te same wymagania.
Co zabierasz do kolejnego programu?
Dla dodatnich danych: liczba = pełne grupy * rozmiar grupy + reszta.
Bez zaglądania do przykładu wyjaśnij własnymi słowami, jak główna konstrukcja prowadzi od danych do wyniku. Potem sprawdź wyjaśnienie, uruchamiając swój program.