강의로 돌아가기
-

이해 안되는 부분이 있어 여쭤봅니다.

좋은 강의 감사합니다.

강의 내용중 (책 p.189)에서 함수 정의 부분에,

elif wintable[mine] == yours:
return 'win'

이라고 나옵니다.
여기서, elif wintable[mine] ==yours:부분에 설명을 더 부탁드립니다.

제 이해는, 전역 변수 wintable 딕셔너리를 활용하는 것이고,
여기에 [mine] 이름표에 해당하는 값이 yours와 같으면...입니다.
즉, mine이 '가위'의 이름표를 갖게 되면 그 값은 '보'이고 그것이 yours'와 동일한지 확인해서 그렇다면 (즉 yours도 '보' 라면)..
그러면, 비기는 것이 아닌지요?

부족한 이해에 도움을 주시기 바랍니다.

좋은 강의와 교재 다시한번 감사드립니다.

2 개의 답변
프로그래머스

wintable은 key-value로 대응되는 딕셔너리 입니다. 이 때 value는 key가 이길 수 있는 값을 지닙니다.
예를 들어, 가위를 이길 수 있습니다. 따라서 key 가위에 대응되는 값은 입니다.

elif wintable[mine] == yours:mine이 이길 수 있는 값(wintable[mine])이 yours와 같으면 이라는 뜻이지요.
이를 좀 더 한글같이 표현하면 mine이 yours를 이길 수 있으면이 되겠지요.

예제를 통해 살펴보면

1. 비기는 경번 | mine = ''가위, yours =가위"

첫번째 if 블록(mine == yours)에 걸려, draw입니다.

2. 이기는 경우 | mine = 가위, yours =

wintable[mine]은 이고, 는 yours와 같으므로 win입니다.

3. 지는 경우 | mine = 가위, yours = 바위

wintable[mine]은 이고, 는 yours와 다르므로 lose 입니다.

이정운

아 여기서 막히네요 저도 똑같은게 이해가 안가는데요.. 선생님이 말씀해주신

elif wintable[mine] == yours:는 mine이 이길 수 있는 값(wintable[mine])이 yours와 같으면 이라는 뜻이지요.
이를 좀 더 한글같이 표현하면 mine이 yours를 이길 수 있으면이 되겠지요. 여기에서

'''wintable[mine]''' 이것이 '''mine이 이길 수 있는 값''' 이라고 하는데 후 이해가 안가용 ㅠ

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.