Vitness
Просветленный
(35220)
2 года назад
Вместо последнего цикла с подсчетом:
for letter in set(str1):
____if letter.isalpha():
________f1.write(f"{letter}: {str1.count(letter)}\n")
Наталия МоскаленкоЗнаток (292)
2 года назад
Не совсем поняла вместо чего?
Как это должно выглядеть
for letter in str1:
for letter in set(str1):
____if letter.isalpha():
________f1.write(f" { letter } : { str1.count(letter) } \n")
if(letter == symbol):
n += 1
if letter != " ":
f1.write(letter + ":" + str(n) + "\n")
n = 0
Само задание:
Создайте текст на английском языке. Программа должна подсчитать:
1) общее количество символов текста,
2) общее количество букв,
3) общее количество остальных (кроме букв) символов.
Кроме того, программа должна подсчитать, сколько раз в тексте
встречается каждая буква (безотносительно к регистру, естественно).
Результаты вывести в текстовый файл, оформить красиво:
чтобы было понятно, что есть что.
Указание: Счётчики должны быть независимыми. Т.е. показания одного счётчика
не может быть вычислено через показания другого.
Вот код
str1 = "I really like to sleep".lower()
list = []
all_num = 0
letters = 0
any_num = 0
for letter in str1:
all_num += 1
if letter.isalpha():
letters += 1
list.append(letter)
else:
any_num += 1
with open("cout.txt","w",encoding="utf-8") as f1:
f1.write("Вы ввели: " + str1 +"\n")
f1.write("Все символы: " + str(all_num) + "\n")
f1.write("Все буквы: " + str(letters) + "\n")
f1.write("Другие символы: " + str(any_num) + "\n")
f1.write("Кол-во встречающихся символов в строке: " + "\n")
n = 0
for letter in str1:
for symbol in list:
if(letter == symbol):
n += 1
if letter != " ":
f1.write(letter + ":" + str(n) + "\n")
n = 0
ну при подсчете отдельно (сколько раз встречается каждая буква) он дублирует ее несколько раз хотя должен выводить только 1 раз и количество данной буквы в тексте, так же при добавление в текст " ! ? , + -" он тоже подсчитывает данные символы хотя должен считать только количество букв.
Просьба дописать код под данные условия. В фото