더북(TheBook)

원래 코드와 동일하게 구구단 문제를 내고 정답이 맞는지 판단하는 부분이 20번 반복되게 합니다. 반복문 내부에서는 임의의 두 수를 생성해 변수 a, b에 저장합니다. 그리고 변수 a, bgugudan()의 인자로 전달합니다. gugudan() 함수는 인자로 받은 변수 a, b의 값을 각각 매개변수 num1, num2에 넣어 곱합니다. 사용자가 입력한 정답이 곱한 값과 맞는지 틀린지에 따라 0 또는 -1을 반환합니다. gugudan(a, b)의 반환값이 0이면 정답이므로 다음 문제를 계속해서 냅니다. 반환값이 -1이면 정답이 아니므로 break로 문제 출제를 중단합니다.

이번에는 5장 Self Check에 있던 프로그램을, 함수를 활용해 발전시켜 보겠습니다. 이름과 횟수를 입력받고, 횟수만큼 이름을 반복해서 말하는 게임입니다.

print('팅 팅팅팅 탱 탱탱탱 팅팅 탱탱 프라이팬 놀이!')
for i in range(5):
    name = input('이름? ')
    cnt = int(input('횟수? '))
    print(name * cnt)

원래 이 게임은 참가자가 정해져 있고, 참가자 중에서 이름을 호명해야 합니다. 이름이 틀리거나 참가자가 아닐 때는 벌칙을 받게 되죠. 여기서는 추가로 횟수를 1부터 4까지로 제한하겠습니다. 따라서 음수나 5 이상의 숫자를 외쳐도 역시 벌칙을 받습니다. 5장에서 작성한 코드에는 벌칙을 받는 부분이 없었습니다. 실제로 벌칙을 코딩하기는 어려우니 이름과 횟수 중 하나라도 틀렸을 때 틀렸다는 것을 알려 주는 기능을 넣어 보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.