2016-08-09 2 views
1

단어의 문자를 사용하여 사전의 키를 검색하고 있습니다. 사전은 SCRABBLE_LETTER_VALUES : { 'a': 1, 'b': 3, ...} 등입니다. 여기 변수를 사용하여 dict 값 반환

내 불완전 코드입니다

""" 
Just a test example 
word = 'pie' 
n = 3 
""" 

def get_word_score(word, n): 
""" 
Returns the score for a word. Assumes the word is a 
valid word. 

The score for a word is the sum of the points for letters 
in the word multiplied by the length of the word, plus 50 
points if all n letters are used on the first go. 

Letters are scored as in Scrabble; A is worth 1, B is 
worth 3, C is worth 3, D is worth 2, E is worth 1, and so on. 

word: string (lowercase letters) 
returns: int >= 0 
""" 
score = 0 
for c in word: 
    if SCRABBLE_LETTER_VALUES.has_key(c): 
    score += SCRABBLE_LETTER_VALUES.get("""value""") 

지금이 코드가 난 여전히 파이썬을 배우고 있기 때문에 불완전하다, 그래서 나는 여전히이 문제를 생각하고 있어요,하지만 난 반환의 측면에 붙어 있어요 각 반복을 변경하는 키가있는 값입니다.

내 생각에 어쩌면 내가 일치하는 키와 동일하게 설정 한 다음 그 값을 반환 할 수는 있었지만 그 방법을 모르겠습니다. 또한 저는 올바른 사고 과정에 있는지, 말하려는지 확인하고 싶었습니다.

이 코드베이스가 루프를 성공적으로 입력하기 만하면 값을 검색 할 수 없습니다.

조언 해 주셔서 감사합니다.

+0

2와 4 개의 들여 쓰기를 혼합하고 있습니까? – Julien

+0

네 말이 맞아! 나는 단지 그것을 고쳤다. 감사합니다 – Chris

+0

다른 문제가 있습니까? – depperm

답변

2

당신은 다음을 수행 할 수 있습니다

score = 0 
for c in word: 
    score += SCRABBLE_LETTER_VALUES.get(c, 0) 
return score 

get() 그렇지 않으면이 코드에서 두 번째 인수 (0로 전달 된 기본 값을 반환, 사전이 포함되어있는 경우 키의 값을 반환합니다).

+0

답변을 주셔서 감사 드리며 코드를 약간 정리해주십시오! – Chris

-1

반복 할 때마다 score에 0을 넣습니다. for 루프 전에 초기화해야합니다.

score = 0 
for c in word: 
    score += SCRABBLE_LETTER_VALUES.get(c, 0) 
return score