Назад | Python 3 учебник | Вперёд
Python — это язык с динамической типизацией. Тип переменной определяется в момент присваивания. Это сильно отличает его от той строгости, которую нам даёт Java со своей статической типизацией, но делает его более близким к JavaScript.
Писать и запускать код предполагается в Spyder 3, которую мы установили в предыдущей статье.
При создании переменной не нужно указывать тип. Мы можем просто писать имя переменной, затем равно и значение:
1 2 3 4 5 6 7 8 9 10 11 12 |
# Объявление переменных myval1 = 100 # числовая переменная some_string1 = 'my string' # строка # Обратите внимание, что мы не указывали типа переменной. print(myval1) print(some_string1) # удаление значения из памяти del myval1, some_string1 |
С помощью символа «#» мы добавляем в наш код комментарии. После этого символа можно писать любую строку. Она не будет учитываться компилятором, но туда можно записать что-нибудь полезное для тех, кто будет читать наш код в дальнейшем.
Мы не указываем тип переменных, но на самом деле в Python существует различные типы данных:
У String, List, Tuple, Set и Dictionary есть ещё отдельные методы, но это уже темы для отдельных статей.
Number
Тип данных Number позволяет хранить числа. На самом деле Python поддерживает три типа числовых данных:
- int (целые: 1, -10, 200)
- float (с плавающей точкой: 0.1, -12.87, -32.54e100)
- complex (комплексные числа, хоть где-то мне они пригодились, наконец: 4.53e-7j, 9.322e-36j)
String
Строки в Python неизменяемые, как и в Java. Для строковых литералов можно использовать как одинарные кавычки, так и двойные. С помощью операции + можно соединять строки, а с помощью * создавать строки, содержащие исходную строку указанное количество раз. Подстроки берутся с помощью [] и [:]:
1 2 3 4 5 6 7 8 9 |
str1 = 'The witcher slayed the Beast.' print (str1) # Выводим в консоль исходную строку. print (str1 + ' He was tired') # Пример конкатенации. print (str1 * 2) # Повторяем исходную строку два раза. print (str1[4:]) # Подстрока со 4-го символа вкючая. # Нумерация с 0. print (str1[4: 11]) # Подстрока с 4 (включая) по 11 (исключая)символ. # Нумерация с 0. |
Запустим на выполнение и получим следующий результат:
1 2 3 4 5 |
The witcher slayed the Beast. The witcher slayed the Beast. He was tired The witcher slayed the Beast.The witcher slayed the Beast. witcher slayed the Beast. witcher |
Заметно сходство со строками в Java, где тоже при указании начального и конечного индекса в строке или в массиве индекс первого элемента указывается включая, а индекс последнего исключая.
List
Работа со списками в Python происходит аналогично работе со строками. Операция + для объединения списка, операция * для создания списка, состоящего из исходного списка, повторённого такое же количество раз. Для взятие подсписков используется [] и [:].
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
list1 = [ 'python', 100.0 , 77, "Java"] print (list1) # Выводим содержимое списка print (list1[0]) # Элемент по индексу 0. Нумерация с 0. print (list1[1:2]) # Выводим элементы # с индекса 1 (включая) по 2 (исключая) print (list1[1:]) # Выводим элементы начиная с индекса 1 (включительно) print (list1 * 2) # Список, в которым исходный список # повторён два раза. print (list1 + [ "added element" ]) # Объединение списков # изменяет элемент в списке list1[1] = 101.0 print (list1) |
Запустим на выполнение и увидим в консоли следующий результат:
1 2 3 4 5 6 7 |
['python', 100.0, 77, 'Java'] python [100.0] [100.0, 77, 'Java'] ['python', 100.0, 77, 'Java', 'python', 100.0, 77, 'Java'] ['python', 100.0, 77, 'Java', 'added element'] ['python', 101.0, 77, 'Java'] |
Tuple
Tuple — это список, который нельзя изменять. Единственное отличие синтаксиса в том, что он объявляется в круглых скобках, а не в квадратных. Элементы Tuple НЕЛЬЗЯ изменять.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
list1 = ( 'python', 100.0 , 77, "Java") print (list1) # Выводим содержимое списка print (list1[0]) # Элемент по индексу 0. Нумерация с 0. print (list1[1:2]) # Выводим элементы # с индекса 1 (включая) по 2 (исключая) print (list1[1:]) # Выводим элементы начиная с индекса 1 (включительно) print (list1 * 2) # Список, в которым исходный список # повторён два раза. # Объединение списков print (list1 + ( "added element", "added 2 element" )) # Изменять элементы нельзя! Будет ошибка. # list1[1] = 101.0 # print (list1) |
Запустим и посмотрим на результат:
1 2 3 4 5 6 |
('python', 100.0, 77, 'Java') python (100.0,) (100.0, 77, 'Java') ('python', 100.0, 77, 'Java', 'python', 100.0, 77, 'Java') ('python', 100.0, 77, 'Java', 'added element', 'added 2 element') |
Set
Set — это множества. Они созданы для работы с коллекциями, содержащими уникальные, не повторяющиеся элементы.
Примеры создания множеств:
1 2 3 4 5 6 7 8 9 |
set1 = set('element1') print(set1) # {'l', 'n', 't', 'e', '1', 'm'} list1 = ["element1", "element2", 100] set2 = set(list1) print(set2) # {100, 'element1', 'element2'} set3 = {"element1", "element2", 100} print(set3) |
Вывод в консоль:
1 2 3 |
{'l', 'n', 't', 'e', '1', 'm'} {100, 'element1', 'element2'} {100, 'element1', 'element2'} |
Существует ещё frozenset, но его единственное отличие в том, что он неизменяем, а set изменяем.
Dictionary
Dictionary — это ассоциативные массивы. Этакий аналог Map в Java.
При создании используются фигурные скобки, а при обращении к элементам по ключу используются угловые скобки.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# Объявляем пустой Dictionary dict = {} # Связываем ключ 'witcher' со значением 'Sword' dict['witcher'] = "Sword" #Связываем ключ 100 со значением 'Axe' dict[100] = "Axe" # Выводим значения в консоль print (dict['witcher']) # 'Sword' print (dict[100]) # 'Axe' initializeddict = { 'name': 'Witcher', 'weapon':'Silver sword', 'health': 100.0 } # Пишем в консоль весь справочник print (initializeddict) # Пишем в консоль все ключи print (initializeddict.keys()) # Пишем в консоль все значения. print (initializeddict.values()) |
Запускаем и смотрим результат:
1 2 3 4 5 |
Sword Axe {'health': 100.0, 'weapon': 'Silver sword', 'name': 'Witcher'} dict_keys(['health', 'weapon', 'name']) dict_values([100.0, 'Silver sword', 'Witcher']) |