28. Текстовые сообщения.
Условие:
На старых мобильных телефонах текстовые сообщения набирались при помощи цифровых кнопок.
При этом одна кнопка была ассоциирована сразу с несколькими буквами, а выбор зависел от количества нажатий на кнопку.
Однократное нажатие приводило к появлению первой буквы в соответствующем этой кнопке списке, последующие нажатия меняли ее на следующую.
Список символов, ассоциированных с цифровой панелью, приведен в словаре:
start_dict = { 1: ".,?!:", 2: "abc", 3: "def", 4: "ghi", 5: "jkl", 6: "mno", 7: "pqrs", 8: "tuv", 9: "wxyz", 0: " " }
Напишите программу, отображающую последовательность кнопок, которую необходимо нажать, чтобы на экране телефона появился текст, введенный пользователем.
Создайте словарь, сопоставляющий символы с кнопками, которые необходимо нажать, а затем воспользуйтесь им для вывода на экран последовательности кнопок в соответствии с введенным пользователем сообщением по запросу.
Например, на ввод строки <Hello, World!> ваша программа должна откликнуться следующим выводом: 4433555555666110966677755531111.
Удостоверьтесь, что ваша программа корректно обрабатывает строчные и прописные буквы. Если ввести в вашем тексте цифры, то они должны быть выведены в скобках.
Код:
# ввод данных
start_dict = {
1: ".,?!:",
2: "abc",
3: "def",
4: "ghi",
5: "jkl",
6: "mno",
7: "pqrs",
8: "tuv",
9: "wxyz",
0: " "
}
# составим словарь с соответствиями для каждого символа
finish_dict = {}
for a, b in start_dict.items():
count = 0
for i in b:
count += 1
finish_dict[i] = int(count * str(a))
# ввод строки для преобразования
print()
text = input("%100s" % "Введите текст для преобразования: ")
print()
# выведем преобразованный текст
for i in text:
i = i.lower()
if i not in finish_dict:
print(f"({i})", end="")
else:
print(finish_dict[i], end="")
print()
print()