Введение в Python за полчаса, а также подборка книг и YouTube-каналов на несколько месяцев интенсивного, но более вдумчивого изучения. Обсудить Прочитав статью, вы познакомитесь с особенностями языка Python, основными типами данных, условными операторы, циклами и работой с файлами. В заключении приведена подборка литературы и каналов на YouTube, а также бесплатных курсов. *** Установка Python Python в Ubuntu предустановлен. Чтобы узнать версию Python, откроем терминал комбинацией клавиш Ctrl + Alt + T и введем следующую команду: python3 --version Для Windows нужно скачать Python с официального сайта и установить как обычную программу. Установка редактора кода Для работы нам понадобится редактор кода (IDE). Самые популярные: PyCharm Atom Visual Studio Code Sublime Text Для установки Atom в Ubuntu введем в терминале: wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list' sudo apt-get update sudo apt-get install atom Рис. 1. Страница установки Atom для Windows Для Windows скачаем Atom с официального сайта. После установки редактора кода установим для него плагин run-python-simply (есть и другие) для запуска Python. Два способа установки: Перейдем на страничку плагина и нажмем кнопку Install. Откроем Atom, перейдем во вкладку File → Settings → Install , введем в поле поиска run-python-simply и установим его. Создание проекта Создадим проект, в котором будем хранить код и другие файлы. Для этого перейдем во вкладку File → Add Project Folder и выберем любую свободную папку. Онлайн-редакторы кода Если под рукой только смартфон, воспользуемся бесплатными онлайн-редакторами кода: repl.it onlinegdb.com tutorialspoint.com paiza.io onecompiler.com 1. Синтаксис Python использует отступы, чтобы обозначить начало блока кода: if 3 > 1: print("Три больше единицы") # Три больше единицы Python выдаст ошибку, если вы пропустите отступ: if 3 > 1: print("Три больше единицы") # Ошибка: IndentationError: expected an indented block Рекомендуется использовать отступ, равный четырем пробелам. 2. Hello, World Создадим файл example.py, где example – имя файла, .py – расширение, которое означает, что программа написана на языке программирования Python. Напишем в example.py следующую строчку: print('Hello, World') # Hello, World У нас установлен плагин run-python-simply и запустить код мы можем двумя способами: перейти во вкладку Packages → Run Python Simply → Toggle F5; или нажать на клавишу F5. После запуска кода появится окно терминала с результатом или ошибкой. В нашем случае в терминале отобразится фраза Hello, World. Здесь: print() – функция, выводящая на экран фразу Hello, World. 'Hello, World' – строка (заключена в кавычки). Также можно использовать переменную word, которой присвоим значение 'Hello, World': word = 'Hello, World' print(word) # Hello, World Python – язык с динамической типизацией, то есть нам не нужно заранее объявлять тип переменной, является ли она строкой, числом и так далее. О функциях поговорим в конце статьи, сейчас разберемся со строками и другими типами данных. 3. Типы данных 3.1. Строки Строка – упорядоченная последовательность символов, заключенная в одинарные или двойные кавычки: "Cat and dog" # пример записи строки 'Cat and giraffe' Операции со строками Изменение регистра первого символа к верхнему регистру с помощью метода title(): string = 'cat' print(string.title()) # Cat Преобразование всех символов к верхнему и нижнему регистру методами upper() и lower() соответственно: string = 'cat' print(string.upper()) # CAT string = 'DOG' print(string.lower()) # dog Объединение строк (конкатенация). Строки объединяются с помощью знака сложения +: first_animal = 'cat' second_animal = 'dog' all_animals = first_animal + ',' + ' ' + second_animal print(all_animals) # cat, dog Повторение строки: animal = 'Cat' print(animal * 5) # CatCatCatCatCat Вычисление длины строки. Чтобы определить длину строки воспользуемся встроенной функцией len() (сокращённое от англ. length): animal = 'Cat' print(len(animal)) # 3 Рис. 2. Доступ к элементу строки по индексу в Python Индексация начинается с 0. В нашем случае символ C имеет индекс 0, a – 1, t – 2. Для получения элемента по индексу воспользуемся квадратными скобками []: animal = 'Cat' print(animal[0]) # C В предыдущем примере по индексу мы получали один элемент строки. По срезу можно получить несколько элементов: animal = 'CatDog' print(animal[1:3]) # at print(animal[0:6:2]) # Cto – выводится нулевой элемент и каждый второй после него Как формируется срез: list_name[start:stop:step], где start – начало среза, stop – конец среза, step – шаг среза. Получим с помощью среза последний элемент: animal = 'CatDog' print(animal[-1]) # g Все элементы, кроме первого: animal = 'CatDog' print(animal[1:]) # atDog Все элементы, кроме последнего: animal = 'CatDog' print(animal[0:5]) # CatDo print(animal[:5]) # CatDo print(animal[:-1]) # CatDo Создание копии строки через срез: animal = 'CatDog' animal_copy = animal[:] print(animal_copy) # CatDog Методом replace() заменим символы в строке: animal = 'CatDog' print(animal.replace('Cat', 'Dog')) # DogDog В скобках метода replace() указана дополнительная информация: Cat – элемент, подлежащий замене на элемент Dog. Для удаление пробелов слева и справа применяется метод strip(), только справа – rstrip(), только слева – lstrip(): animal = ' CatDog ' print(animal.strip()) # CatDog print(animal.rstrip()) # CatDog – здесь остался пробел слева print(animal.lstrip()) # CatDog – здесь остался пробел справа Преобразование строки в список индивидуальных символов: animal = 'CatDog ' print(list(animal)) # ['C', 'a', 't', 'D', 'o', 'g', ' '] 3.2. Числа Целые числа (int) не имеют дробной части: print(25 + 0 - 24) # 1 Число с плавающей точкой (float) имеет дробную часть: print(2.8 + 4.1) # 6.8999999999999995 Операции над числами: print(2 + 3) # Сложение: 5 print(5 - 4) # Вычитание: 1 print(5 * 5) # Умножение: 25 print(4 / 2) # Деление: 2.0 print(4 ** 4) # Возведение в степень: 256 Порядок операций. Выражение в скобках будет просчитываться в первую очередь: print(3*4 + 5) # 17 print(3*(4 + 5)) # 27 Чтобы преобразовать число с плавающей точкой в целое воспользуемся функцией int(), а для обратного преобразования – функцией float(): print(int(5.156)) # 5 print(float(4)) # 4.0 3.3. Списки Список (англ. list) – набор упорядоченных элементов произвольных типов. Списки задаются квадратными скобками [] и содержат объекты любого типа: строки, числа, другие списки и так далее. Элементы можно менять по индексу. Создадим список animals и выведем его на экран: animals = ['cat', 'dog', 'giraffe'] print(animals) # ['cat', 'dog', 'giraffe'] Обратимся к второму элементу списка: animals = ['cat', 'dog', 'giraffe'] print(animals[1]) # dog Чтобы изменить элемент списка, обратимся к нему по индексу и присвоим новое значение: animals = ['cat', 'dog', 'giraffe'] print(animals) # ['cat', 'dog', 'giraffe'] animals[2] = 'orangutan' # меняем третий элемент print(animals) # ['cat', 'dog', 'orangutan'] animals[2] = ['orangutan'] print(animals) # ['cat', 'dog', ['orangutan']] – список внутри списка, вложенный список Для добавления элемента в конец списка воспользуемся методом append(): animals = ['cat', 'dog', 'giraffe'] animals.append('tyrannosaurus') print(animals) # ['cat', 'dog', 'giraffe', 'tyrannosaurus'] Метод insert() вставляет элемент по индексу: animals = ['cat', 'dog', 'giraffe'] animals.insert(1, 43) print(animals) # ['cat', 43, 'dog', 'giraffe'] Число 43 вставляется на место с индексом 1, остальные элементы сдвигаются вправо. Первый элемент остается на прежнем месте. Для удаления элемента из списка, обратимся к элементу по индексу, используя команду del: animals = ['cat', 'dog', 'giraffe'] del animals[2] print(animals) # ['cat', 'dog'] Другой способ удаления – метод pop(): animals = ['cat', 'dog', 'giraffe'] animals.pop(2) print(animals) # ['cat', 'dog'] В двух предыдущих примерах мы удаляли элемент по его индексу. Теперь удалим элемент по его значению с помощью метода remove(): animals = ['cat', 'dog', 'giraffe'] animals.remove('dog') print(animals) # ['cat', 'giraffe'] Чтобы упорядочить список по алфавиту используем метод sort(): animals = ['giraffe', 'cat', 'dog'] animals.sort() print(animals) # ['cat', 'dog', 'giraffe'] Список в обратном порядке выводится методом reverse(): animals = ['cat', 'dog', 'giraffe'] animals.reverse() print(animals) # [giraffe', 'dog', 'cat'] Для определения длины списка воспользуемся функцией len(): animals = ['cat', 'dog', 'giraffe'] print(len(animals)) # 3 3.4. Кортежи Рис. 3. Доступ к элементам кортежа по индексу в Python Кортеж (англ. tuple), как и список хранит элементы, только в отличие от списка, элементы кортежа не изменяются. Кортеж задается круглыми скобками (): animals = ('cat', 'dog', 'giraffe') print(animals[0]) # Получение элемента кортежа с индексом 0: cat Одноэлементный кортеж задается с помощью запятой после первого элемента. Без запятой получим список. Чтобы узнать какой тип данных мы получаем на выходе воспользуемся функцией type(): animals = ('cat',) print(animals) # ('cat',) print(type(animals)) # <class 'tuple'> – кортеж animals = ('cat') print(animals) # cat print(type(animals)) # <class 'str'> – строка Конкатенация кортежей: print(('cat',) + ('dog', 2)) # ('cat', 'dog', 2) Повторение кортежа: print(('cat', 'dog', 4) * 2) # ('cat', 'dog', 4, 'cat', 'dog', 4) Срез кортежа: animals = ('cat', 'dog', 'giraffe') print(animals[0:1]) # ('cat',) print(animals[0:2]) # ('cat', 'dog') Чтобы создать список из элементов кортежа применим функцию list(): animals_tuple = ('cat', 'dog', 33) animals_list = list(animals_tuple) print(animals_list) # ['cat', 'dog', 33] 3.5. Словари Рис. 4. Устройство словаря в Python Словарь – неупорядоченная коллекция произвольных элементов, состоящих из пар «ключ-значение». Словарь объявляется через фигурные скобки {}: dictionary = {‘pets‘: ‘cat‘, ‘numbers‘: (1, 2)}, где pets и numbers – ключи, а cat, (1, 2) – значения. Если в списке мы получаем объект по его индексу, то в словаре по ключу. Получим по ключам соответствующие значения из словаря dictionary: dictionary = {'pets': 'cat', 'numbers': (1, 2)} print(dictionary['pets']) # cat print(dictionary['numbers']) # (1, 2) print(dictionary['numbers'][1]) # 2 Чтобы добавить новую пару «ключ-значение» используем следующую запись словарь['новый_ключ'] = новое_значение: dictionary = {'pets': 'cat', 'numbers': (1, 2)} dictionary['dinosaur'] = 'tyrannosaurus', 'pterodactylus' print(dictionary) # {'pets': 'cat', 'numbers': (1, 2), 'dinosaur': ('tyrannosaurus', 'pterodactylus')} Изменение существующего значения похоже на добавление нового значения словарь['существующий_ключ'] = новое_значение: dictionary = {'pets': 'cat', 'numbers': (1, 2)} dictionary['pets'] = 'dog' print(dictionary) # {'pets': 'dog', 'numbers': (1, 2)} Командой del можно удалить ключ со значением: dictionary = {'pets': 'cat', 'numbers': (1, 2)} del dictionary['pets'] print(dictionary) # {'numbers': (1, 2)} 3.6. Множества Множества – неупорядоченные последовательности не повторяющихся элементов. Множество задается чрез фигурные скобки {}: animals_and_numbers = {'cat', 'dog', 99, 100} print(animals_and_numbers) # {'cat', 99, 100, 'dog'} Операции над множествами: animals_and_numbers = {'cat', 'dog', 99, 100} numbers = {555, 99} animals = {'cat', 'dog'} print(animals_and_numbers.union(numbers)) # {'cat', 99, 100, 'dog', 555} – добавляет в множество animals_and_numbers элементы множества numbers print(animals_and_numbers.intersection(numbers)) # {99} – возвращает множество, являющееся пересечением множеств animals_and_numbers и numbers print(animals_and_numbers.difference(numbers)) # {'cat', 'dog', 100} – Возвращает разность множеств animals_and_numbers и numbers print(animals_and_numbers.issuperset(animals)) # True – Возвращает True, если animals является подмножеством animals_and_numbers. 3.7. Файлы С помощью функции open() мы создаем файловый объект для работы с файлами. Создадим в папке с python-файлом текстовой файл example.txt, напишем в нем слово test, сохраним и закроем. Следующий код открывает и выводит на экран содержимое текстового файла example.txt: with open('example.txt', 'r') as file: for line in file: print(line) Здесь: example.txt – путь к файлу и его имя. В нашем случае файл расположен в папке с выполняемой программой. r – режим работы «только чтение». Попробуем дозаписать числа в конец файла: numbers = ['0', '1', '2', '3'] with open('example.txt', 'a') as file: for number in numbers: file.write(number + 'n') 0 # в файл запишется последовательность чисел, каждое число с новой строчки 1 2 3 Здесь: numbers – список чисел. a – режим записи «в конец текстового файла». n – перенос на новую строчку. Без переноса строки результат будет следующий: numbers = ['0', '1', '2', '3'] with open('example.txt', 'a') as file: for number in numbers: file.write(number) 0123 # результат записи без переноса строки 4. Ввод данных Для ввода данных применяется функция input(): input_word = input('Введите какое-нибудь слово: ') print('Слово: ' + input_word) 5. Условные инструкции Рис. 5. Условный оператор if в Python Оператор if выполняет код в зависимости от условия. Проверим, если число три меньше пяти, то выведем на экран слово true: if 3 < 5: print('true') # true Попробуем оператор if-else. else переводится как «в другом случае». Когда условие if не выполняется, то идет выполнение кода после else: if 3 > 5: print('true') else: print('false') # false elif = else + if – код выполняется, если предыдущее условие ложно, а текущее истинно: number = 15 if number < 3: print('число меньше трех') elif 4 < number < 10: print('число в промежутке от 4 до 10') elif number > 10: print('число больше 10') # число больше 10 6. Цикл while Рис. 6. Цикл while в Python Напишем цикл, который 5 раз выведет на экран слово hello: x = 0 while x < 5: print('hello') x += 1 # получаем пять раз слово hello hello hello hello hello hello Здесь: while – обозначение цикла. x < 5 – условие, которое записывается после while. Каждый раз после выполнения цикла (после одной итерации) проверяется это условие. Если оно становится ложным, цикл прекращает работу. print('hello') – вывести на экран слово hello. x += 1 – это сокращенный способ записи x = x + 1. То есть при каждой итерации значение x увеличивается на единицу. Бесконечный цикл записывается с помощью while True: while True: print('hello') hello hello hello hello hello … 7. Цикл for Рис. 7. Цикл for в Python Цикл for перебирает элементы последовательности: numbers = ['0', '1', '2', '3'] for i in range(0, len(numbers)): print(numbers[i]) # на экран выводятся числа 0, 1, 2 и 3 0 1 2 3 Здесь: i – переменная, которая принимает значение из диапазона значений range(0, len(numbers)). range(0, len(numbers)) – последовательность чисел от 0 до значения длины списка numbers. print(numbers[i]) – тело цикла, выводит на экран i-й элемент списка numbers. Второй вариант записи: numbers = ['0', '1', '2', '3'] for number in numbers: print(number) # идентичный результат 0 1 2 3 8. Функции Функция выполняет одну конкретную задачу и имеет имя. Напишем функцию greeting(), которая выводит на экран приветствие: def greeting(): # объявление функции print('hello') # тело функции greeting() # запуск функции Здесь: def – создает объект функции и присваивает ей имя greeting. В скобках можно указать аргументы (см. следующий пример). В нашем случае аргументов нет и скобки пустые. print('hello') – выводит на экран слово hello. Напишем функцию summation(), которая складывает два числа: def summation (a, b): return print(a + b) summation(3, 8) # 11 Здесь: a и b – аргументы функции. return возвращает значение функции. 9. Модули Модуль – файл, содержащий функции, классы и данные, которые можно использовать в других программах. from math import trunc print(trunc(3.9)) # 3 Здесь: from math import trunc – из встроенного в Python модуля math импортируем функцию trunc, которая отбрасывает дробную часть числа. Это был импорт отдельной функции. Теперь импортируем весь модуль и обратимся к функции через модуль.имя_функции(): import math print(math.trunc(3.9)) # 3 10. Комментарии Комментирование кода помогает объяснить логику работы программы. Однострочный комментарий начинается с хеш-символа #: a = 45 # комментарий к коду Многострочный комментарий заключается с обеих сторон в три кавычки: """ a = 45 b = 99 """ Литература «Изучаем Python», Марк Лутц «Программируем на Python», Майкл Доусон «Изучаем программирование на Python», Пол Бэрри «Начинаем программировать на Python», Тонни Гэддис «Простой Python. Современный стиль программирования», Билл Любанович Шпаргалки Шпаргалка по Python3 (.pdf) Python Cheat Sheet (.pdf) Beginners Python Cheat Sheet (.pdf) Essential Python Cheat Sheet Python Conditions Cheat Sheet Больше шпаргалок в нашей группе ВКонтакте. YouTube-каналы и курсы Бесплатные курсы на русском и английском языках в YouTube и на образовательных ресурсах: На английском: Programming with Mosh freeСodeСamp.org Microsoft Developer Introduction To Python Programming (Udemy) На русском: Python с нуля Python для начинающих Python с нуля от А до Я Программирование на Python (Stepik) Python: основы и применение (Stepik) Питонтьютор (онлайн-тренажер) Python в «Библиотеке Программиста» подписывайтесь на тег Python, чтобы получать уведомления о новых постах на сайте; телеграм-канал «Библиотека питониста»; телеграм-канал для поиска работы «Python jobs — вакансии по питону, Django, Flask». *** Мы кратко познакомились с основными понятиями Python: команды, функции, операторы и типы данных. У этого языка низкий порог вхождения, простой синтаксис, поэтому вероятность освоить его человеку, который никогда не занимался программированием – высокая (по моей субъективной оценке – 90%). *** На Python создают прикладные приложения, пишут тесты и бэкенд веб-приложений, автоматизируют задачи в системном администрировании, используют в нейронных сетях и анализе больших данных. Язык программирования можно изучить самостоятельно, так как много платных и бесплатных онлайн-тренажеров. Фундаментальным знаниям уделяют внимание меньше. Поэтому мы (Proglib + МГУ) запускаем онлайн-курс по математике в Data Science в формате прямого эфира с преподавателем. Пять месяцев, два раза в неделю по два академических часа. Старт курса 20 февраля. Ниже лекция преподавателя МГУ по комбинаторике для начинающих с примерами: Лекция по комбинаторике для начинающих Подробнее о курсе
Прочитав статью, вы познакомитесь с особенностями языка Python, основными типами данных, условными операторы, циклами и работой с файлами. В заключении приведена подборка литературы и каналов на YouTube, а также бесплатных курсов.
***
Python в Ubuntu предустановлен. Чтобы узнать версию Python, откроем терминал комбинацией клавиш Ctrl + Alt + T и введем следующую команду:
Ctrl + Alt + T
python3 --version
Для Windows нужно скачать Python с официального сайта и установить как обычную программу.
Для работы нам понадобится редактор кода (IDE). Самые популярные:
Для установки Atom в Ubuntu введем в терминале:
wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list' sudo apt-get update sudo apt-get install atom
Рис. 1. Страница установки Atom для Windows
Для Windows скачаем Atom с официального сайта. После установки редактора кода установим для него плагин run-python-simply (есть и другие) для запуска Python. Два способа установки:
run-python-simply
Install
File
Settings
Создадим проект, в котором будем хранить код и другие файлы. Для этого перейдем во вкладку File → Add Project Folder и выберем любую свободную папку.
Add Project Folder
Если под рукой только смартфон, воспользуемся бесплатными онлайн-редакторами кода:
Python использует отступы, чтобы обозначить начало блока кода:
if 3 > 1: print("Три больше единицы") # Три больше единицы
Python выдаст ошибку, если вы пропустите отступ:
if 3 > 1: print("Три больше единицы") # Ошибка: IndentationError: expected an indented block
Рекомендуется использовать отступ, равный четырем пробелам.
Создадим файл example.py, где example – имя файла, .py – расширение, которое означает, что программа написана на языке программирования Python.
example.py
example
.py
Напишем в example.py следующую строчку:
print('Hello, World') # Hello, World
У нас установлен плагин run-python-simply и запустить код мы можем двумя способами:
Packages
Run Python Simply
Toggle F5
F5
После запуска кода появится окно терминала с результатом или ошибкой.
В нашем случае в терминале отобразится фраза Hello, World.
Hello, World
Здесь:
print() – функция, выводящая на экран фразу Hello, World.
print()
'Hello, World' – строка (заключена в кавычки).
'Hello, World'
Также можно использовать переменную word, которой присвоим значение 'Hello, World':
word
word = 'Hello, World' print(word) # Hello, World
Python – язык с динамической типизацией, то есть нам не нужно заранее объявлять тип переменной, является ли она строкой, числом и так далее.
О функциях поговорим в конце статьи, сейчас разберемся со строками и другими типами данных.
Строка – упорядоченная последовательность символов, заключенная в одинарные или двойные кавычки:
"Cat and dog" # пример записи строки 'Cat and giraffe'
Изменение регистра первого символа к верхнему регистру с помощью метода title():
title()
string = 'cat' print(string.title()) # Cat
Преобразование всех символов к верхнему и нижнему регистру методами upper() и lower() соответственно:
upper()
lower()
string = 'cat' print(string.upper()) # CAT string = 'DOG' print(string.lower()) # dog
Объединение строк (конкатенация). Строки объединяются с помощью знака сложения +:
+
first_animal = 'cat' second_animal = 'dog' all_animals = first_animal + ',' + ' ' + second_animal print(all_animals) # cat, dog
Повторение строки:
animal = 'Cat' print(animal * 5) # CatCatCatCatCat
Вычисление длины строки. Чтобы определить длину строки воспользуемся встроенной функцией len() (сокращённое от англ. length):
len()
animal = 'Cat' print(len(animal)) # 3
Рис. 2. Доступ к элементу строки по индексу в Python
Индексация начинается с 0. В нашем случае символ C имеет индекс 0, a – 1, t – 2.
0
C
a
1
t
2
Для получения элемента по индексу воспользуемся квадратными скобками []:
[]
animal = 'Cat' print(animal[0]) # C
В предыдущем примере по индексу мы получали один элемент строки. По срезу можно получить несколько элементов:
animal = 'CatDog' print(animal[1:3]) # at print(animal[0:6:2]) # Cto – выводится нулевой элемент и каждый второй после него
Как формируется срез:
list_name[start:stop:step], где start – начало среза, stop – конец среза, step – шаг среза.
list_name[start:stop:step]
start
stop
step
Получим с помощью среза последний элемент:
animal = 'CatDog' print(animal[-1]) # g
Все элементы, кроме первого:
animal = 'CatDog' print(animal[1:]) # atDog
Все элементы, кроме последнего:
animal = 'CatDog' print(animal[0:5]) # CatDo print(animal[:5]) # CatDo print(animal[:-1]) # CatDo
Создание копии строки через срез:
animal = 'CatDog' animal_copy = animal[:] print(animal_copy) # CatDog
Методом replace() заменим символы в строке:
replace()
animal = 'CatDog' print(animal.replace('Cat', 'Dog')) # DogDog
В скобках метода replace() указана дополнительная информация: Cat – элемент, подлежащий замене на элемент Dog.
Cat
Dog
Для удаление пробелов слева и справа применяется метод strip(), только справа – rstrip(), только слева – lstrip():
strip()
rstrip()
lstrip()
animal = ' CatDog ' print(animal.strip()) # CatDog print(animal.rstrip()) # CatDog – здесь остался пробел слева print(animal.lstrip()) # CatDog – здесь остался пробел справа
Преобразование строки в список индивидуальных символов:
animal = 'CatDog ' print(list(animal)) # ['C', 'a', 't', 'D', 'o', 'g', ' ']
Целые числа (int) не имеют дробной части:
print(25 + 0 - 24) # 1
Число с плавающей точкой (float) имеет дробную часть:
print(2.8 + 4.1) # 6.8999999999999995
Операции над числами:
print(2 + 3) # Сложение: 5 print(5 - 4) # Вычитание: 1 print(5 * 5) # Умножение: 25 print(4 / 2) # Деление: 2.0 print(4 ** 4) # Возведение в степень: 256
Порядок операций. Выражение в скобках будет просчитываться в первую очередь:
print(3*4 + 5) # 17 print(3*(4 + 5)) # 27
Чтобы преобразовать число с плавающей точкой в целое воспользуемся функцией int(), а для обратного преобразования – функцией float():
int()
float()
print(int(5.156)) # 5 print(float(4)) # 4.0
Список (англ. list) – набор упорядоченных элементов произвольных типов. Списки задаются квадратными скобками [] и содержат объекты любого типа: строки, числа, другие списки и так далее. Элементы можно менять по индексу.
Создадим список animals и выведем его на экран:
animals
animals = ['cat', 'dog', 'giraffe'] print(animals) # ['cat', 'dog', 'giraffe']
Обратимся к второму элементу списка:
animals = ['cat', 'dog', 'giraffe'] print(animals[1]) # dog
Чтобы изменить элемент списка, обратимся к нему по индексу и присвоим новое значение:
animals = ['cat', 'dog', 'giraffe'] print(animals) # ['cat', 'dog', 'giraffe'] animals[2] = 'orangutan' # меняем третий элемент print(animals) # ['cat', 'dog', 'orangutan'] animals[2] = ['orangutan'] print(animals) # ['cat', 'dog', ['orangutan']] – список внутри списка, вложенный список
Для добавления элемента в конец списка воспользуемся методом append():
append()
animals = ['cat', 'dog', 'giraffe'] animals.append('tyrannosaurus') print(animals) # ['cat', 'dog', 'giraffe', 'tyrannosaurus']
Метод insert() вставляет элемент по индексу:
insert()
animals = ['cat', 'dog', 'giraffe'] animals.insert(1, 43) print(animals) # ['cat', 43, 'dog', 'giraffe']
Число 43 вставляется на место с индексом 1, остальные элементы сдвигаются вправо. Первый элемент остается на прежнем месте.
43
Для удаления элемента из списка, обратимся к элементу по индексу, используя команду del:
del
animals = ['cat', 'dog', 'giraffe'] del animals[2] print(animals) # ['cat', 'dog']
Другой способ удаления – метод pop():
pop()
animals = ['cat', 'dog', 'giraffe'] animals.pop(2) print(animals) # ['cat', 'dog']
В двух предыдущих примерах мы удаляли элемент по его индексу. Теперь удалим элемент по его значению с помощью метода remove():
remove()
animals = ['cat', 'dog', 'giraffe'] animals.remove('dog') print(animals) # ['cat', 'giraffe']
Чтобы упорядочить список по алфавиту используем метод sort():
sort()
animals = ['giraffe', 'cat', 'dog'] animals.sort() print(animals) # ['cat', 'dog', 'giraffe']
Список в обратном порядке выводится методом reverse():
reverse()
animals = ['cat', 'dog', 'giraffe'] animals.reverse() print(animals) # [giraffe', 'dog', 'cat']
Для определения длины списка воспользуемся функцией len():
animals = ['cat', 'dog', 'giraffe'] print(len(animals)) # 3
Рис. 3. Доступ к элементам кортежа по индексу в Python
Кортеж (англ. tuple), как и список хранит элементы, только в отличие от списка, элементы кортежа не изменяются. Кортеж задается круглыми скобками ():
()
animals = ('cat', 'dog', 'giraffe') print(animals[0]) # Получение элемента кортежа с индексом 0: cat
Одноэлементный кортеж задается с помощью запятой после первого элемента. Без запятой получим список. Чтобы узнать какой тип данных мы получаем на выходе воспользуемся функцией type():
type()
animals = ('cat',) print(animals) # ('cat',) print(type(animals)) # <class 'tuple'> – кортеж animals = ('cat') print(animals) # cat print(type(animals)) # <class 'str'> – строка
Конкатенация кортежей:
print(('cat',) + ('dog', 2)) # ('cat', 'dog', 2)
Повторение кортежа:
print(('cat', 'dog', 4) * 2) # ('cat', 'dog', 4, 'cat', 'dog', 4)
Срез кортежа:
animals = ('cat', 'dog', 'giraffe') print(animals[0:1]) # ('cat',) print(animals[0:2]) # ('cat', 'dog')
Чтобы создать список из элементов кортежа применим функцию list():
list()
animals_tuple = ('cat', 'dog', 33) animals_list = list(animals_tuple) print(animals_list) # ['cat', 'dog', 33]
Рис. 4. Устройство словаря в Python
Словарь – неупорядоченная коллекция произвольных элементов, состоящих из пар «ключ-значение». Словарь объявляется через фигурные скобки {}: dictionary = {‘pets‘: ‘cat‘, ‘numbers‘: (1, 2)}, где pets и numbers – ключи, а cat, (1, 2) – значения. Если в списке мы получаем объект по его индексу, то в словаре по ключу.
{}
pets
cat
numbers
(1, 2)
Получим по ключам соответствующие значения из словаря dictionary:
dictionary
dictionary = {'pets': 'cat', 'numbers': (1, 2)} print(dictionary['pets']) # cat print(dictionary['numbers']) # (1, 2) print(dictionary['numbers'][1]) # 2
Чтобы добавить новую пару «ключ-значение» используем следующую запись словарь['новый_ключ'] = новое_значение:
словарь['новый_ключ'] = новое_значение
dictionary = {'pets': 'cat', 'numbers': (1, 2)} dictionary['dinosaur'] = 'tyrannosaurus', 'pterodactylus' print(dictionary) # {'pets': 'cat', 'numbers': (1, 2), 'dinosaur': ('tyrannosaurus', 'pterodactylus')}
Изменение существующего значения похоже на добавление нового значения словарь['существующий_ключ'] = новое_значение:
словарь['существующий_ключ'] = новое_значение
dictionary = {'pets': 'cat', 'numbers': (1, 2)} dictionary['pets'] = 'dog' print(dictionary) # {'pets': 'dog', 'numbers': (1, 2)}
Командой del можно удалить ключ со значением:
dictionary = {'pets': 'cat', 'numbers': (1, 2)} del dictionary['pets'] print(dictionary) # {'numbers': (1, 2)}
Множества – неупорядоченные последовательности не повторяющихся элементов. Множество задается чрез фигурные скобки {}:
animals_and_numbers = {'cat', 'dog', 99, 100} print(animals_and_numbers) # {'cat', 99, 100, 'dog'}
Операции над множествами:
animals_and_numbers = {'cat', 'dog', 99, 100} numbers = {555, 99} animals = {'cat', 'dog'} print(animals_and_numbers.union(numbers)) # {'cat', 99, 100, 'dog', 555} – добавляет в множество animals_and_numbers элементы множества numbers print(animals_and_numbers.intersection(numbers)) # {99} – возвращает множество, являющееся пересечением множеств animals_and_numbers и numbers print(animals_and_numbers.difference(numbers)) # {'cat', 'dog', 100} – Возвращает разность множеств animals_and_numbers и numbers print(animals_and_numbers.issuperset(animals)) # True – Возвращает True, если animals является подмножеством animals_and_numbers.
С помощью функции open() мы создаем файловый объект для работы с файлами. Создадим в папке с python-файлом текстовой файл example.txt, напишем в нем слово test, сохраним и закроем. Следующий код открывает и выводит на экран содержимое текстового файла example.txt:
open()
example.txt
test
with open('example.txt', 'r') as file: for line in file: print(line)
example.txt – путь к файлу и его имя. В нашем случае файл расположен в папке с выполняемой программой.
r – режим работы «только чтение».
r
Попробуем дозаписать числа в конец файла:
numbers = ['0', '1', '2', '3'] with open('example.txt', 'a') as file: for number in numbers: file.write(number + 'n') 0 # в файл запишется последовательность чисел, каждое число с новой строчки 1 2 3
numbers – список чисел.
a – режим записи «в конец текстового файла».
n – перенос на новую строчку.
n
Без переноса строки результат будет следующий:
numbers = ['0', '1', '2', '3'] with open('example.txt', 'a') as file: for number in numbers: file.write(number) 0123 # результат записи без переноса строки
Для ввода данных применяется функция input():
input()
input_word = input('Введите какое-нибудь слово: ') print('Слово: ' + input_word)
Рис. 5. Условный оператор if в Python
Оператор if выполняет код в зависимости от условия. Проверим, если число три меньше пяти, то выведем на экран слово true:
if
true
if 3 < 5: print('true') # true
Попробуем оператор if-else. else переводится как «в другом случае». Когда условие if не выполняется, то идет выполнение кода после else:
if-else
else
if 3 > 5: print('true') else: print('false') # false
elif = else + if – код выполняется, если предыдущее условие ложно, а текущее истинно:
elif
number = 15 if number < 3: print('число меньше трех') elif 4 < number < 10: print('число в промежутке от 4 до 10') elif number > 10: print('число больше 10') # число больше 10
Рис. 6. Цикл while в Python
Напишем цикл, который 5 раз выведет на экран слово hello:
hello
x = 0 while x < 5: print('hello') x += 1 # получаем пять раз слово hello hello hello hello hello hello
while – обозначение цикла.
while
x < 5 – условие, которое записывается после while. Каждый раз после выполнения цикла (после одной итерации) проверяется это условие. Если оно становится ложным, цикл прекращает работу.
x < 5
print('hello') – вывести на экран слово hello.
print('hello')
x += 1 – это сокращенный способ записи x = x + 1. То есть при каждой итерации значение x увеличивается на единицу.
x += 1
x = x + 1
Бесконечный цикл записывается с помощью while True:
while True
while True: print('hello') hello hello hello hello hello …
Рис. 7. Цикл for в Python
Цикл for перебирает элементы последовательности:
for
numbers = ['0', '1', '2', '3'] for i in range(0, len(numbers)): print(numbers[i]) # на экран выводятся числа 0, 1, 2 и 3 0 1 2 3
i – переменная, которая принимает значение из диапазона значений range(0, len(numbers)).
i
range(0, len(numbers))
range(0, len(numbers)) – последовательность чисел от 0 до значения длины списка numbers.
print(numbers[i]) – тело цикла, выводит на экран i-й элемент списка numbers.
print(numbers[i])
Второй вариант записи:
numbers = ['0', '1', '2', '3'] for number in numbers: print(number) # идентичный результат 0 1 2 3
Функция выполняет одну конкретную задачу и имеет имя. Напишем функцию greeting(), которая выводит на экран приветствие:
greeting()
def greeting(): # объявление функции print('hello') # тело функции greeting() # запуск функции
def – создает объект функции и присваивает ей имя greeting. В скобках можно указать аргументы (см. следующий пример). В нашем случае аргументов нет и скобки пустые.
def
greeting
print('hello') – выводит на экран слово hello.
Напишем функцию summation(), которая складывает два числа:
summation()
def summation (a, b): return print(a + b) summation(3, 8) # 11
a и b – аргументы функции.
b
return возвращает значение функции.
return
Модуль – файл, содержащий функции, классы и данные, которые можно использовать в других программах.
from math import trunc print(trunc(3.9)) # 3
from math import trunc – из встроенного в Python модуля math импортируем функцию trunc, которая отбрасывает дробную часть числа.
from math import trunc
math
trunc
Это был импорт отдельной функции. Теперь импортируем весь модуль и обратимся к функции через модуль.имя_функции():
модуль.имя_функции()
import math print(math.trunc(3.9)) # 3
Комментирование кода помогает объяснить логику работы программы. Однострочный комментарий начинается с хеш-символа #:
#
a = 45 # комментарий к коду
Многострочный комментарий заключается с обеих сторон в три кавычки:
""" a = 45 b = 99 """
Больше шпаргалок в нашей группе ВКонтакте.
Бесплатные курсы на русском и английском языках в YouTube и на образовательных ресурсах:
На английском:
На русском:
Мы кратко познакомились с основными понятиями Python: команды, функции, операторы и типы данных. У этого языка низкий порог вхождения, простой синтаксис, поэтому вероятность освоить его человеку, который никогда не занимался программированием – высокая (по моей субъективной оценке – 90%).
На Python создают прикладные приложения, пишут тесты и бэкенд веб-приложений, автоматизируют задачи в системном администрировании, используют в нейронных сетях и анализе больших данных. Язык программирования можно изучить самостоятельно, так как много платных и бесплатных онлайн-тренажеров. Фундаментальным знаниям уделяют внимание меньше. Поэтому мы (Proglib + МГУ) запускаем онлайн-курс по математике в Data Science в формате прямого эфира с преподавателем. Пять месяцев, два раза в неделю по два академических часа. Старт курса 20 февраля. Ниже лекция преподавателя МГУ по комбинаторике для начинающих с примерами:
Лекция по комбинаторике для начинающих Подробнее о курсе
Ваш адрес email не будет опубликован. Обязательные поля помечены *
Сохранить моё имя, email и адрес сайта в этом браузере для последующих моих комментариев.
Δ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.