Привет всем! Позавчера наткнулся на интересную задачку, своим решением которой я хочу поделиться сегодня. Звучала она следующим образом: «… напишите консольную утилиту на Python, которая на вход принимает текст, а на выходе даёт такой же текст, только с перемешанными буквами в середине слов. Вот преимр тгакоо преанеешивимя…». Фактически — звучит задача так: «Как перемешать буквы в слове кроме первой и последней» 🙂
Учитывая, что никаких больше условий по задаче на было — я даже не думал о количестве минимальных букв, а так же о знаках препинания (о проверке на знаки препинания мы, кстати, поговорим чуть позднее).
А значит — нам нужно:
1. Получить текст предложения
2. Разбить предложения на слова
3. Выделить первую и последнюю букву в каждом слове
4. Перемешать случайным образом все, что осталось.
Приступим!
Учитывая, что мы будем перемешивать символы случайным образом — сразу подключим библиотеку random, и получим текст предложения. Кроме этого не забудем указать тип данных обработанного предложения — список:
import random #Подключили библиотеку, отвечающую за генерацию случайных чисел
text_fynal = [] #Создали пустой список
texts = str(input('Введите предложение: \n >>> ')) #Получили переменную с текстом предложения (ввел пользователь)
texts = texts.split() #Используем метод split, который возвращает список всех слов в предложении, разделенных пробелами
Итак — к настоящему моменту мы имеем список, состоящий из всех слов в предложении. Теперь с помощью цикла пройдем по каждому слову и обработаем его по нашим требованиям:
for text in texts: #Начинаем цикл обработки каждого слова из списка
text_list = [] #создаем пустой список (позднее в него загоним все буквы, составляющие то или иное слово)
for simbol in text: #Начинаем цикл обработки каждой буквы в конкретном слове
text_list.append(simbol) #Добавляем в список каждую из букв в слове - т.е. получаем список, который составляют все буквы слова
first_simbol = text_list[0] #Вычленяем первую буквы слова
last_simbol = text_list[len(text_list) - 1] #Вычленяем последнюю букву слова
del text_list[0] #Удаляем в списке, который состоит из букв слова первую букву слова
del text_list[len(text_list) - 1] #Удаляем в списке, который состоит из букв слова последнюю букву
random.shuffle(text_list) #Перемешиваем все, что осталось в списке из букв слова случайным образом
text_list = ''.join(text_list) #Формируем переменную, которая состоит из перемешанных букв слова за исключением первой и последних букв
ok_text = first_simbol + text_list + last_simbol #Формируем переменную, которая состоит из первой буквы слова, перемешанной середины слова и последней буквы
text_fynal.append(ok_text)
Собственно — под в полном виде доступен ниже:
import random
text_fynal = []
texts = str(input('Введите предложение: \n >>> '))
texts = texts.split()
for text in texts:
text_list = []
for simbol in text:
text_list.append(simbol)
first_simbol = text_list[0]
last_simbol = text_list[len(text_list) - 1]
del text_list[0]
del text_list[len(text_list) - 1]
random.shuffle(text_list)
text_list = ''.join(text_list)
ok_text = first_simbol + text_list + last_simbol
text_fynal.append(ok_text)
print(' '.join(text_fynal))
Или — вы можете скачать его на GitHub 🙂
Как всегда — в случае возникновения вопросов — пишите на почту или в Telegram!
Спасибо за внимание!
Support the Blog!
Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️