• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

행맨 만들기에서..

23.03.12 22:52 작성 조회수 464

1

스크린샷 2023-03-12 오후 10.42.47.png

행맨 만들기 프로젝트 일부 코드에서 이해가 안되는 부분이 있어 질문드립니다!

 

while 문에서 i = 0 을 설정한 뒤에 elem 값이 char 의 input 값과 같으면 그 값이 lst에서 치환되는 것이라고 설명해주셨는데

lst[i] 는 lst 내에서 i+1 번째 값을 의미하는 것이 아닌가요?? 아니면 i 는 그냥 미지수의 의미로 설정한 변수로 생각하면 되나요?

비슷한 질문으로 i += 1 이라는 코드를 추가한 이유가 무엇인가요? 저 코드를 빼고 작동시켜보니 이전에 맞췄던 철자가 저장되지 않고 첫 단어에만 값이 입력되는 걸 보니 이전 값들을 차곡차곡 쌓는 느낌인가요..?

너무 초보적인 질문이라 죄송합니다.. 아무리 고민하고 찾아봐도 쉽게 답이 나오지 않아 질문드립니다..

답변 1

답변을 작성해보세요.

1

안녕하세요.

일단 질문해 주셔서 감사합니다. 모르는 건 꼭 질문을 하셔야 합니다 :D

여기서 i는 lst 안에 인덱스이며, lst 내에서 i+1 번째 값을 의미하는 것이 맞습니다.

for loop안에 저희가 하려고 하는 것은 유저가 추측한 값과, 저희가 문제를 설정한 값과 맞는 문자를 맞춰보기 위함입니다. 그리고 i가 필요한 이유는 elem이 question에서의 하나하나의 문자값으로 차근차근 앞에서 부터 바뀌는 거에 반해, i가 없으면 lst는 현재 몇번째 인덱스를 비교하는 것인지 모르기 때문에 그 순서를 기억하기 위해서 만들어 놓은 것입니다.

그리고 나중에 나오는 목표 컨디션을 보시면 "_"가 없으면 유저가 모든 문자를 맞추는 것이기 때문에 그때그때 lst를 치환해 놓은 겁니다.

이해하시는 데 도움이 되었으면 좋겠네요.

또 다른 팁으로는 아래 두줄의 코드를 추가하시면 도움이 될 듯 합니다.

for elem in question:
    if elem == char:
        lst[i] = char
    i += 1
    print(elem) # 이 부분 추가
    print(lst) # 이 부분 추가

 

마지막으로 또 질문이 있으시다면 언제든지 물어보세요! 항상 응원 합니다!