หลักสูตรการพัฒนาด้วย Python ขั้นสูง
บทที่
>
ระดับ

โมดูลคณิตศาสตร์
โมดูลคณิตศาสตร์เพิ่มเติม

วัตถุประสงค์

คำนวณการขยายที่ดินใหม่ให้กับฟาร์มโดยใช้ฟังก์ชันเพิ่มเติมที่นำเข้ามาจากโมดูล math.

ข้ามสะพาน ส่วนต่อเติมมีสำนักงานบางแห่งที่ใช้สำหรับสำรวจที่ดินที่ยังไม่ได้บูรณาการซึ่งรวมส่วนต่าง ๆ ของฟาร์มเข้าด้วยกัน ที่นี่เราจะพบกับขนาดของที่ดินและการวัด ซึ่งจะเป็นความคิดที่ดีที่จะจัดเรียงและบันทึกข้อมูลเหล่านี้ คุณสามารถทำสิ่งนี้ได้โดยใช้โมดูล math ในระดับนี้เราจะแนะนำกลุ่มฟังก์ชันใหม่ที่เราสามารถใช้ในการประมวลผลข้อมูล คุณใช้คำสั่งเดียวกันคือ import math และ math. ต่อหน้าฟังก์ชันเพื่อใช้กลุ่มนี้:

  • math.radians(): แปลงองศาให้เป็นเรเดียน / มุม
  • math.floor(): ปัดเศษลงให้ได้เป็นจำนวนฐาน
  • math.ceil(): ปัดเศษขึ้นให้ได้เป็นจำนวนที่สูงกว่า
  • math.atan2(): คืนค่าอาร์คแทนเจนต์ระหว่างตัวเลขสองตัวในรูปของเรเดียน
  • math.isclose(): ตรวจสอบว่าตัวเลขสองค่ามีความใกล้เคียงกันหรือไม่ คืนค่า true/false
  • math.fsum(): บวกค่าตัวเลขทศนิยมจากลิสต์หรือ iterable เข้าด้วยกัน
  • math.dist(): คำนวณระยะห่างระหว่างจุดสองจุด โดยที่ค่าต้องเป็นลิสต์หรือ iterable

เริ่มต้นรวบรวมข้อมูลดิบจากแผนภูมิโดยการเดินไปที่เครื่องหมาย 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 ที่เหนือพรมสีขาว สร้างลิสต์ชื่อ data_list และเพิ่ม data_a กับ data_b ตามลำดับ สร้างตัวแปรชื่อ total และใช้ฟังก์ชัน math.fsum() กับ data_list เป็นอาร์กิวเมนต์ ดังนี้: total = math.fsum(data_list) ใช้ตัวแปร total กับฟังก์ชัน write() ที่เขียนไว้ล่วงหน้าที่จุดนี้

ย้ายไปที่เครื่องหมาย X ที่มีแสงมืดเหนือพรมสีเหลืองและหันหน้าไปที่โต๊ะ แปลง data_a และ data_b ให้เป็นค่าในลิสต์แต่ละค่า ตัวอย่างเช่น สำหรับ data_a ให้ทำ: data_a = [data_a] ทำเช่นเดียวกันสำหรับ data_b เพื่อแปลงตัวแปรทั้งสองให้เป็น iterable สำหรับการใช้กับฟังก์ชัน math.dist() สร้างตัวแปรชื่อ distance และใช้เก็บค่าที่ได้จาก math.dist() โดยใช้ data_a และ data_b เป็นอาร์กิวเมนต์ ใช้ตัวแปร distance กับฟังก์ชัน write() ที่เขียนไว้ล่วงหน้าเพื่อทำให้ระดับนี้เสร็จสมบูรณ์

หนังสือโค้ด