파이썬으로 만든 피즈버즈(FizzBuzz) 출력 프로그램 예제입니다.
피즈버즈 게임이란 우리나라의 369 게임과 비슷한 놀이로, 숫자를 1부터 하나씩 늘려가면서 부르되 3의 배수인 경우 ‘Fizz’로, 5의 배수인 경우 ‘Buzz’로, 3의 배수이면서 동시의 5의 배수인 경우 ‘FizzBuzz’로 부르는 놀이입니다.
여기서는 1부터 100까지의 숫자 중에서 Fizz와 Buzz를 출력하는(둘 다 아닌 경우 그 숫자를 출력) 예를 보여드립니다.
for i in range(1, 101): if i % 3 == 0 and i % 5 == 0: # 3의 배수이면서 동시에 5의 배수 print("FizzBuzz ") elif i % 3 == 0: # 5의 배수는 아니지만 3의 배수 print(" Fizz ", end="") elif i % 5 == 0: # 3의 배수는 아니지만 5의 배수 print(" Buzz ") else: # 3의 배수도 5의 배수도 아님 print("%8d " % i, end="")
for문에서 100이 아닌 101인 이유는, 100으로 하면 100에 도달하는 순간 루프를 벗어나므로 99까지만 적용되기 때문입니다. 그리고 먼저 3의 배수이면서 동시에 5의 배수인 경우를 체크합니다. 그 다음으로 3의 배수인 경우와 5의 배수인 경우를 체크합니다. 뒤의 둘은 순서가 바뀌어도 무방하나, 3의 배수이면서 5의 배수인 경우를 가장 먼저 체크해야 합니다. 마지막으로 3의 배수도 5의 배수도 아닌 경우를 체크합니다. 이 코드에서는 폭을 고정시켜서 출력하며 5마다 줄바꿈을 하도록 되어 있습니다.
이 프로그램의 실행 결과는 다음과 같습니다.
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz