Кратко о Python — 3

Следующий элемент любого языка программирования — типы данных. Напомню, что Python — язык с неявной сильной динамической типизацией, то есть интерпретатор, выполняя программу, сам определяет тип переменной в зависимости от значения, которое ей присвоено.
python-title

<< Кратко о Python — 2

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

Небольшое замечание: определить тип (точнее, класс) конкретной переменной в Python можно с помощью функции type(переменная).

Типы данных

Числа в Python

В Python 3 встроено три числовых типа: целый, вещественный и комплексный.

Целые числа (int). В Python имеют неограниченную длину [ну, почти — память у компьютера всё же не бесконечна ;-)]. То есть можно, например, совершенно точно посчитать, сколько будет 123456789012345678901234567890 * 9876543210987654321. Преобразовать данные в целый тип можно с помощью функции int().

Заметьте: при преобразовании вещественного числа в целое функция int() просто отбрасывает дробную часть.

Вещественные числа (float). Точность представления ограничена примерно 16 значащими цифрами. Явное преобразование в вещественный тип производится функцией float().

Комплексные числа (complex). Записываются в виде суммы действительной и мнимой частей. Заметьте: мнимая часть обозначается не традиционной для математиков i, а буквой j (привет, электронщикам! ;-)). Например, 5+2j

Для преобразования в комплексное служит функция complex(r,i). Например, print(complex(2*5,1/2)) выведет на экран (10+0.5j).

Строки в Python

Строковые константы создаются как последовательность символов, заключенная в одиночные или двойные кавычки. Например, строками будут "Python is fun" и 'I love python'.

Склеивание строк

В Python операцию конкатенации («склеивания») строк обозначают знаком +.

Например, результатом выпражения "Hello" + " " + "World" будет «Hello World». Строку также можно повторять («умножать»). Например, выражение 'Халва'*3 дает в результате ‘ХалваХалваХалва’.

Выбрать отдельный символ строки можно, указав в квадратных скобках его индекс (порядковый номер).  Например, 'Программирование'[0] даст результат ‘П’ (напомню, что в Python нумерация всегда начинается с нуля). 

Срезы

Если нужно получить фрагмент строки (так называемый срез), в квадратных скобках записывают индекс его начального символа и индекс, следующий за конечным: [ start : stop ]. Например, 'Программирование'[0:3] даст ‘Про’.

Можно также вести отсчет от конца строки, указывая отрицательные значения индекса (последний символ имеет индекс -1). Например, 'Python'[-1] даст ‘n’.  'Python'[0:-1]  даст ‘Pytho’.

Мы также можем выбрать символы не подряд, указав шаг: [ start : stop : step ]

Например,  'Python'[0:-1:2] даст ‘Pto’, а 'howareyou'[0:-1:3] даст ‘hay’.

Если опустить начальный индекс, оставив двоеточие, то считается, что срез нужно начинать от начала строки. Если опустить конечный индекс — до конца строки.

Разделение строки

Чтобы разбить строку на список слов, используется метод split().

sentence = "I love python" 
words = sentence.split() 
print(words)

В результате выполнения такого фрагмента программы будут выведено  [‘I’,’love’,’python’].

Списки в Python

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

words= ['Hello', 'world', 'how', 'are', 'you'] 
print(words[0])

В результате будет выведено слово ‘Hello‘.

Можно также получать срезы списка аналогично срезам строк.

На практике обычно в список объединяют элементы одного типа, но Python позволяет включать в них и значения разных типов. В том числе возможно использование вложенных списков. Например:

things= ['нечто', 0, [1, 2], 4.56] 
print(things[2, 1], things[0])

Выведено будет ‘2 нечто’.

Рассмотрим теперь некоторые полезные методы Python для работы со списками.

append

Метод append добавляет элемент в конец существующего списка. Например:

numbers = [1, 2, 3] 
numbers.append(4) 
print(numbers)

Результат: [1,2,3,4].

insert

Метод insert вставляет новый элемент в заданное место существующего списка. Например:

words ['python', 'fun'] 
words.insert(1, 'is')
      # (индекс, значение)  
print(words)

Результат: [‘python’,’is’,’fun’].

len

Чтобы узнать количество элементов в списке (его длину), служит функция len. Например:

numbers = [1, 2, 3, 4, 5] 
print(len(numbers))

Результатом будет число 5.

Некоторые другие полезные функции и методы:

  • max(list) — получить максимальный элемент списка.
  • min(list) — получить минимальный элемент списка.
  • list.remove(item) — удалить элемент из списка.
  • list.pop(index) — «извлечь» элемент (удалить из списка и вернуть значение как результат метода); если индекс не указан, по умолчанию берется последний элемент.
  • list.reverse() — реверсировать порядок элементов списка.
  • list.sort() — отсортировать список по возрастанию.

Например:

list = [3, 5, 2, 4, 1]
list.sort()
print(list)
list.reverse()
print(list)

В результате будет выведено:
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]

Для списков также работают операции + и * (аналогично строкам).

Форматирование строк в Python

А теперь буквально несколько слов о методе format, позволяющем очень гибко управлять тем, как будет представлена информация.

В первую очередь этот метод вставляет в нужные места строки значения своих аргументов. Например:

instr = ['гитара', 'синтезатор', 'ударные']
group = 'Для записи трека потребуются {0}, {1} и {2}.'
print(group.format(instr[2], instr[0], instr[1]))

В результате будет выведено

Для записи трека потребуются ударные, гитара и синтезатор.

В данном случае при вызове метода указано три аргумента. Каждый из них будет подставлен в исходную строку вместо так называемого поля замены — фигурных скобок {}, в которых в данном случае указан порядковый номер.  

Кстати, при подстановке в строку значений элементов списка можно поступить и по-другому: в качестве параметра методу format передать весь список, а в поле замены кроме номера аргумента указывать еще и индекс. Например, тот же самый результат, что и в предыдущем примере, можно получить вот такой программой:

instr = ['гитара', 'синтезатор', 'ударные']
group = 'Для записи трека потребуются {0[2]}, {0[0]} и {0[1]}.'
print(group.format(instr))

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

print('{0}{1}{0}'.format('кол', 'о'))

на экране появится слово

колокол

Вообще-то, возможностей у метода format, намного больше, чем простая подстановка значений. В каждом поле замены можно дополнительно указать его ширину, заполняющий свободное пространство символ, выравнивание значения внутри поля, формат и точность представления числового значения и др. Но это выходит за рамки нашего краткого обзора.

Кратко о Python — 4 >>