Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom
Moduły Matematyczne
Rozszerzony moduł matematyczny
Cel
Oblicz nowe rozszerzenia terenu gospodarstwa, używając dodatkowych funkcji importowanych z modułu math.
Za mostem, w aneksie, znajdują się biura służące do pomiaru niezagospodarowanego terenu łączącego dwie różne części gospodarstwa. Tutaj znajdziemy wymiary działek oraz pomiary, dlatego warto je posortować i udokumentować dane. Możesz to osiągnąć, korzystając z modułu math; na tym poziomie zapoznamy się z nowym zestawem jego funkcji, które możemy wykorzystać do przetwarzania danych. Używasz tego samego import math oraz math. przed funkcjami, aby skorzystać z tego zestawu:
math.radians(): Konwertuje stopnie na radiany (kąty).math.floor(): Zaokrągla liczbę w dół do najbliższej liczby całkowitej.math.ceil(): Zaokrągla liczbę w górę do najbliższej wyższej liczby całkowitej.math.atan2(): Zwraca arcustangens dwóch liczb w radianach.math.isclose(): Sprawdza, czy dwie liczby są bliskie sobie, zwraca true/false.math.fsum(): Sumuje liczby zmiennoprzecinkowe (dziesiętne) z listy lub innego iterowalnego obiektu.math.dist(): Oblicza odległość między dwoma punktami; wartości muszą być listami lub iterowalnymi obiektami.
Rozpocznij zbieranie surowych danych z wykresów, idąc do jasnego X oznaczonego nad czerwonym i niebieskim dywanem. Użyj funkcji read(), aby zidentyfikować surowe wymiary potrzebne do wykonania pomiarów. Te pomiary są już zapisane w czterech stałych zmiennych o nazwach: red_x, red_y, blue_x oraz blue_y.
Gdy oba zestawy danych zostaną zidentyfikowane, udaj się do ciemnego X oznaczonego nad pomarańczowym dywanem i zwróć się w stronę biurka. Użyj funkcji math.radians() oraz math.ceil(), aby przekształcić zmienne blue_x i blue_y na radiany i zaokrąglić je w górę. Użyj funkcji float(), aby upewnić się, że stałe są liczbami zmiennoprzecinkowymi, które można modyfikować. Na przykład, dla zmiennej blue_x: najpierw przekształć ją na radiany:
blue_x = math.radians(float(blue_x))
a następnie zaokrąglij w górę:
blue_x = math.ceil(float(blue_x))
Postępuj analogicznie dla blue_y w tym X oznaczeniu. Po zakończeniu, użyj predefiniowanej funkcji write(), aby zapisać zmienne blue_x i blue_y.
Udaj się do ciemnego X oznaczonego nad zielonym dywanem i użyj funkcji math.radians() oraz math.floor(), aby przekształcić zmienne red_x i red_y na radiany i zaokrąglić je w dół. Na przykład, dla zmiennej red_x: przekształć ją na radiany:
red_x = math.radians(red_x)
a następnie zaokrąglij w dół:
blue_x = math.floor(red_x)
Postępuj tak samo dla red_y w tym X oznaczeniu. Po zakończeniu, użyj predefiniowanej funkcji write(), aby zapisać zmienne red_x i red_y.
Udaj się do złotego X oznaczonego i zwróć się w stronę biurka, gdzie utworzymy dwie nowe zmienne: data_a oraz data_b. Tutaj będziemy przechowywać arcustangensy każdego zestawu, używając funkcji math.atan2. Dla data_a użyj zmiennych blue_x i blue_y, wywołując funkcję w następujący sposób:
data_a = math.atan2(blue_x,blue_y)
Dla data_b postępuj analogicznie, korzystając z red_x oraz red_y. Po zakończeniu, użyj predefiniowanej funkcji write(), aby zapisać zmienne data_a i data_b.
Gdy już zadbano o dolne biurka, udaj się do ciemnego X oznaczonego nad fioletowym dywanem, utwórz zmienną o nazwie comparison i użyj jej z funkcją math.isclose(), przekazując data_a oraz data_b jako argumenty, w następujący sposób:
comparison = math.isclose(data_a, data_b)
Na tym X oznaczeniu użyj predefiniowanej funkcji write(), przekazując zmienną comparison.
Przemieść się do X oznaczonego nad białym dywanem, utwórz listę o nazwie data_list i dodaj do niej kolejno data_a oraz data_b. Następnie utwórz zmienną o nazwie total i użyj funkcji math.fsum() z data_list jako argumentem, w następujący sposób:
total = math.fsum(data_list)
Na tym X oznaczeniu użyj predefiniowanej funkcji write(), przekazując zmienną total.
Przemieść się do ciemnego X oznaczonego nad żółtym dywanem i zwróć się w stronę biurka; przekształć data_a oraz data_b w pojedyncze wartości listowe. Na przykład, dla data_a wykonaj:
data_a = [data_a]
Postępuj tak samo dla data_b, aby zamienić obie zmienne na iterowalne obiekty umożliwiające użycie funkcji math.dist(). Następnie utwórz zmienną o nazwie distance i użyj jej do przechowania wyniku funkcji math.dist(), przekazując jako argumenty data_a oraz data_b. Na zakończenie, użyj predefiniowanej funkcji write(), przekazując zmienną distance, aby ukończyć poziom.