Упражнения

A: Делаем срезы

Дана строка.

Сначала выведите третий символ этой строки.

Во второй строке выведите предпоследний символ этой строки.

В третьей строке выведите первые пять символов этой строки.

В четвертой строке выведите всю строку, кроме последних двух символов.

В пятой строке выведите все символы с четными индексами (считая, что индексация начинается с 0, поэтому символы выводятся начиная с первого).

В шестой строке выведите все символы с нечетными индексами, то есть начиная со второго символа строки.

В седьмой строке выведите все символы в обратном порядке.

В восьмой строке выведите все символы строки через один в обратном порядке, начиная с последнего.

В девятой строке выведите длину данной строки.

Ввод Вывод
Абракадабра
р
р
Абрак
Абракадаб
Аркдба
бааар
арбадакарбА
абдкрА
11

B: В обратном порядке

Дана строка. Выведите её символы в обратном порядке, по одном символу в строке.

Ввод Вывод
Python
n
o
h
t
y
P

C: Количество слов

Дана строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней слов. Используйте для решения задачи метод count.

Ввод Вывод
Hello world
2

D: Замена подстроки

Дана строка. Замените в этой строке все цифры 1 на слово one.

Ввод Вывод
1+1=2
one+one=2

E: Удаление символа

Дана строка. Удалите из этой строки все символы @.

Ввод Вывод
Bilbo.Baggins@bagend.hobbiton.shire.me
Bilbo.Bagginsbagend.hobbiton.shire.me

F: Две половинки

Дана строка. Разрежьте ее на две равные части (если длина строки — четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами.

Результат запишите в отдельную переменную и выведите на экран следующим образом: print("*" + s + "*")

Решение, в котором ответ выводится по-другому, приниматься не будет.

При решении этой задачи нельзя пользоваться инструкцией if.

Ввод Вывод
Hi
*iH*
Hello
*loHel*

G: Переставить два слова

Дана строка, состоящая ровно из двух слов, разделенных пробелом. Переставьте эти слова местами.

При решении этой задачи нельзя пользоваться циклами и инструкцией if.

Ввод Вывод
Hello world
*world Hello*

H: Дробь

Дана строка, в которой записана рациональная дробь в виде m/n, где m и n — целые неотрицательные числа, n не равно 0. Вычислите значение этой дроби и выведите его в виде действительного числа.

Указание. Найдите позицию символа «/». При помощи двух срезов выделите числитель и знаменатель, приведите их к типу int.

Ввод Вывод
179/57
3.1403508771929824

I: Удаление слова

Текст состоит из слов, разделённых пробелами. В тексте как минимум три слова. Удалите из текста второе слово.

Решение выведите так же, как в задаче «Две половинки».

В этой задаче нельзя использовать методы count и replace. Также желательно использовать метод find с двумя параметрами, вместо вызова метода find к срезу.

Ввод Вывод
In the hole in the ground there lived a hobbit
*In hole in the ground there lived a hobbit*

J: Повторение слова

Текст состоит из слов, разделённых пробелами. В тексте как минимум два слова. Продублируйте второе слово в тексте.

В этой задаче нельзя использовать методы count и replace. Также желательно использовать метод find с двумя параметрами, вместо вызова метода find к срезу.

Ввод Вывод
In the hole in the ground there lived a hobbit
*In the the hole in the ground there lived a hobbit*
Hello world
*Hello world world*

K: Разворот слова

Текст состоит из слов, разделённых пробелами. В тексте как минимум одно слово. Переставьте буквы второго слова (если оно есть) в обратном порядке.

Решение выведите так же, как в задаче «Две половинки».

В этой задаче нельзя использовать методы count и replace. Также желательно использовать метод find с двумя параметрами, вместо вызова метода find к срезу.

Ввод Вывод
In the hole in the ground there lived a hobbit
*In eht hole in the ground there lived a hobbit*
Hello
*Hello*

L: Футбольный матч

На табло стадиона в конце игры горит надпись:

Название 1-Название 2 A:B

где Название 1 и Название 2 — названия двух команд, а A:B — счёт матча.

Определите, какая команда победила.

Названия команд могут содержать любые символы (буквы, цифры, знаки), кроме «-» и «:». Символы «-» и «:» содержатся в строке ровно по одному разу.

Программа должна вывести название победившей команды, а если была ничья, то слово draw.

Решение выведите так же, как в задаче «Две половинки».

Ввод Вывод
Арсенал (Тула)-Спартак (Москва) 3:0
*Арсенал (Тула)*

M: Вставка символов

Дана строка. Получите новую строку, вставив между каждыми соседними символами исходной строки символ «.». Выведите полученную строку.

В этой задаче можно использовать цикл, но можно обойтись и без него (нужно догадаться самому).

Ввод Вывод
Python
*P.y.t.h.o.n*

N: Удалить каждый третий символ

Дана строка. Удалите из нее все символы, чьи индексы делятся на 3.

Решение выведите так же, как в задаче «Две половинки».

В этой задаче вам придётся использовать цикл.

Ввод Вывод
Python
*yton*

O: Метод бутерброда

Секретное агентство решило для шифрования переписки своих сотрудников использовать «метод бутерброда». Сначала буквы слова нумеруются в таком порядке: первая буква получает номер 1, последняя буква - номер 2, вторая – номер 3, предпоследняя – номер 4, потом третья … и так для всех букв (см. рисунок). Затем все буквы записываются в шифр в порядке своих номеров. Например, слово «sandwich» зашифруется в «shacnidw».

К сожалению, программист агентства, написал только программу шифрования и уволился. И теперь агенты не могут понять, что же они написали друг другу. Помогите им.

Вводится слово, зашифрованное методом бутерброда. Выведите расшифрованное слово.

Решение выведите так же, как в задаче «Две половинки».

В этой задаче можно обойтись без цикла (и это не очень сложно), но цикл не запрещается.

Ввод Вывод
Aabrrbaacda
*Abracadabra*

P: Скрытие адреса email

Для защиты от ботов, собирающих с web-страниц адреса электронной почты для рассылки спама, используются методы скрытия адреса электронной почты. Рассмотрим самый простой метод скрытия: в адресе электронной почты символы «.» меняются на «(dot)», символ «@» меняется на «(at)».

Дана строка текста, в ней есть один адрес электронной почты (он содержит один символ «@»). В адресе электронной почты (считайте, что адрес — это слово, отделённое пробелами) выполните указанные замены, в остальных местах замены производить не нужно.

Решение выведите так же, как в задаче «Две половинки».

Ввод Вывод
Bilbo.Baggins@bagend.hobbiton.shire.me - valid email.
*Bilbo(dot)Baggins(at)bagend(dot)hobbiton(dot)shire(dot)me - valid email.*

Q: Смайлики

Напишите программу, которая посчитает количество смайликов в заданном тексте.

Смайликом будем считать последовательность символов, удовлетворяющую условиям:

Например, нижеприведенные последовательности являются смайликами:

:)
;---------[[[[[[[[

в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики внутри):

:-)]
;--
-)
::-(
:-()

В этой задаче надо будет посчитать количество смайликов, содержащихся в данной строке.

Выведите одно число — количество смайликов, которые встречаются в тексте.

Эту задачу можно решить в одну строчку.

Ввод Вывод
:);------[[[[[]
2
:-)];----;
1
-)(---:---
0
hello :-)
1