เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เขียนคลาสขึ้นมาใหม่ตั้งแต่ต้น

สมมติว่าคุณเป็นนักพัฒนา Python ที่กำลังสร้างแพ็กเกจสำหรับการแสดงผลข้อมูล คุณต้องการรู้ตำแหน่งขององค์ประกอบแต่ละชิ้น ระยะห่างระหว่างองค์ประกอบ และสามารถพลิกแนวนอนหรือแนวตั้งได้อย่างง่ายดาย

องค์ประกอบพื้นฐานที่สุดของการแสดงผลคือจุดเพียงจุดเดียว ในแบบฝึกหัดนี้ จะได้เขียนคลาสสำหรับจุดบนระนาบตั้งแต่ต้น

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเขียนโปรแกรมเชิงวัตถุใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

กำหนดคลาส Point ให้มีองค์ประกอบดังนี้:

  • Attribute สองตัวคือ x และ y — เป็นพิกัดของจุดบนระนาบ
  • Constructor ที่รับอาร์กิวเมนต์สองตัวคือ x และ y เพื่อกำหนดค่า attribute ที่สอดคล้องกัน อาร์กิวเมนต์เหล่านี้ควรมีค่าดีฟอลต์เป็น 0.0
  • Method distance_to_origin() ที่ คืนค่า ระยะทางจากจุดไปยังจุดกำเนิด โดยใช้สูตร \(\sqrt{x^2 + y^2}\)
  • Method reflect() ที่สะท้อนจุดเทียบกับแกน x หรือแกน y:
    • รับอาร์กิวเมนต์หนึ่งตัวคือ axis
    • ถ้า axis="x" ให้กำหนด attribute y (ไม่ได้พิมพ์ผิด!) ให้เป็นค่าติดลบของ attribute y
    • ถ้า axis="y" ให้กำหนด attribute x ให้เป็นค่าติดลบของ attribute x
    • สำหรับค่าอื่น ๆ ของ axis ให้แสดงข้อความแจ้งข้อผิดพลาด Reflection of a point with respect to y and x axes

หมายเหตุ: สามารถเลือกใช้ฟังก์ชัน sqrt() จากแพ็กเกจ numpy หรือ math ก็ได้ แต่ไม่ว่าจะเลือกแพ็กเกจใด อย่าลืม import ก่อนเริ่มนิยามคลาส!


เพื่อตรวจสอบผลลัพธ์ ควรรันโค้ดต่อไปนี้ได้โดยไม่มีข้อผิดพลาด:

pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())

และได้ผลลัพธ์เป็น

(-3.0,0.0)
5.0

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Write the class Point as outlined in the instructions
แก้ไขและรันโค้ด