หลักสูตรการพัฒนาด้วย Python ขั้นสูง
บทที่
>
ระดับ
โมดูลคณิตศาสตร์
โมดูลคณิตศาสตร์เพิ่มเติม
เป้าหมาย
คำนวณการขยายที่ดินใหม่สำหรับฟาร์มโดยใช้ฟังก์ชันเพิ่มเติมที่นำเข้าจากโมดูล math
ข้ามสะพานไปยังส่วนที่ต่อเติมที่มีสำนักงานสำหรับตรวจสำรวจที่ดินที่ไม่ได้ถูกรวมเข้าเป็นส่วนหนึ่งของฟาร์ม ซึ่งเชื่อมต่อระหว่างสองส่วนที่แตกต่างกันของฟาร์ม ที่นี่เราจะค้นหามิติและการวัดของที่ดิน ซึ่งจะเป็นความคิดที่ดีที่จะจัดเรียงและบันทึกข้อมูลเหล่านั้น คุณสามารถทำได้โดยการใช้โมดูล math ในระดับนี้เราจะได้รู้จักกับชุดฟังก์ชันใหม่ที่เราสามารถใช้ประมวลผลข้อมูล คุณใช้คำสั่งเดียวกันคือ import math และตามด้วย math. ก่อนฟังก์ชันต่างๆ เพื่อใช้ชุดนี้:
math.radians(): แปลงองศาให้เป็นเรเดียน / มุมmath.floor(): ปัดเศษตัวเลขลงให้เป็นจำนวนฐานmath.ceil(): ปัดเศษตัวเลขขึ้นให้เป็นจำนวนที่สูงกว่าmath.atan2(): คืนค่าอาร์กแทนจานของตัวเลขสองค่าในหน่วยเรเดียนmath.isclose(): ตรวจสอบว่าตัวเลขสองค่ามีความใกล้เคียงกันหรือไม่ คืนค่า true/falsemath.fsum(): บวกตัวเลขจุดทศนิยมเข้าด้วยกันจากลิสต์หรือ iterablemath.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 นี้
ย้ายไปยังเครื่องหมาย 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 เพื่อแปลงตัวแปรทั้งสองให้เป็น iterable เพื่อใช้กับฟังก์ชัน math.dist() สร้างตัวแปรชื่อ distance และใช้จัดเก็บค่าจาก math.dist() โดยใช้ data_a และ data_b เป็นอาร์กิวเมนต์ ใช้ตัวแปร distance ร่วมกับฟังก์ชัน write() ที่เขียนไว้ล่วงหน้าเพื่อทำให้ระดับนี้สมบูรณ์