Конкретного текста в карточке нет, поэтому ниже — одна универсальная программа на Python. Она объединяет все 7 пунктов: текст, проверяемую букву и нужный символ вводим с клавиатуры.
Общее задание: для строки T, буквы L и символа S проверить L на гласность, зашифровать T цифрами 1/2/3, посчитать S, найти долю пробелов, заменить mit на max, посчитать «х» и «у», поменять местами «а» и «б».
VOWELS = "аеёиоуыэюяaeiou"
CONSONANTS = "бвгджзйклмнпрстфхцчшщbcdfghjklmnpqrstvwxyz"
def is_vowel(ch):
return len(ch) == 1 and ch.lower() in VOWELS
def encode_text(text):
code = ""
for ch in text:
low = ch.lower()
if low in VOWELS:
code += "1"
elif low in CONSONANTS:
code += "2"
else:
code += "3"
return code
def count_char(text, symbol):
return text.count(symbol)
def spaces_part(text):
if len(text) == 0:
return 0
return text.count(" ") / len(text)
def replace_mit(text):
return text.replace("mit", "max")
def count_x_y(text):
low = text.lower()
return low.count("х") + low.count("у")
def swap_a_b(text):
result = ""
for ch in text:
if ch == "а":
result += "б"
elif ch == "б":
result += "а"
elif ch == "А":
result += "Б"
elif ch == "Б":
result += "А"
else:
result += ch
return result
text = input("Введите текст: ")
letter = input("Введите одну букву: ")
symbol = input("Введите символ: ")
if is_vowel(letter):
print("1) да, гласная")
else:
print("1) нет, не гласная")
print("2)", encode_text(text))
print("3)", count_char(text, symbol))
part = spaces_part(text)
print("4)", round(part, 3), f"({part:.2%})")
print("5)", replace_mit(text))
print("6)", count_x_y(text))
print("7)", swap_a_b(text))
Почему так:
- В п. 1 буква переводится в нижний регистр:
Аиасчитаются одной буквой. - В п. 2 каждый символ проверяется отдельно: гласная →
1, согласная →2, всё остальное →3. - В п. 3 используется
count— он считает точные совпадения символа. - В п. 4 доля пробелов:
\[ \text{доля}=\frac{\text{количество пробелов}}{\text{длина строки}} \] - В п. 5
replace("mit", "max")заменяет все вхождения. - В п. 6 строка переводится в нижний регистр, чтобы считать и
х, иХ. - В п. 7 нельзя делать два
replaceподряд: послеа → бвсе буквы станутб, и обратная замена сработает неправильно. Поэтому замена идёт за один проход по символам.
Проверка на примере:
Ввод:
text = mit х у! а б
letter = и
symbol = х
Вывод:
1) да, гласная
2) 212323133132
3) 1
4) 0.333 (33.33%)
5) max х у! а б
6) 2
7) mit х у! б а
Проверка п. 4: в строке 12 символов, из них 4 пробела, значит \(4/12 = 0{,}333...\), то есть \(33{,}33\%\).
