Я пишу программу на Python, чтобы найти последовательность символов в слове. Но программа дает неожиданный результат.
Я нашел подобный тип программы, которая отлично работает.
Мне кажется, что две программы очень похожи, но я не знаю, почему одна из них не работает
- Программа, которая не работает:
# Display the character sequence in a word
dict={}
string=input("Enter the string:").strip().lower()
for letter in string:
if letter !=dict.keys():
dict[letter]=1
else:
dict[letter]=dict[letter]+1
print(dict)
- Программа, которая работает:
def char_frequency(str1):
dict = {}
for n in str1:
keys = dict.keys()
if n in keys:
dict[n] += 1
else:
dict[n] = 1
return dict
print(char_frequency('google.com'))
- Выход для первой программы дает:
Введите строку: google.com
{'g': 1, 'c': 1, 'm': 1, 'o': 1, 'l': 1, '.': 1, 'e': 1}
- Выход для второй программы:
{'c': 1, 'e': 1, 'o': 3, 'g': 2, '.': 1, 'm': 1, 'l': 1}
Выше приведен правильный вывод.
Теперь вопросы в моей голове.
я. Почему первая программа не работает правильно?
II. Отличается ли идеология этих двух программ?