X
Привет,Гость.
Предлагаем пройти революционный
курс по гитаре.
Подарок от Трайзе Сергея забирай!
ВАМ ПОДАРКИ ОТ ПРОЕКТА
"ГИТАРНАЯ РЕВОЛЮЦИЯ"


04.10.2022

Циклы и работа со строками

Цикл while

Синтаксис оператора while достаточно простой:

while условие:
тело цикла
else:
код, выполняющийся при завершении цикла.

Блок-схема цикла while:

2.2_While.png

Важно!

Несмотря на удобство для некоторых задач, цикл while таит в себе опасность... Если условие цикла while выполняется всегда (например, while True: ), то цикл не будет завершаться, произойдёт «зацикливание». В таком случае тело цикла будет выполняться бесконечное количество раз, будьте внимательны.

Цикл for

Синтаксис цикла с параметром

Синтаксис оператора for достаточно простой:

for i in диапазон:
тело цикла
else:
код, выполняющийся при завершении цикла.

Для получения диапазона чисел часто используется функция range().

Важно!

По умолчанию нижняя граница диапазона в функции range() равна нулю, а не единице, и указанная верхняя граница не включается.

Пример Соответствующий диапазон
range(10) от 0 до 9
range(1, 10) от 1 до 9
range(1, 10, 2) от 1 до 9 с шагом 2, т.е. 1, 3, 5, 7, 9

Аналогичная функция, которую можно использовать для строк — функция enumerate(), которая возвращает пары вида «счётчик-элемент».

Например:

for i, letter in enumerate('Привет!'): print(i, letter)

В программе выше i — это номер итерации, а letter — это символ номер i из строки 'Привет!'

Вывод получится следующий:

2.3_for.png

Управление циклом

В Python оператор break позволяет прервать цикл при возникновении внешнего фактора.

Оператор continue позволяет пропустить часть цикла при возникновении внешнего фактора и перейти к следующей итерации цикла.

Операции над строками

Ты уже знаешь, что в стандартной библиотеке Python используются переменные нескольких типов, среди которых два числовых (int (integer) и float) и один строковый (str или string).

Важно!

Строковая величина в Python — это неизменяемый набор символов в формате Unicode.

Минимальное количество символов, из которого может состоять строка, — это ноль. Например, пустая строка — “”.

Максимально допустимое количество элементов в строке зависит от технических характеристик компьютера, но в любом случае существующие ограничения скорее теоретические: в 32-разрядной версии Python предельно возможная длина строки составляет от 2 до 3 гигабайт (точная цифра зависит от конфигурации ОС). В 64-разрядной версии Python, если позволяет объем оперативной памяти, можно обрабатывать строки, содержащие 60 и более гигабайт.

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

Какова длина?

Функция len() — определяет длину строки, указанной в роли аргумента функции.

Буква за буквой

Итерируемый объект — это объект, позволяющий поочерёдно перебирать составляющие его элементы.

Пример прохода по строке

string = 'Вы - самый крутой студент'
for letter in string: print(letter, end = '')

Важно!

end – это параметр print, через который можно назначить конечный символ этой функции. По умолчанию таким символом является перенос строки, но он может быть заменен на любой другой.

Индексы

Итерируемыми (или перебираемыми) называют объекты, содержимое которых можно перебрать в цикле.Так как строка относится к их числу, у каждого элемента строковой переменной есть свой индекс, по которому мы можем к нему обратиться.

str_indexing.jpg

Индексация элементов строки подчиняется следующим правилам:

  1. Первый элемент строки имеет индекс 0.
  2. Возможно использование отрицательных индексов. При этом последний символ в строке будет иметь индекс -1, предпоследний — -2 и т.д.
  3. Из строки можно выбрать несколько идущих друг за другом элементов с помощью среза. Для создания среза необходимо указать имя переменной, индекс первого элемента среза и индекс элемента, стоящего после последнего элемента среза. Индексы должны быть заключены в квадратные скобки и разделены двоеточием. Пример: string[2:5].
  4. Первый и последний элементы среза можно не указывать, но двоеточие при этом следует оставить на своём месте! В этом случае в индекс будут включены все элементы с начала строки, если не указан первый индекс, или все элементы до конца строки, если не указан последний индекс.
  5. Допускается использование индекса с шагом. Шаг указывает интервал, с которым нужно выбирать элементы строки. Пример: string[1::2] (данный код выбирает из строки каждый второй элемент).
  6. Шаг может быть отрицательным. В этом случае элементы будут перебираться справа налево. Для корректной работы кода, в котором используется срез с отрицательным шагом, необходимо, чтобы первый индекс (индекс первого элемента среза) был больше второго (индекс элемента, следующего за последним). Пример: string[10:4:-1].

Поиск подстроки в строке

Бороться и искать, найти и не сдаваться

Ты уже знаешь, что возможности Python позволяют обрабатывать огромные строки размером более 1-го гигабайта. Можно ли найти в такой строке нужную последовательность символов, не перебирая всю строку по буквам?

В стандартной библиотеке Python есть несколько функций, позволяющих искать последовательность символов (подстроку) в строковой переменной. Мы рассмотрим наиболее распространённые из них.

Да или нет?

Если нам нужно просто узнать, содержит ли строка нужное нам слово или другую последовательность символов:

2.4_Yes_or_no.png

Ищем начало подстроки

Метод find помогает не только установить факт наличия подстроки в составе определённой строки, но и точно определить индекс, с которого начинается искомая подстрока.

2.7_Find_str_begin.png

А если совпадений несколько?

Для подсчёта количества вхождений подстроки в строку используется метод count:

2.8_Few_finds.png

Преобразование строк

Ты мог заметить, что название данного раздела несколько некорректно: приступая к изучению строковых величин, мы говорили о том, что строка — это неизменяемый объект. Так как же можно изменить то, что по определению неизменно?

На самом деле понятие неизменяемости более гибкое, чем кажется на первый взгляд. В Python предусмотрено несколько методов, которые можно применять к строкам и с помощью которых строка как-то меняется (допустим, все заглавные буквы в строке переводятся в нижний регистр и "превращаются" в строчные). И суть неизменяемости строки выражается в том, что при использовании метода строка изменится только на то время, пока выполняется команда. Само значение строковой переменной останется прежним.

Буквы большие и маленькие

Метод lower() изменяет все символы на строчные.

Метод upper() изменяет все символы на заглавные

Метод title() первую букву в словах изменяет на заглавную, остальные же становятся строчными.

Замена символов

Для преобразования строки c заменой одного символа на другой можно воспользоваться методом replace("старый символ", "новый символ").

Важно!

Если с преобразованными строками планируется дальнейшая работа, не забудь сохранить результат преобразования в новую переменную или структуру данных.

 

Поделиться ссылкой:

Добавить комментарий

Ваш адрес email не будет опубликован.