дополните приведенный код используя срезы так чтобы он вывел первые 12 символов строки s
Решение модуля 9.2 из курса «Поколение Python»
Ответы на вопросы и решения задач на питоне из урока (модуля) 9.2 курса «Поколение Python: курс для начинающих» с сайта stepik.org. Прошлый модуль 9.3
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[2:5])
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[3:])
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[:3])
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[:])
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[::-3])
Дополните приведенный код, используя срезы, так чтобы он вывел каждый 7 символ строки s начиная от начала строки.
Дополните приведенный код, используя срезы, так чтобы он вывел строку s в обратном порядке.
Палиндром
На вход программе подается одно слово, записанное в нижнем регистре. Напишите программу, которая определяет является ли оно палиндромом.
Формат входных данных
На вход программе подается одно слово в нижнем регистре.
Формат выходных данных
Программа должна вывести «YES», если слово является палиндромом и «NO» в противном случае.
Примечание. Палиндром читается одинаково в обоих направлениях, например слово «потоп».
Делаем срезы 1
На вход программе подается одна строка. Напишите программу, которая выводит:
общее количество символов в строке;
исходную строку повторенную 3 раза;
первый символ строки;
первые три символа строки;
последние три символа строки;
строку в обратном порядке;
строку с удаленным первым и последним символом.
Формат входных данных
На вход программе подается одна строка, длина которой больше 3 символов.
Формат выходных данных
Программа должна вывести данные в соответствии с условием. Каждое значение выводится на отдельной строке.
Делаем срезы 2
На вход программе подается одна строка. Напишите программу, которая выводит:
третий символ этой строки;
предпоследний символ этой строки;
первые пять символов этой строки;
всю строку, кроме последних двух символов;
все символы с четными индексами;
все символы с нечетными индексами;
все символы в обратном порядке;
все символы строки через один в обратном порядке, начиная с последнего.
Формат входных данных
На вход программе подается одна строка, длина которой больше 5 символов.
Формат выходных данных
Программа должна вывести данные в соответствии с условием. Каждое значение выводится на отдельной строке.
Две половинки
На вход программе подается строка текста. Напишите программу, которая разрежет ее на две равные части, переставит их местами и выведет на экран.
Формат входных данных
На вход программе подается строка текста.
Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.
Примечание. Если длина строки нечетная, то длина первой части должна быть на один символ больше.
Самоучитель
Методы строк для начинающих
У строк в Python есть множество полезных методов для того, чтобы дать возможность делать со строками различные полезные и нужные действия.
Методы похожи на функции, из тоже можно вызывать и, так же как и функции, они могут возвращать результат своей работы. Отличие же методов в том, что они привязаны к определенному типу данных и, например, методы строк могут быть вызваны только у строк.
Все методы строк можно посмотреть в нашем справочнике, а вот несколько примеров того, как вызывать методы строк.
Начинающему программисту важно помнить, что методы не меняют исходную строку. Строки в Python вообще нельзя изменить. Если вы хотите поменять все ее символы, например, на символы нижнего регистра, нужно присвоить строке новое значение
Индексы строк
Бывает так, что иногда появляется необходимость выбирать отдельные символы из строки. В Python для этого необходимо использовать квадратные скобки. В таблице ниже приведены примеры получения символа строки по индексу строки Python, помещенной в переменную string.
Код | Результат | Описание |
---|---|---|
s[0] | P | Первый символ |
s[1] | y | Второй символ |
s[-1] | n | Последний символ |
s[-2] | o | Предпоследний символ |
Как вы видите, необходимо учитывать, что номером индекса первого символа будет [0] Отрицательный индекс будет отсчитывать символы с конца строки. Распространенная ошибка: предположим, что мы пытаемся задать индекс s[12]. Но в примере выше мы имеем всего шесть элементов строки, и логично что Python выдаст ошибку следующего содержания:
Срезы строк
Срез используется для выделения части строки. Он состоит из индекса и диапазона. Ниже расположены несколько примеров со строкой
Фрагмент кода | Результат | Описание |
---|---|---|
string[ 2 : 5 ] | вгд | Символы с индексом 2, 3, 4 |
string[ : 5 ] | абвгд | Первые пять символов |
string[ 5 : ] | ежзик | Символы, начиная с индекса 5 и до конца |
string[ −2 : ] | ик | Последние два символа |
string[ : ] | абвгдежзик | Вся строка |
string[1 : 7 : 2] | бге | Со второго по шестой символы, через один |
string[ : : −1 ] | кизжедгвба | Обратный шаг, строка наоборот |
Базовая структура среза выглядит следующим образом: Строка[начальный_символ : конечный_символ + 1]
Срезы не включают явное расположение окончания строки. Например, в приведенном выше примере string[2 : 5], Python выведет символы с индексами 2, 3 и 4, но не символ с индексом 5.
Мы можем оставить, вместо индекса начала или окончания строки, пустоту. Пустота на месте индекса начала будет по умолчанию равна нулю. Итак, string[: 5] выведет первые пять символов строки string. А в случае string[5 :], Python покажет символы, начиная с индекса 5 и до конца строки. Если же использовать отрицательные индексы, мы получим символы с конца строки. Например, string[-2 :] — это последние два символа.
Также существует необязательный третий аргумент, который указывает на шаг среза строки. Например, string[1 : 7 : 2] берет каждый второй символ из строки с индексом 1, 3 и 5.
Решение урока 9.1 из курса «Поколение Python» на питоне
Полные решения на питоне с пояснениями к модулю 9.1 из «Поколение Python: курс для начинающих» с сайта stepik.org.
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[0] + s[2] + s[4] + s[6])
Что покажет приведенный ниже фрагмент кода?
s = ‘abcdefg’
print(s[0]3 + s[-1]3 + s[3]2 + s[3]2)
Что покажет приведенный ниже фрагмент кода?
s = ‘01234567891011121314151617’
for i in range(0, len(s), 5):
print(s[i], end=»)
Дополните приведенный код, используя индексатор, так чтобы он вывел символ запятой.
В столбик 2
На вход программе подается одна строка. Напишите программу, которая выводит в столбик элементы строки в обратном порядке.
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести в столбик элементы строки в обратном порядке.
ФИО
На вход программе подаются три строки: имя, фамилия и отчество. Напишите программу, которая выводит инициалы человека.
Формат входных данных
На вход программе подаются три строки, каждая на отдельной строке.
Формат выходных данных
Программа должна вывести ФИО человека.
Примечание. Гарантируется, что имя, фамилия и отчество начинаются с заглавной буквы.
Цифра 1
На вход программе подается одна строка состоящая из цифр. Напишите программу, которая считает сумму цифр данной строки.
Формат входных данных
На вход программе подается одна строка состоящая из цифр.
Формат выходных данных
Программа должна вывести сумму цифр данной строки.
Цифра 2
На вход программе подается одна строка. Напишите программу, которая выводит сообщение «Цифра» (без кавычек), если строка содержит цифру. В противном случае вывести сообщение «Цифр нет» (без кавычек).
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.
Одинаковые соседи
На вход программе подается одна строка. Напишите программу, которая определяет сколько в ней одинаковых соседних символов.
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести количество одинаковых соседних символов.
Гласные и согласные
На вход программе подается одна строка с буквами русского языка. Напишите программу, которая определяет количество гласных и согласных букв.
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести количество гласных и согласных букв.
Примечание. В русском языке 10 гласных букв (а, у, о, ы, и, э, я, ю, ё, е) и 21 согласная буква (б, в, г, д, ж, з, й, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ).
Decimal to Binary
На вход программе подается натуральное число, записанное в десятичной системе счисления. Напишите программу, которая переводит данное число в двоичную систему счисления.
Формат входных данных
На вход программе подается одно натуральное число.
Формат выходных данных
Программа должна вывести число записанное в двоичной системе счисления.
Индексы и срезы в Python
Индекс строки в Python
Первый по счету символ в строке всегда будет иметь индекс 0. Таким образом, обратившись по индексу к элементу, мы можем узнать его значение. В чем и состоит смысл индексов. У пробела, так же есть индекс.
Так мы получим всю строку целиком:
get_str = ‘это строка’
print(get_str)
это строка
get_s = ‘это строка’
print(get_s[5])
t
При обращении к несуществующему индексу, программа выведет ошибку.
get_s = ‘это строка’
print(get_s[10])
IndexError: string index out of range
Отрицательный индекс
Мы знаем точно, что у первого символа строки всегда будет индекс 0. А как насчет последнего символа? Ведь длина строки не всегда заранее известна. Для закрепления постоянного индекса для последнего символа, Python вводит понятие отрицательного индекса и предлагает вести отсчет наоборот, справа налево.
get_last = ‘Python’
print(get_last[-1])
n
Срез строки в Python
slice = ‘срезы Python’
print(slice[0:3])
сре #символ ‘з’ не попал в выборку
Если не указаны начало или конец среза, то по умолчанию берётся первый или последний элемент коллекции.
slice = ‘срезы Python’
print(slice[6:])
Python #с индекса 6 и до конца
slice = ‘срезы Python’
print(slice[:5])
срезы #с начала строки до 5-го индекса включительно
slice = ‘срезы Python’
print(slice[:])
срезы Python #выводит строку целиком
Третьим параметром у срезов, может передаваться шаг.
slice = ‘срезы Python’
print(slice[::2])
сеыPto #выводит символы через один
Индекс списка в Python
a = [2, 3, 5, 9, 12, 16]
print(a[4])
12
Правила для индексов у списка, похожие для индексов у строк:
Заменить элемент в списке
d = [1, 3, 5, 7, 8]
d[3] = 10
print(d)
[1, 3, 5, 10, 8]
Удалить элемент из списка
Элемент со значением 15 под индексом 2, вылетел из списка.
f = [11, 13, 15, 17]
del f[2]
print(f)
[11, 13, 17]
Срез списка в Python
Со срезами у списков дело обстоит точно так же, как и у строк. Делаем выборку со 2-го индекса по 4-ый, не включая сам 4-ый индекс.
b = [21, 32, 54, 90, 22, 46]
print(b[2:4])
[54, 90]
Вывод четных элементов списка
Выведем все четные элементы списка, используя срезы. Первым параметром передаем 1-ый индекс, во втором параметре пишем двоеточие (по умолчанию выведется последний элемент списка) и третьим параметром указываем шаг для выводимых элементов.
c = [21, 22, 23, 24, 25, 26, 27]
print(c[1::2])
[22, 24, 26]
Итоги
Ранее мы научились создавать строку, узнали, какие у строк есть методы. Сегодня вы научились по индексам и срезам находить значения. Но на этом, познания о строках не заканчиваются и все самое интересное, вас ждет впереди.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
Занятия по ПИТОНу. Занятие 5. Строки
Я несколько лет знакомился с материалами Foxford.
Эта же теория с видео. И тогда всё станет понятно.
После if и for не забудьте отрегулировать отступы пробелами или Tab
1.Задача «Делаем срезы»
Условие
Дана строка.
Сначала выведите третий символ этой строки.
Во второй строке выведите предпоследний символ этой строки.
В третьей строке выведите первые пять символов этой строки.
В четвертой строке выведите всю строку, кроме последних двух символов.
В пятой строке выведите все символы с четными индексами (считая, что индексация начинается с 0, поэтому символы выводятся начиная с первого).
В шестой строке выведите все символы с нечетными индексами, то есть начиная со второго символа строки.
В седьмой строке выведите все символы в обратном порядке.
В восьмой строке выведите все символы строки через один в обратном порядке, начиная с последнего.
В девятой строке выведите длину данной строки.
Входные данные: Abrakadabra
s = input() # И далее оператор и значение ниже
print(s[2])
r
print(s[-2])
r
print(s[:5])
Abrak
print(s[:-2])
Abrakadab
print(s[::2])
Arkdba
print(s[1::2])
baaar
print(s[::-1])
arbadakarbA
print(s[::-2])
abdkrA
print(len(s))
11
2.Задача «Количество слов»
Условие
Дана строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней слов. Используйте для решения задачи метод count.
a=input()
s=1
for i in range(0, len(a)):
if a[i]==” “:
s+=1
print(s)
Если входные данные Hello world – ответ 2
import math
a=input()
s=len(a)
l=math.ceil(s/2)
print(a[l::]+a[0:l])
Решение разработчиков
s = input()
print(s[(len(s) + 1) // 2:] + s[:(len(s) + 1) // 2])
Если входные данные – Hello, то результат будет – loHel
Для Qwerty результат – rtyQwe
Ещё решение участника
from math import *
S = input()
l = len(S)
num = int(l)
num1 = int(ceil(num / 2))
num2 = int(floor(num – num1))
str = S[: num1]
str2 = S[num1:]
print(str2 + str)
s = input()
first_word = s[:s.find(‘ ‘)]
second_word = s[s.find(‘ ‘) + 1:]
print(second_word + ‘ ‘ + first_word)
Примеры решений участниками:
s=input()
i=s.find(” “)
print(s[i+1::]+” “+s[0:i+1])
n = input()
a = n.find(‘ ‘)
x = n[0:a]
y = n[a:]
print(y + ‘ ‘ + x)
a,b=input().split()
print(b,a)
Решение разработчиков
s = input()
if s.count(‘f’) == 1:
print(s.find(‘f’))
elif s.count(‘f’) >= 2:
print(s.find(‘f’), s.rfind(‘f’))
Входные данные:
In the hole in the ground there lived a hobbit
Выходные данные: In tobbit
Решение разработчиков
s = input()
s = s[:s.find(‘h’)] + s[s.rfind(‘h’) + 1:]
print(s)
Решение участника:
s = input()
print(s.replace(s[s.find(‘h’):s.rfind(‘h’)+1],”))
s = input()
a = s[:s.find(‘h’)]
b = s[s.find(‘h’):s.rfind(‘h’) + 1]
c = s[s.rfind(‘h’) + 1:]
s = a + b[::-1] + c
print(s)
Входные данные: In the hole in the ground there lived a hobbit
Выходные данные: In th a devil ereht dnuorg eht ni eloh ehobbit
9. Задача «Замена подстроки»
Условие
Дана строка. Замените в этой строке все цифры 1 на слово one.
Во всех задачах считывайте входные данные через input() выводите ответ через print().
Входные данные: 1+1=2 Выходные данные: one+one=2
1213141516171819101 one2one3one4one5one6one7one8one9one0one
Решение разработчиков
print(input().replace(‘1’, ‘one’))