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

โปรแกรม FizzBuzz ใน Python

ภาพรวม

FizzBuzz เป็นโจทย์คลาสสิกที่ใช้สอบทักษะการเขียนโปรแกรมพื้นฐาน โดยต้องแสดงตัวเลข 1 ถึง n แต่เปลี่ยนเป็นคำเฉพาะตามกฎ:

  • หาร 3 ลงตัว → "Fizz"
  • หาร 5 ลงตัว → "Buzz"
  • หาร 3 และ 5 ลงตัว → "FizzBuzz"
  • อื่นๆ → แสดงตัวเลขนั้นๆ

ตัวอย่าง

อินพุต: 15

เอาต์พุต:

['1', '2', 'Fizz', '4', 'Buzz', 'Fizz', '7', '8', 'Fizz', 'Buzz', '11', 'Fizz', '13', '14', 'FizzBuzz']

โค้ด Python

class Solution(object):
    def fizzBuzz(self, n):
        result = []
        for i in range(1, n+1):
            if i % 3 == 0 and i % 5 == 0:
                result.append("FizzBuzz")
            elif i % 3 == 0:
                result.append("Fizz")
            elif i % 5 == 0:
                result.append("Buzz")
            else:
                result.append(str(i))
        return result

ob1 = Solution()
print(ob1.fizzBuzz(15))

วิธีเขียนแบบกระชับ (Concise)

def fizzbuzz(n):
    return ['FizzBuzz' if i%15==0 else 'Fizz' if i%3==0 else 'Buzz' if i%5==0 else str(i) for i in range(1,n+1)]

จุดสำคัญ

  • ตรวจสอบเงื่อนไข 15 (3×5) ก่อน เพื่อไม่ให้จับคู่กับ 3 หรือ 5 แยกกัน
  • ใช้ modulo operator (%) ตรวจสอบหารลงตัว
  • แปลงตัวเลขเป็นสตริงด้วย str() เมื่อไม่ใช่กรณีพิเศษ