Содержание

Диапазоны

Цикл for в Питоне перебирают элементы некоторой коллекции (например списка), в этом случае, переменной цикла является элемент списка

Однако, существует возможность обратиться ко всем элементам списка и по номеру (например, нам хочется видеть их не все, а только с четными номерами). Сделать это можно воспользовавшись специальной функцией, предоставляемой стандартной библиотекой языка, которая называется range(). Эта функция создает список, состоящий из последовательных натуральных чисел, соответствующих условию. Функция может принимать от одного до трех аргументов и в зависимости от этого меняется ее поведение:

Например:

Воспользуемся этим знанием, чтобы перебрать элементы списка другим способом:

Функция split

Предположим, что у нас есть строка

s = "1 23 14"

И у нас возникло желание (странные желания приходят в голову после обеда) составить из нее список из трех элементов «1», «23» и «14».

Можно эту задачу решить с помощью самодельной функции, которая будет искать пробелы. Однако, в Питоне есть встроенная функция, которая позволяет сделать это несколько проще.

Как видно функция делит строку на список строк, однако список символов не ограничивается пробелом. В качестве аргумента для функции split может выступать любой набор символов.

Ввод с клавиатуры

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

Однако, у нее есть некоторая особенность, о которой нужно помнить. input() рассматривает вводимую строку с точки зрения синтаксиса Питона и пытается интерпретировать, поэтому если просто ввести, например, 4 и 5 через пробел, то это будет ошибкой, так как для интерпретатора она ничего не описывает. Чтобы ввод сработал корректно, нужно взять 4 и 5 в кавычки «4 5». Кавычки указывают на то, что у нас введена строка и интерпретатор поймет все верно. С одной стороны, выглядит как ограничение, другой, можно сразу, например, ввести список: [2,4,5]

Преобразование типа

В Питоне существует возможность переводить типы данных друг в друга. Например, если строка содержит только символы цифр без пробелов («45363»), то ее можно преобразовать в натуральное число с помощью функции int()

Задача 1

Пользователь вводит с клавиатуры строку состоящую из пробелов и чисел, например «34 34 79 1568 2» Написать программу, в которой: 1. Строка преобразуется в список 2. Считается сумма всех элементов списка 3. Сумма выводится на экран

Задача 2

Пользователь вводит с клавиатуры строку состоящую из пробелов и чисел, например «2 6 4 7 1» Написать программу, в которой: 1. Строка преобразуется в список 2. Вывести на экран только те элементы списка, которые больше обоих соседей

Еще функции для работы со строками

Строки в Питоне немножко списки и к ним можно применять похожие действия. Например, выборку элементов и подстрок

В строках можно и поискать, для этого существуют две специальные функции find() и rfind(). Первая возвращает позицию первого вхождения подстроки в строке, начиная с начала, а вторая - с конца.

Задача 3

Используя строку из последнего примера, написать программу, которая выводит на экран позицию второго вхождения подстроки «bc»

Заполнение списка с помощью генератора

Задача 4

Отсортировать столбцы матрицы по возрастанию сумм элементов в столбце.

Самостоятельная работа

  1. Превратите список [«Рыжая», «лиса», «перепрыгнула», «через», «низкий», «забор», «.»] в грамматически правильное предложение. Каждое слово должно отделяться пробелом, но между словом «забор» и следующей за ним точкой пробела быть не должно.
  2. Создайте строку «тритритритри», используя конкатенацию, а затем сделайте то же самое, только с помощью умножения.
  3. Выведите каждый элемент в списке из первого задания вместе с индексами.
  4. Умножьте все числа в списке [8, 19, 148, 4] на все числа в списке [9, 1, 33, 83] попарно и поместите результаты в третий список.
  5. Замените каждое вхождение буквы «б» на цифру «1», а вхождение буквы «р» на «*» в строке «Все бобры добры для своих бобрят».
  6. Напишите программу, которая принимает от пользователя две строки ans1 и ans2, вставляет их в строку «Вчера я написал ans1. Вчера я ходил в ans2.» и выводит новую строку.