Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python สร้างคลาสสำหรับการดำเนินการคำนวณ (Calculator)

บทนำ

เมื่อต้องการสร้างคลาสที่ทำหน้าที่คำนวณต่างๆ เช่น บวก ลบ คูณ หาร จะใช้แนวคิดเชิงวัตถุ (Object-Oriented Programming) โดยการกำหนดคลาส พร้อมแอตทริบิวต์และเมธอดสำหรับแต่ละการดำเนินการ จากนั้นสร้างอินสแตนซ์ของคลาสและเรียกใช้เมธอดต่างๆ เพื่อคำนวณผลลัพธ์

ตัวอย่างโค้ด

class Calculator:
    def __init__(self, num1, num2):
        self.a = num1
        self.b = num2

    def add(self):
        return self.a + self.b

    def subtract(self):
        return self.a - self.b

    def multiply(self):
        return self.a * self.b

    def divide(self):
        if self.b != 0:
            return self.a / self.b
        return "ไม่สามารถหารด้วยศูนย์ได้"

# รับค่าจากผู้ใช้
input_1 = int(input("ป้อนตัวเลขแรก: "))
input_2 = int(input("ป้อนตัวเลขที่สอง: "))
print(f"ตัวเลขที่ป้อน: {input_1}, {input_2}")

calc = Calculator(input_1, input_2)

while True:
    print("\n0. ออกจากโปรแกรม")
    print("1. บวก")
    print("2. ลบ")
    print("3. คูณ")
    print("4. หาร")
    choice = int(input("เลือกเมนู: "))

    if choice == 1:
        print(f"ผลบวก: {calc.add()}")
    elif choice == 2:
        print(f"ผลลบ: {calc.subtract()}")
    elif choice == 3:
        print(f"ผลคูณ: {calc.multiply()}")
    elif choice == 4:
        result = calc.divide()
        if isinstance(result, str):
            print(result)
        else:
            print(f"ผลหาร: {round(result, 2)}")
    elif choice == 0:
        print("ออกจากโปรแกรม")
        break
    else:
        print("เมนูไม่ถูกต้อง กรุณาลองใหม่")

ผลลัพธ์ตัวอย่าง

ป้อนตัวเลขแรก: 70
ป้อนตัวเลขที่สอง: 2
ตัวเลขที่ป้อน: 70, 2

0. ออกจากโปรแกรม
1. บวก
2. ลบ
3. คูณ
4. หาร
เลือกเมนู: 1
ผลบวก: 72
...
เลือกเมนู: 0
ออกจากโปรแกรม

คำอธิบาย

  • สร้างคลาส Calculator ที่มีเมธอด add, subtract, multiply, divide สำหรับการคำนวณแต่ละอย่าง
  • สร้างอินสแตนซ์ calc โดยส่งค่าตัวเลข 2 ตัวเข้าไป
  • ใช้ลูป while แสดงเมนูและรับคำสั่งจากผู้ใช้จนกว่าจะเลือกออก
  • มีการตรวจสอบการหารด้วยศูนย์เพื่อป้องกันข้อผิดพลาด