Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå
Matematikmoduler
Utökad matematikmodul
Mål
Beräkna de nya markutvidgningarna på gården med hjälp av fler funktioner importerade från math-modulen.
Över bron har annexet några kontor som används för att undersöka den oinkorporerade marken som förenar två olika delar av gården. Här kommer vi att hitta några markdimensioner och mätningar, och det vore en bra idé att sortera dem och dokumentera datan. Du kan göra detta genom att använda math-modulen, i denna nivå blir vi introducerade till ett nytt set av dess funktioner som vi kan använda för att bearbeta datan. Du använder samma import math och math. före funktionerna för att använda detta set:
math.radians(): Omvandlar grader till radianer/vinklar.math.floor(): Avrundar ett tal nedåt till ett basnummer.math.ceil(): Avrundar ett tal uppåt till ett högre nummer.math.atan2(): Returnerar arcustangenten mellan två tal i radianer.math.isclose(): Kontrollerar om två tal är nära varandra, returnerar true/false.math.fsum(): Adderar flyttal (decimaltal) tillsammans från en lista eller iterable.math.dist(): Beräknar avståndet mellan två punkter, värdena måste vara listor eller iterables.
Börja samla in de råa data från diagrammen genom att gå mot det ljusa X-märket över den röda och blå mattan. Använd funktionen read() för att identifiera de råa dimensioner som behövs för att ta mätningar. Dessa mätningar är redan lagrade i fyra variabelkonstanter med namnen: red_x , red_y , blue_x och blue_y
När båda datamängderna har identifierats, gå till det mörka X-märket över den orange mattan och möt skrivbordet. Använd math.radians() och math.ceil() för att konvertera variablerna blue_x och blue_y till radianer och få dem avrundade uppåt. Använd float() för att säkerställa att konstanterna är decimaltal som kan ändras. Till exempel, för variabeln blue_x: konvertera till radianer med blue_x = math.radians(float(blue_x)) och avrunda värdet med blue_x = math.ceil(float(blue_x)). Gör samma sak för blue_y vid detta X-märke, och när det är klart, använd den förskrivna funktionen write() och lägg till variablerna blue_x och blue_y för att föra in dem i diagrammet.
Gå till det mörka X-märket över den gröna mattan och använd math.radians() och math.floor() för att konvertera variablerna red_x och red_y till radianer och få dem avrundade. Till exempel, för variabeln red_x: konvertera till radianer med red_x = math.radians(red_x) och runda ner värdet med blue_x = math.floor(red_x). Gör samma sak för red_y vid detta X-märke, och när det är klart, använd den förskrivna funktionen write() och lägg till variablerna red_x och red_y för att föra in dem i diagrammet.
Gå till det gyllene X-märket och möt skrivbordet, här kommer vi att skapa två nya variabler, data_a och data_b. Här ska vi lagra arcustangenterna för varje set genom att använda funktionen math.atan2. För data_a använder vi variablerna blue_x och blue_y som argument i funktionen, på följande sätt: data_a = math.atan2(blue_x,blue_y). För data_b, gör samma sak men med red_x och red_y. När detta är klart, använd den förskrivna funktionen write() och lägg till variablerna data_a och data_b för att föra in dem i diagrammet.
Nu när de nedre skrivborden har tagits om hand, gå till det mörka X-märket över den lila mattan, skapa en variabel som heter comparison och använd den med funktionen math.isclose(), med data_a och data_b som argument, på följande sätt: comparison = math.isclose(data_a, data_b). Använd den förskrivna funktionen write() med variabeln comparison vid detta X-märke.
Flytta till X-märket över den vita mattan, skapa en lista som heter data_list och lägg till data_a och data_b i den ordningen. Skapa en variabel som heter total och använd funktionen math.fsum() med data_list som argument, på följande sätt: total = math.fsum(data_list). Använd variabeln total med den förskrivna funktionen write() vid detta X-märke.
Flytta till det mörka X-märket över den gula mattan och möt skrivbordet, konvertera data_a och data_b till individuella listvärden, till exempel för data_a: data_a = [data_a]. Gör samma sak för data_b för att konvertera båda variablerna till iterables så att de kan användas med funktionen math.dist(). Skapa en variabel som heter distance och använd den för att lagra värdet av math.dist(), med data_a och data_b som argument. Använd variabeln distance med den förskrivna funktionen write() för att slutföra nivån.