Хорошо, я следую этому курсу codecademy python, и мой код верен, но я не совсем понимаю его. Мне пришлось пойти на форумы, чтобы найти правильный ответ. Вот код:Проблема с пониманием, где определена переменная
score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2,
"f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3,
"l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1,
"r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4,
"x": 8, "z": 10}
def scrabble_score(word):
total = 0
#Make my word lowercase even when i type in caps
t = word.lower()
for key in t:
total += score[key]
return total
print scrabble_score(raw_input("Your word: "))
Я получаю все, кроме этого:
total += score[key]
Как скрипт знать, что «оценка» переменная? Я нигде не определил его. Является ли это глобальной переменной? EDIT: Я был очень устал, задавая этот вопрос (был бодр, 23-25 часов, если быть точным). Теперь я вижу, что я фактически определил переменную.
Похоже, 'score' глобальный словарь. Обычно вы хотите избежать глобальных переменных в Python, если они не являются константами, такими как 'PI = 3.141592'. – iCodez
'оценка', вероятно, определена в глобальном масштабе – inspectorG4dget
Глобалы - это почти всегда плохая идея. Избегайте их, если сможете. – simonzack