• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

영어단어 맞추기 게임 질문드립니다

22.09.16 22:56 작성 조회수 242

1

import random

words_dict = {'사자':'lion', '호랑이':'tiger','사과':'apple','비행기':'airplane'}
    
words = []

for world in words_dict:
    words.append(words)

random.shuffle(words)    

chance = 3
for i in range(0, len(words)):
    q = words[i]
    for j in range(0, chance):
        user_input = str('{}의 영어단어를 입력하세요'.format(q))
        english = words_dict[q]

        if user_input.strip().lower() == english.lower():
            print('정답입니다!')
            break
        else:
            print('틀렸습니다')
    if user_input != english:
        print('정답은 {}입니다'.format(english))        


print('모든 문제를 제출했습니다')

전체 코드는 이렇게 작성했고 오류는

line 17, in <module>

english = words_dict[q]

TypeError: unhashable type: 'list'

이렇게 뜨는데 unhashable type을 구글링 해봐도 튜플 관련 글만 나와서 해결이 안되더군요.

강의를 다시 봐도 제가 실수한 부분을 모르겠어서 질문드립니다.

 

답변 2

·

답변을 작성해보세요.

2

kimyongjun0129님의 프로필

kimyongjun0129

2022.09.17

imageworld의 값이 words에 추가되어야 하기 때문에

append 인자에 words가 아닌 world를 넣으셔야 됩니다!

image입력을 받아야 하기 때문에 input()을 넣어주셔야 됩니다!

Ratel C님의 프로필

Ratel C

질문자

2022.09.17

아아 그렇군요 왜 오타는 내가 보면 안보이고 남이 보면 보이는 걸까요ㅋㅋㅋ

감사합니다!

1

위의 답변처럼 수정하시면 됩니다.

for world in words_dict:
    words.append(world)

위의 코드처럼 for문의 world가 추가되어야 합니다.

Ratel C님의 프로필

Ratel C

질문자

2022.09.17

감사합니다