Я учусь Python, используя Как думать, как интерактивное издание Computer Scientist, и один из упражнений имеют следующее требование:Нужна помощь выяснить, что случилось с моим кодом Python
«присвоенный переменный в вашем запрограммируйте строку с тремя кавычками, которая содержит ваш любимый абзац текста - возможно, стихотворение, речь, инструкции, чтобы испечь торт, некоторые вдохновляющие стихи и т. д.
Напишите функцию, которая учитывает количество буквенных символов (через z или A через Z), а затем отслеживает, сколько букв «e». Ваша функция должна распечатать анализ текста следующим образом:
Ваш текст содержит 243 алфавитных символа, из которых 109 (44,8%) являются «e».
Я написал код, который (мне), кажется, делает именно то, что меня просили, но когда я проверяю их решение, чтобы проверить свой код, я получаю разные результаты.
Моего код:
text = ''' "If the automobile had followed the same development cycle as the computer, a
Rolls-Royce would today cost $100, get a million miles per gallon, and explode
once a year, killing everyone inside."
-Robert Cringely'''
lowercase_text = text.lower()
def charCounter(some_text):
e_counter = 0
char_counter = 0
for char in lowercase_text:
if char == 'e':
e_counter = e_counter + 1
else:
char_counter = char_counter + 1
return ("Your text contains " + str(char_counter) + " alphabetic characters, of which " + str(e_counter) + " (" + str((e_counter/char_counter) * 100) + "%)" + "are 'e'.")
Мой код вывод: Код
Your text contains 188 alphabetic characters, of which 25 (13.297872340425531%)are 'e'.
Решения предоставленного авторами: выход
def count(p):
lows="abcdefghijklmnopqrstuvwxyz"
ups="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
numberOfe = 0
totalChars = 0
for achar in p:
if achar in lows or achar in ups:
totalChars = totalChars + 1
if achar == 'e':
numberOfe = numberOfe + 1
percent_with_e = (numberOfe/totalChars) * 100
print("Your text contains", totalChars, "alphabetic characters of which", numberOfe, "(", percent_with_e, "%)", "are 'e'.")
p = '''"If the automobile had followed the same development cycle as the computer, a
Rolls-Royce would today cost $100, get a million miles per gallon, and explode
once a year, killing everyone inside."
-Robert Cringely'''
count(p)
Кода автор решением:
Your text contains 166 alphabetic characters of which 25 (15.060240963855422 %) are 'e'.
Может кто-нибудь объяснить, что я делаю неправильно? Я не понимаю, почему есть разница в результатах.
Пожалуйста, потребуется некоторое время, чтобы научитесь форматировать свои сообщения в Stack Overflow. –