Coding for KidsCoding for Kids
Креативни НиваПредизвикателстваРъководство за Учители
Гласувайте за функции
Курс по усъвършенствано разработване с 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) и закръглете стойността чрез blue_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(), за да завършите нивото.

Книга с Код