Курс по усъвършенствано разработване с Python
Глава
>
Ниво

Математически модули
Разширен математически модул

Цел

Изчислете новите разширения на фермата, използвайки още функции, импортирани от модула math.

От другата страна на моста, анексът разполага с няколко офиса, използвани за наблюдение на некомунираната земя, която свързва две различни части на фермата. Тук ще намерим някои размери на земята и измервания; добра идея е да ги сортираме и документираме данните. Можете да постигнете това, като използвате модула math. В това ниво ще бъдем запознати с набор от неговите функции, които можем да използваме за обработка на данните. Използвайте същия import math и math. преди функциите, за да използвате този набор:

  • math.radians(): Преобразува градуси в радиани / ъгли.
  • math.floor(): Закръгля число надолу до базово число.
  • math.ceil(): Закръгля число нагоре до по-високо число.
  • math.atan2(): Връща арктангенса между две числа в радиани.
  • math.isclose(): Проверява дали две числа са близки една до друга, връща true/false.
  • math.fsum(): Събира числа с плаваща запетая (десетични) от списък или итерабъл.
  • math.dist(): Изчислява разстоянието между две точки; стойностите трябва да са списъци или итерабъл.

Започнете събирането на суровите данни от графиките, като отидете до светлите X-ове върху червения и синия килим. Използвайте функцията read() за да идентифицирате суровите размери, необходими за вземане на измервания. Тези измервания вече са съхранени в четири константи с променливи, наречени: red_x, red_y, blue_x и blue_y.

След като и двата набора данни бъдат идентифицирани, отидете до тъмния X-ов знак върху оранжевия килим и се обърнете към бюрото. Използвайте math.radians() и math.ceil(), за да преобразувате променливите blue_x и blue_y в радиани и да ги закръглите нагоре. Използвайте float(), за да гарантирате, че константите са десетични числа, които могат да бъдат редактирани. Например, за променливата blue_x: преобразувайте в радиани с blue_x = math.radians(float(blue_x)) и закръглете стойността с blue_x = math.ceil(float(blue_x)). Направете същото за blue_y на този X-ов знак, след което използвайте предварително написаната функция write(), за да добавите променливите blue_x и blue_y, за да ги запишете.

Отидете до тъмния X-ов знак върху зеления килим и използвайте math.radians() и math.floor() за да преобразувате променливите red_x и red_y в радиани и да ги закръглите надолу. Например, за променливата red_x: преобразувайте в радиани с red_x = math.radians(red_x) и закръглете стойността с red_x = math.floor(red_x). Направете същото за red_y на този X-ов знак, след което използвайте предварително написаната функция write(), за да добавите променливите red_x и red_y, за да ги запишете.

Отидете до златния X-ов знак и се обърнете към бюрото. Тук ще създадем две нови променливи, data_a и data_b. В тях ще съхраним арктангенсите на всеки набор чрез функцията math.atan2. За data_a използвайте променливите blue_x и blue_y, както следва: data_a = math.atan2(blue_x,blue_y). За data_b направете същото, но с red_x и red_y. След това използвайте предварително написаната функция write() и добавете променливите data_a и data_b, за да ги запишете.

Сега, след като по-ниските бюра са изпълнени, отидете до тъмния X-ов знак върху лилавия килим, създайте променлива с името comparison и я използвайте с функцията math.isclose(), като подадете data_a и data_b като аргументи, по следния начин: comparison = math.isclose(data_a, data_b). Използвайте предварително написаната функция write() с променливата comparison на този X-ов знак.

Отидете до X-овия знак върху белия килим, създайте списък с име data_list и добавете data_a и data_b в тази последователност. Създайте променлива с името total и използвайте функцията math.fsum() с data_list като аргумент, по следния начин: total = math.fsum(data_list). Използвайте променливата total с предварително написаната функция write() на този X-ов знак.

Отидете до тъмния X-ов знак върху жълтия килим и се обърнете към бюрото, преобразувайте data_a и data_b в отделни списъчни стойности; например, за data_a направете: data_a = [data_a]. Направете същото за data_b, за да преобразувате и двете променливи в итерабъл, които могат да се използват с функцията math.dist(). Създайте променлива с името distance и я използвайте, за да съхраните стойността на math.dist(), като подадете data_a и data_b като аргументи. Използвайте променливата distance с предварително написаната функция write(), за да завършите нивото.

Книга с Код