Juwan Park :: 99병의 맥주 (파이썬)

99병의 맥주 (파이썬)

★프로그래밍/Python :: 2016.08.21 17:17

99병의 맥주 예제를 루비로 간단하게 코딩하여 포스팅했는데,

이번에는 파이썬으로 바꿔서 다시 코딩하면,

for x in range(99, 0, -1):
	print("%d병의 맥주가 벽장에 있네, %d병의 맥주가 있네." % (x, x))
	print("한 병을 내려서 넘겼다네.", end=" ")
	txt = "%d병의 맥주가 벽장에 있네." % (x - 1) if x > 1 else "더 이상 벽장에 맥주는 없네."
	print(txt, end="\n\n")

print("더 이상 맥주가 벽장에 없네. 맥주는 더 이상 없네.")
print("가게에 가서 다시 사왔네. 99병의 맥주가 벽장에 있네.")

이렇게 됩니다. 이번에도 코딩이 심플합니다. :)

코드 설명

  • for 문의 종결 선언이 없습니다. 파이썬은 들여쓰기로 블록 구조를 표현하기 때문입니다. 여기서는 1번 줄의 for 반복문이 2번 줄부터 5번 줄까지 수행됩니다.
  • "%d병" % x 형식의 표현이 sprintf 함수를 대신합니다.
  • 3번과 5번 줄에서 print 함수 끝의 end=" " 인자는 끝을 줄바꿈 대신 한 칸 띄어쓰기로 처리하겠다는 의미(줄바꿈 없음)이고, end="\n\n" 인자는 줄바꿈을 두 번 하겠다는 의미(사이의 한 줄이 비게 됨)입니다. '\n'은 다음 줄로 넘어가는 이스케이프 시퀀스입니다.
  • 4번 줄처럼 if 조건식 else가 한 줄 중간에 있으면 조건식이 참일 경우 왼쪽을, 거짓일 경우 오른쪽을 수행합니다.

이 코드를 실행하면

99병의 맥주가 벽장에 있네, 99병의 맥주가 있네.
한 병을 내려서 넘겼다네. 98병의 맥주가 벽장에 있네.

98병의 맥주가 벽장에 있네, 98병의 맥주가 있네.
한 병을 내려서 넘겼다네. 97병의 맥주가 벽장에 있네.

97병의 맥주가 벽장에 있네, 97병의 맥주가 있네.
한 병을 내려서 넘겼다네. 96병의 맥주가 벽장에 있네.

(... 중간생략 ...)

2병의 맥주가 벽장에 있네, 2병의 맥주가 있네.
한 병을 내려서 넘겼다네. 1병의 맥주가 벽장에 있네.

1병의 맥주가 벽장에 있네, 1병의 맥주가 있네.
한 병을 내려서 넘겼다네. 더 이상 벽장에 맥주는 없네.

더 이상 맥주가 벽장에 없네. 맥주는 더 이상 없네.
가게에 가서 다시 사왔네. 99병의 맥주가 벽장에 있네.

이처럼 루비로 만든 99병의 맥주 예제와 같은 결과가 나옵니다.

루비와 코드가 다르기에 내용도 다르지만 파이썬으로도 이와 같은 식의 코딩이 가능합니다.


많은 도움 되셨나요?

유용한 정보로 활용하시기 바랍니다.

1 2 3 4
Today 10    Yday 63    Tot 65,492
Juwan Park
Juwan Park's blog is powered by Daum and TISTORY.
Contemporary Blue for TISTORY.
Designed by Juwan Park. Creative Commons License
▲ TOP