inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

Project(1-2)

코드 이해

290

wnsh ud

작성한 질문수 17

0

    if failed == 0:

        print()

        print()

        print('Congratulations! The Guesees is correct.')

이 코드에서 이해가 되지 않는 부분이 있어 질문드립니다. 

failed 횟수가 3,4,5 등이어도 turns 를 넘어서지 않는다면 게임 성공인데 

왜 if failed == 0: 이라고 코드를 짜나요??

python

답변 2

2

엠엠

failed는 여기서 게임의 실패횟수가 아닙니다. turns가 동전(게임의 목숨)이라고 생각하시면 좋을것 같습니다. While문이 동작할 때마다 정답인 word와 유저가 입력한 guesses의 일치하지 않는 글자의 수를 세어 failed에 저장한다고 보시면 되겠습니다.

만약, word: secret / user입력: abcd 라면, failed는 4로 나올겁니다(secret은 5글자인데, abcd와 secret간에 일치하는 글자는 c만 있으니까, 일치하지 않는 것은 4글자 입니다.)

그리고 abcd는 guesses에 누적되고, turns는 -1이 반영되어 9로 됩니다.

계속 While문이 실행되다가 guesses에 s, e, c, r, e, t 라는 글자가 모두 모였을때(게임에 성공했을때)를 가정해보겠습니다. 그때에는 failed += 1 이 있는 else 구문이 실행되지 않습니다. 따라서 매번 While문이 실행되면서 초기화 되었던 failed는 여전히 0을 갖고 있습니다. 

그렇기 때문에 failed가 0이라는 의미는 '유저가 word를 조합하는데 필요한 모든 글자를 입력하였다' 라고 볼 수 있습니다.

guesses에 계속 유저가 입력한 글자가 쌓이고, 매번 guesses를 word와 비교하며 While문이 실행된다고 보시면 되겠습니다.(turns는 While문 바깥에 선언해서 실패 했을때 turns -= 1에만 영향을 받음)

0

좋은사람

안녕하세요.

작성하기 나름입니다.

한 번에 성공했을 경우 failed가 0 이므로, 작성한거예요

스스로 적합하게 코딩하시면 됩니다.

Python: Select Interpreter 오류

0

40

1

54강 4분 41초에서 질문 있어요.

0

57

1

import

0

37

1

45강 예제4번에서 질문 있어요!

0

55

1

45강 강의 10분 03초 내용에서 x + 1 을 하는 이유는 뭔가요?

0

49

1

3강, 7강 화면이 안나옵니다. 그냥 검은화면으로만 노출되요;;

0

53

1

41강 1분 39초 영상에서 import test_module이 조회 안 돼요.

0

56

1

29강 while(3-1) 5분 20초 강의 영상 질문

0

51

0

pcskjs@naver.com

0

60

1

인터프리터 설정이 안됩니다.

1

76

1

Python formatter 설치

0

45

1

자료 다운로드 위치 확인 부탁드립니다.

0

50

2

보라색 예약어

0

50

1

#을 붙이는 이유

0

46

1

실행이 안 되는데요.

0

60

1

print 문법 실행 안 돼요.

0

55

1

영문 계정

0

48

1

맥북에서 아이패드로 연결해서 보려고 하면 화면이 안뜹니다.

0

43

1

인스턴스 변수 문의

0

83

1

챕터 03_04 (튜플) 교육자료

0

88

2

Package(3-1) Sub 폴더 자료

0

70

1

아톰 출력 안됨

0

118

2

강의자료 메일 발송 요청 드립니다.

0

123

1

강의자료 메일로 보내주실 수 있으실까요?

1

79

0