Try   HackMD

Практика по теме 5. Строковые величины

На сайте https://pythontutor.ru/lessons/str/problems/slices/ решить все задачи к занятию 5. Строки

Выслать архив с решениями всех задач (файлы с расширением .py) и скриншотом с сайта, на котором видно количество решенных задач и имя текущего пользователя.

Задача 1. Делаем срезы

Дана строка.

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

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

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

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

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

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

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

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

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

Решение
s = input()
print(s[2])
print(s[-2])
print(s[:5])
print(s[:-2])
print(s[::2])
print(s[1::2])
print(s[::-1])
print(s[::-2])
print(len(s))

Задача 2. Количество слов

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

Решение
n = input().count(' ') + 1
print(n)

Задача 3. Две половинки

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

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

Решение
s = input()
n = len(s) // 2 + len(s) % 2
print(s[n:] + s[:n])

Задача 4. Переставить два слова

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

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

Решение
s = input()
n = s.find(' ')
print(s[n + 1:], s[:n])

Задача 5. Первое и последнее вхождения

Дана строка. Если в этой строке буква f встречается только один раз, выведите её индекс. Если она встречается два и более раз, выведите индекс её первого и последнего появления. Если буква f в данной строке не встречается, ничего не выводите.

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

Решение
s = input()
n = s.count('f')
if n == 1:
    print(s.find('f'))
elif n > 1:
    print(s.find('f'), s.rfind('f'))

Задача 6. Второе вхождение

Дана строка. Найдите в этой строке второе вхождение буквы f, и выведите индекс этого вхождения. Если буква f в данной строке встречается только один раз, выведите число -1, а если не встречается ни разу, выведите число -2.

Решение
s = input()
n = s.count('f')
if n == 0:
    print(-2)
elif n == 1:
    print(-1)
else:
    k = s.find('f') + 1
    print(s[k:].find('f') + k)
    # print(s.find('f', s.find('f') + 1))

Задача 7. Удаление фрагмента

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

Решение
s = input()
print(s[:s.find('h')] + s[s.rfind('h') + 1:])

Задача 8. Обращение фрагмента

Дана строка, в которой буква h встречается как минимум два раза. Разверните последовательность символов, заключенную между первым и последним появлением буквы h, в противоположном порядке.

Решение
s = input()
h1 = s.find('h')
h2 = s.rfind('h')
print(s[:h1+1] + s[h2-1:h1:-1] + s[h2:])

Задача 9. Замена подстроки

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

Задача 10. Удаление символа

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

Задача 11. Замена внутри фрагмента

Дана строка. Замените в этой строке все появления буквы h на букву H, кроме первого и последнего вхождения.

Задача 12. Удалить каждый третий символ

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