Ссылка: https://www.tutorialspoint.com/python/dictionary_get.htm
dict.get(key, what_if_key_is_missing)
Первый аргумент - это значение словаря, который вы ищете. Второй аргумент является необязательным, и с его помощью вы можете указать значение, которое будет возвращаться в случае отсутствия значения.
Пример
letternum = {'NY residents': 100000, 'LA residents':200000}
print(letternum.get('NO residents')) # the NO residents valeu does not exist in the dictionary so it will return value None , which is the default.
print(letternum.get('NO residents',0)) # the NO residents valeu does not exist in the dictionary so it will return value 0 because this value was specified.
В вашем коде вы работаете с пустым словарем, поэтому letternum.get(each_letter,0)+1
равно 1
, когда буквы еще не существует. Когда letternum[each_letter.lower()]=letternum.get(each_letter,0)+1
встречает значение each_letter, которое было присвоено ранее, оно добавляет его к предыдущему значению (из-за +1). Другими словами, этот код подсчитывает, сколько раз каждая фраза существует во фразе.
Все это будет более понятным для вас, если вы добавите в строку 5 в поле для l oop следующее:
print(each_letter.lower(), letternum.get(each_letter.lower()))