-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
영어단어 맞추기 게임 질문드립니다
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
kimyongjun0129
2022.09.17
world의 값이 words에 추가되어야 하기 때문에
append 인자에 words가 아닌 world를 넣으셔야 됩니다!
입력을 받아야 하기 때문에 input()을 넣어주셔야 됩니다!
1
남박사
지식공유자2022.09.17
위의 답변처럼 수정하시면 됩니다.
for world in words_dict:
words.append(world)
위의 코드처럼 for문의 world가 추가되어야 합니다.
답변 2