Что такое python: чем он хорош, где пригодится и как его выучить

Решение задач

1. Создайте список из 10 четных чисел и выведите его с помощью цикла for

2. Создайте список из 5 элементов. Сделайте срез от второго индекса до четвертого

3. Создайте пустой список и добавьте в него 10 случайных чисел и выведите их. В данной задаче нужно использовать функцию randint.

from random import randint

n = randint(1, 10) # Случайное число от 1 до 10

4. Удалите все элементы из списка, созданного в задании 3

5. Создайте список из введенной пользователем строки и удалите из него символы ‘a’, ‘e’, ‘o’

6. Даны два списка, удалите все элементы первого списка из второго

a =

b =
# Вывод
>>>

7. Создайте список из случайных чисел и найдите наибольший элемент в нем.

8. Найдите наименьший элемент в списке из задания 7

9. Найдите сумму элементов списка из задания 7

10.Найдите среднее арифметическое элементов списка из задания 7

1.6 Отступы

Функции в Python не имеют ни явных указаний и , ни фигурных скобок, которые бы показывали, где код функции начинается, а где заканчивается. Разделители – только двоеточие (:) и отступы самого кода.

Строка 1. Блоки кода определяются по их отступам. Под «блоками кода» я подразумеваю функции, блоки , циклы и и т. д. Увеличение отступа начинает блок, а уменьшение – заканчивает. Ни скобок, ни ключевых слов

Это означает, что важное значение имеют пробелы, и их количество тоже. В этом примере код функции имеет отступ в четыре пробела

Здесь не обязательно должно быть именно четыре пробела, просто их число должно быть постоянным. Первая встретившаяся строчка без отступа будет означать конец функции.

Строка 2. За оператором должен следовать блок кода. Если в результате вычисления условного выражения оно окажется истинным, то выполнится блок, выделенный отступом, в противном случае произойдёт переход к блоку (если он есть)
Обратите внимание, что нет скобок вокруг выражения.

Строка 3. Эта строка находится внутри блока
Оператор вызывает исключение (типа ), но только если

После того, как вы переборете внутренние противоречия и проведёте пару ехидных аналогий с Фортраном, вы подружитесь с отступами и начнёте видеть их преимущества. Одно из главных преимуществ – то, что все программы на Python выглядят примерно одинаково, поскольку отступы – требование языка, а не вопрос стиля. Благодаря этому становится проще читать и понимать код на Python, написанный другими людьми.

В Python используются символы возврата каретки для разделения операторов, а также двоеточие и отступы для разделения блоков кода. В C++ и Java используются точки с запятой для разделения операторов и фигурные скобки для блоков кода.

Операторы:

Самое первое и самое главное что нужно знать, так это операторы, для сравнения и логические.

Python 3 операторы сравнения:

Операторов сравнения в Python 3 не так много, как в других языках программирования, так как нет строгого сравнивания, том уже по умолчанию строгое сравнение, вот они все:

Python

1
2
3
4
5
6
7
8
9
10

a=10;

b=3;

c=a>b# a больше b, c будет равен true

c=a<b# a меньше b, c будет равен false

c=a>=b# a больше или равно b, c будет равен true

c=a<=b# a меньше или равно b, c будет равен false

c=a==b# a равно b, c будет равен false

c=a!=b# a не равно b, c будет равен true

c=a<>b# аналог !=

Как видите тут всё по стандарту, единственное есть ещё оператор который полный аналог оператора (Не равно), в остальном тут всё понятно.

Python 3 логические операторы:

Логические операторы в Python 3 пишутся словами, а не как в других языках программирования:

Python

1
2
3
4
5
6

a=True

b=False

c=aandb# Логическое и, возвращает True, если два значение равно True, c равно False

c=aorb# Логическое или, возвращает True, если хотя бы одно значение равно True, c равно True

c=nota# Логическое не, просто отзеркаливает значение, c равно False

Тоже не чего сложного тут нет, всё понятно и просто, я думаю вы поняли, единенное оператор возвращает противоположное значение, то есть если значение логического выражения равно , то используя not на нём, оно будет равен .

Методы и функции списков

Метод — это то же самое, что и функция, за исключением того, что он «вызывается» для значения. Например, если значение списка было сохранено в spam, вы бы вызвали метод списка index() (который я объясню далее) в этом списке следующим образом: spam.index(‘hello’). Часть метода идет после значения, разделенного точкой. Каждый тип данных имеет свой собственный набор методов. Например, тип data имеет несколько полезных методов для поиска, добавления, удаления и других манипуляций со значениями в списке.

Поиск значения в списке с помощью метода index ()

У значений списка есть метод index(), которому можно передать значение, и, если это значение существует в списке, возвращается индекс значения. Если значение отсутствует в списке, то Python выдаст ошибку ValueError.

При наличии дубликатов значения в списке возвращается индекс его первого появления

Обратите внимание, что index() возвращает 1, а не 3

Добавление значений с помощью методов append() и insert()

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

Метод append() добавляет аргумент в конец списка. Метод insert() может вставить значение по любому индексу в списке. Первый аргумент для insert() — это индекс для нового значения, а второй аргумент — это новое значение, которое нужно вставить.

Удаление значений из списка с помощью метода remove ()

Метод remove() передает значение, которое будет удалено из списка, к которому он обращен.

Если значение появляется в списке несколько раз, будет удален только первый экземпляр значения.Оператор del хорошо использовать, когда вы знаете индекс значения, которое хотите удалить из списка. Метод remove() хорош, когда вы знаете значение, которое хотите удалить из списка.

Сортировка с помощью метода sort()

Списки числовых значений или списки строк могут быть отсортированы с помощью метода sort().

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

Есть три вещи, которые вы должны знать о методе sort(). Во-первых, метод sort() сортирует список по месту; поэтому не пытайтесь получить возвращаемое значение, написав такой код, как spam = spam.sort().Во-вторых, вы не можете сортировать списки, в которых есть как числовые, так и строковые значения, поскольку Python не знает, как сравнивать эти значения.

В-третьих, sort() использует «ASCII порядок», а не фактический алфавитный порядок для сортировки строк. Это означает, что заглавные буквы идут перед строчными. Поэтому строчная буква a сортируется так, чтобы она шла после заглавной буквы Z.

Если вам нужно отсортировать значения в обычном алфавитном порядке, передайте str.lower для ключевого аргумента в вызове метода sort().

Это заставляет функцию sort() обрабатывать все элементы в списке, как если бы они были строчными, без фактического изменения значений в списке.

Строки и кортежи

Списки не являются единственными типами данных, которые представляют упорядоченные последовательности значений. Например, строки и списки на самом деле похожи, если считать строку «list» однотекстовых символов. Многое из того, что вы можете сделать со списками, также может быть сделано со строками: индексы; срезы; и используя их с for, с len() и с операторами in и not in.

Изменяемые и неизменяемые типы

Списки и строки важны по-разному. Значение списка является изменяемым типом данных: оно может иметь значения, добавленные, удаленные или измененные. Однако строка является неизменной: ее нельзя изменить. Попытка переназначить один символ в строке приводит к ошибке TypeError.Правильный способ сделать строку изменяемой — это использовать срез и конкатенацию для построения новой строки путем копирования из частей старой строки.

Мы использовали  и  для обозначения символов, которые мы не хотим заменять

Обратите внимание, что исходная строка «Кошку звать Муся» не изменяется, потому что строки являются неизменяемыми. Хотя значение списка является изменяемым, вторая строка в следующем коде не изменяет список в eggs

Значение списка в eggs здесь не изменяется; новое и другое значение списка () перезаписывает старое значение списка (). Если вы хотите изменить исходный список в eggs, чтобы он содержал , вам нужно будет сделать что-то вроде этого:

1.4 Путь поиска оператора import

Перед тем, как идти дальше, я хочу вкратце рассказать о путях поиска библиотек. Когда вы пытаетесь импортировать модуль (с помощью оператора ), Python ищет его в нескольких местах. В частности, он ищет во всех директориях, перечисленных в . Это просто список, который можно легко просматривать и изменять при помощи стандартных списочных методов. (Вы узнаете больше о списках в главе «Встроенные типы данных».)

  1. Строка 1. Импортирование модуля делает доступными все его функции и атрибуты.
  2. Строка 2. – список имён директорий, определяющий текущий путь поиска. (Ваш будет выглядеть иначе, в зависимости от вашей операционной системы, от используемой версии Python и от того, куда он был установлен.) Python будет искать в этих директориях (в заданном порядке) файл с расширением «.py», имя которого совпадает с тем, что вы пытаетесь импортировать.
  3. Строка 10. Вообще-то я вас обманул; истинное положение дел немного сложнее, потому что не все модули лежат в файлах с расширением «.py». Некоторые из них, как, например, модуль , являются встроенными; они впаяны в сам Python. Встроенные модули ведут себя точно так же, как обычные, но их исходный код недоступен, потому что они не были написаны на Python! (Модуль написан на Си.)
  4. Строка 12. Можно добавить новую директорию в путь поиска, добавив имя директории в список , во время выполнения Python, и тогда Python будет просматривать её наравне с остальными, как только вы попытаетесь импортировать модуль. Новый путь поиска будет действителен в течение всего сеанса работы Python.
  5. Строка 13. Выполнив команду , вы вставили новую директорию на первое место в список , и, следовательно, в начало пути поиска модулей. Почти всегда, именно это вам и нужно. В случае конфликта имён (например, если Python поставляется со 2-й версией некоторой библиотеки, а вы хотите использовать версию 3) этот приём гарантирует, что будут найдены и использованы ваши модули, а не те, которые идут в комплекте с Python.

Списки

Список – это изменяемая, упорядоченная последовательность элементов. Значения, которые находятся в списке, называются элементами. Подобно тому, как строки определяются кавычками, списки определяются квадратными скобками ([]).

Список целых чисел выглядит так:

Список чисел с плавающей точкой имеет такой вид:

Список строк:

Для примера можно определить список sea_creatures:

Чтобы вывести этот список, введите:

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

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

Экранирование последовательности

Допустим, нам нужно записать текст в виде — They said, «Hello what’s going on?»- данное утверждение может быть записано в одинарных или двойных кавычках, но оно вызовет , так как содержит как одинарные, так и двойные кавычки.

Рассмотрим следующий пример, чтобы понять реальное использование операторов Python.

Вывод:

Мы можем использовать тройные кавычки для решения этой задачи, но Python предоставляет возможность экранировать нашу последовательнсть символов.

Символ обратной косой черты () обозначает escape последовательность. За обратной косой чертой может следовать специальный символ, который интерпретируется по-разному. Одинарные кавычки внутри строки должны быть экранированы. Мы можем применить то же самое, что и в случае с двойными кавычками.

Вывод:

Ниже приведен список управляющих последовательностей для экранирования:

Escape последовательность Описание
Игнорирует новую строку.
Обратный слэш
Одинарные кавычки
Двойные кавычки
ASCII гудок
ASCII Backspace(BS)
ASCII Formfeed (смещение к началу след. страницы)
ASCII Linefeed (перевод на след. строку)
ASCII Carriege Return(CR) (перемещение курсора к левому краю поля)
ASCII горизонтальная табуляция
ASCII вертикальная табуляция
Символ с восьмеричным значением
Символ с шестнадцатеричным значением.

Вот простой пример использования escape-последовательности.

Вывод:

Мы можем игнорировать управляющую последовательность из заданной строки, используя необработанную строку. Для этого перед строкой нужно написать или . Рассмотрим следующий пример.

Вывод:

История появления

Кто создал Python

Питон был задуман в еще в далеких 80 — х программистом из Голландии Гвидо ван Россумом. Создавать его Гвидо начал в 1989 году как замену языку ABC, предназначенного для обучения студентов программированию. Он создавался на энтузиазме, без бюджета и поддержки.

Создатель языка Python Гвидо ван Россум

Работал Гвидо ван Россум по вечерам и в выходные дни. В результате за несколько недель был написан интерпретатор Python. Многие идеи были взяты из других языков программирования таких как C и ABC. В итоге из этого проекта вырос Python, входящий в тройку самых популярных языков мира.

Почему так назвали

Гвидо ван Россум был поклонником комедийного телешоу «Летающий цирк Монти Пайтона» и в честь этого английского сериала, популярного в 1970 – х годах дал название своему языку программирования Python. Этот сериал принес еще одно очень популярное сегодня слово «спам». Оно обозначает навязчивую рекламу, с которой знаком каждый.

Этапы развития Python

Публикация исходного текста Python произошла в 1991 году. Язык был относительно несложным. В нем было мало функций и интерпретатор «interpreter» тоже был небольшого размера.

Всего было 3 версии питона:

  1. Первая версия Python 1.0 увидела свет в январе 1994 года и развитие ее релизов продолжалось до 2000 года. Последним релизом стал Python 1.6.
  2. С 2000 по 2008 год развивалась его вторая версия. В это время проект был помещен на SourseForge. Это платформа, на которой расположены проекты с открытым кодом и был дан импульс к развитию языка сообществом программистов.
  3. В 2008 году вышла третья версия, которая развивается и в настоящее время. Поддержка второй версии постепенно прекращается и все большее число программистов пользуется третьей версией Python. На момент выхода статьи последней версией питона является Python 3.9.0. Третья версия языка осуществляет поддержку второй не полностью.

Логические значения

Между прочим, ты только что познакомилась с новым типом объектов в Python. Он называется Boolean (логический) — и это, наверное, самый простой тип из всех.

Существует только два логических объекта в Python:

  • True (Истина),
  • False (Ложь).

Чтобы Python понимал тебя, ты всегда должна писать True с заглавной буквы (остальные прописные). true, TRUE, tRUE не будут восприниматься — только True. (Та же логика применима к False, само собой.)

Ты можешь присваивать переменным логические значения! Смотри сюда:

command-line

Или так:

command-line

Попрактикуйся с логическими значениями на примере этих выражений:

Поздравляем! Логические значения — одна из самых классных фишек программирования, и ты только что научилась ими пользоваться!

Сохраняй!

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

  • закрыть интерактивную консоль Python;
  • открыть наш текстовый редактор;
  • сохранить код в новом файле;
  • запустить его!

Чтобы закрыть интерактивную консоль Python, просто набери функцию :

command-line

Это вернёт тебя в командную строку.

В главе Текстовый редактор мы выбрали себе редактор. Нам нужно открыть его сейчас и записать следующий код в новый файл (или, если ты используешь Chromebook, создай новый файл в облачной IDE и открой файл, который будет во встроенном редакторе кода):

editor

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

Теперь нам нужно сохранить файл с кодом и дать ему подходящее имя. Давай назовем его python_intro.py и сохраним на рабочий стол

Мы можем назвать файл как хотим, но важно, чтобы название заканчивалось на .py. Расширение .py говорит операционной системе, что это исполняемый файл python, и Python может его запустить

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

OS X

Для Mac команда будет выглядеть так:

command-line

Linux

Для Linux (слово «Desktop» может быть переведено на твой язык, например «Рабочий стол»):

command-line

Командная строка Windows

В командной строке Windows команда будет такой:

command-line

Windows Powershell

В Windows Powershell команда будет такой:

command-line

Если возникли проблемы — просто обратись за помощью.

Теперь используй Python, чтобы запустить код в файле:

command-line

Примечание: Windows не распознаёт команду ‘python3’. Вместо этого для запуска файла используй команду ‘python’:

command-line

Отлично! Ты только что запустила свою первую программу, код которой был сохранен в файле. Чувствуешь воодушевление?

Можно передвигаться дальше к такому незаменимому в программировании инструменту как:

Твоя собственная функция!

Помнишь функции, такие как , которые можно использовать в Python? Тогда у нас есть хорошая новость — сейчас ты научишься писать свои собственные функции!

Функция — это последовательность инструкций, которые должен выполнить Python. Каждая функция в Python начинается с ключевого слова , имеет свое имя и параметры. Давай начнем с простого примера. Замени код в python_intro.py на следующий:

python_intro.py

Отлично, наша первая функция готова!

Ты можешь задаться вопросом, почему мы написали имя функции в конце файла. Причина в том, что Python читает и исполняет код из файла сверху вниз. Поэтому для использования нашей функции мы должны вызвать её в конце файла.

Давай запустим и посмотрим, что произойдет:

command-line

Примечание: если это не сработало, не поддавайся панике! Вывод командной строки поможет тебе понять, почему так произошло:

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

Давай напишем нашу первую функцию с параметрами. Мы будем использовать предыдущий пример — функцию, которая пишет ‘hi’ и имя пользователя:

python_intro.py

Как ты можешь заметить, мы передали нашей функции параметр :

python_intro.py

Помни: функция расположена внутри блока оператора с отступом в четыре пробела. Это потому, что она запускается тогда, когда выполняется условие. Давай посмотрим, как это работает:

command-line

Упс, ошибка. К счастью, Python выдает довольно подробное сообщение об ошибке. Оно говорит нам, что функция (которую мы определили) имеет один обязательный аргумент (), и мы забыли передать его при вызове функции. Давай исправим это в конце файла:

python_intro.py

И запустим ещё раз:

command-line

А если мы поменяем имя?

python_intro.py

И повторим:

command-line

Теперь, как ты думаешь, что произойдет, если ты наберешь другое имя? (Не Ola или Sonja) Попробуй сама и проверь, была ли ты права. Результат должен быть таким:

command-line

Шикарно, верно? Так тебе не придется повторяться каждый раз, когда ты захочешь изменить имя. И это именно та причина, для которой нам и нужны функции — ты никогда не захочешь повторять свой код!

Давай попробуем что-то похитрее — существует немало имён, и писать условие для каждого будет тяжело, правда?

python_intro.py

Давай выполним этот код:

command-line

Поздравляем! Ты только что научилась писать свои собственные функции :)

*args и **kwargs

Прежде чем завершить, поговорим про еще одну важную тему, а именно про так называемые *args (сокращение от arguments) и **kwargs (keyword arguments).

Они позволяют передавать функции различное количество позиционных (*args) или именованных (**kwargs) аргументов.

Рассмотрим на примере. Начнем с *args.

*args

Предположим, что у нас есть простая функция, которая принимает два числа и считает среднее арифметическое.

1
2
3
4
5
6

# объявим функцию

defmean(a,b)

return(a+b)2

 
# и передадим ей числа 1 и 2

mean(1,2)

1 1.5

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

1
2
3
4
5
6
7
8
9
10
11
12

# объявим функцию, которой нужно передать список

defmean(list_)

# зададим переменную для суммы,

total=

# в цикле сложим все числа из списка

foriinlist_

total+=i

# и разделим на количество элементов

returntotallen(list_)

1
2
3
4
5

# создадим список

list_=1,2,3,4

 
# и передадим его в новую функцию

mean(list_)

1 2.5

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

1 mean(1,2)

*args позволяет передавать функции произвольное количество отдельных чисел.

1
2
3
4
5
6

# объявим функцию с *args

defmean(*nums)

total=

foriinnums

total+=i

returntotallen(nums)

1 mean(1,2,3,4)
1 2.5

Как вы видите, главным элементом здесь является оператор распаковки * (unpacking operator). Он принимает все передаваемые в функцию числа и формирует из них кортеж.

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

Если мы по какой-то причине захотим передать функции список, мы можем это сделать.

1
2

# передадим в функцию список

mean(*list_)

1 2.5

В этом случае мы передаем название списка со звездочкой *.

Для того чтобы продемонстрировать преобразование чисел в кортеж, напишем вот такую несложную функцию.

1
2

deftest_type(*nums)

print(nums,type(nums))

1 test_type(1,2,3,4)
1 (1, 2, 3, 4) <class ‘tuple’>

**kwargs

При использовании **kwargs происходит почти то же самое за тем исключением, что мы распаковываем именованные, а не позиционные аргументы. И распаковываем их в словарь, а не в список. Сразу посмотрим на примере.

1
2

deff(**kwargs)

returnkwargs.items()

1
2
3

# оператор ** примет произвольное количество именованных аргументов
# и внутри функции сформирует из них словарь

f(a=1,b=2)

1 dict_items()

Приведем более сложный пример. Напишем функцию, которая на вход примет произвольное количество чисел (позиционный аргумент), преобразует в кортеж (*args) и рассчитает (mean) и (standard deviation).

Для каждой из метрик мы дополнительно создадим именованный параметр, который определит выводить эту метрику или нет. Параметры мы передадим через **kwargs. Внутри функции из них будет сформирован словарь.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# nums функция преобразует в кортеж, params — в словарь

defsimple_stats(*nums,**params)

# если ключ ‘mean’ есть в словаре params и его значение == True

if’mean’inparams andparams’mean’==True

# рассчитаем среднее арифметическое кортежа nums и округлим

# \t — это символ табуляции

print(f’mean: \t{np.round(np.mean(nums), 3)}’)

# если ключ ‘std’ есть в словаре params и его значение == True

if’std’inparams andparams’std’==True

# рассчитаем СКО кортежа nums и округлим

print(f’std: \t{np.round(np.std(nums), 3)}’)

Вызовем функцию simple_stats() и передадим ей числа и именованные аргументы.

1 simple_stats(5,10,15,20,mean=True,std=True)

1
2

mean: 12.5
std: 5.59

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

1 simple_stats(5,10,15,20,mean=True,std=False)
1 mean: 12.5

Для того чтобы передать параметры списком и словарем, нам нужно использовать операторы распаковки
* и
** соответственно.

1
2
3
4

list_=5,10,15,20

settings={‘mean’True,’std’True}

simple_stats(*list_,**settings)

1
2

mean: 12.5
std: 5.59

Количество именованных аргументов в **kwargs может быть любым. Ничто не мешает нам добавить еще один параметр.

1
2

# добавим параметр median

simple_stats(5,10,15,20,mean=True,std=True,median=True)

1
2

mean: 12.5
std: 5.59

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

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

Операторы сравнения Python

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

Рассмотрим существующие операторы сравнения.

Равно (==). Как и говорилось выше, этот оператор выглядит несколько иначе, чем оператор присваивания. Выглядит он, как два математических знака «равно», стоящих вместе. Он проверяет равенство двух операндов, и в случае соблюдения этого критерия возвращает значение «истина».

Не равно (!=). Также отличается от аналогичного арифметического знака в математике. Противоположный по значению оператор. Возвращает истину, если указанный выше критерий не соблюдается. 

Больше, чем (>) и меньше, чем (<). Операторы, аналогичные таковым в математике. 

Больше или равно (>=) и меньше или равно (<=). Аналоги соответствующих операторов в математике с несколько иным описанием.

Приведем сводную таблицу со значениями и примерами использования этих операторов.

1.5 Всё является объектом

Если вы вдруг пропустили, я только что сказал, что функции в Python имеют атрибуты, и эти атрибуты доступны во время выполнения. Функция, как и всё остальное в Python, является объектом.

Запустите интерактивную оболочку Python и повторите за мной:

  1. Строка 1. Первая строка импортирует программу в качестве модуля – фрагмента кода, который можно использовать интерактивно или из другой Python-программы. После того, как модуль был импортирован, можно обращаться ко всем его публичным функциям, классам и атрибутам. Импорт применяется как в модулях, для доступа к функциональности других модулей, так и в интерактивной оболочке Python. Это очень важная идея, и вы ещё не раз встретите её на страницах этой книги.
  2. Строка 2. Когда вы хотите использовать функцию, определённую в импортированном модуле, нужно дописать к её имени название модуля. То есть вы не можете использовать просто , обязательно . Если вы использовали классы в Java, то для вас это должно быть знакомо.
  3. Строка 4. Вместо того, чтобы вызвать функцию (как вы, возможно, ожидали), вы запросили один из её атрибутов – .

Оператор в Python похож на из Perl. После в Python, вы обращаетесь к функциям модуля как ; после в Perl, для обращения к функциям модуля используется имя .

1.5.1 Что такое объект?

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

Но мы так и не получили ответ на главный вопрос: что такое объект? Разные языки программирования определяют «объект» по-разному. В одних считается, что все объекты должны иметь атрибуты и методы. В других, что объекты могут порождать подклассы. В Python определение ещё менее чёткое. Некоторые объекты не имеют ни атрибутов, ни методов, хотя и могли бы их иметь. Не все объекты порождают подклассы. Но всё является объектом в том смысле, что может быть присвоено переменной или передано функции в качестве аргумента.

Возможно, вы встречали термин «объект первого класса» в других книгах о программировании. В Python функции – объекты первого класса. Функцию можно передать в качестве аргумента другой функции. Модули – объекты первого класса. Весь модуль целиком можно передать в качестве аргумента функции. Классы – объекты первого класса, и отдельные их экземпляры – тоже объекты первого класса.

Это очень важно, поэтому я повторю это, на случай если вы пропустили первые несколько раз: всё в Python является объектом. Строки – это объекты

Списки – объекты. Функции – объекты. Классы – объекты. Экземпляры классов – объекты. И даже модули являются объектами.

Циклы

Ну вот и последняя часть. Быстро время пролетело, верно? :)

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

Еще помнишь о списках? Давай создадим список девушек:

python_intro.py

Мы хотим поздороваться с каждой по имени. У нас есть функция , которая этим и занимается, так что давай поместим её в цикл:

python_intro.py

Оператор работает по схожему принципу что и ; в коде после обоих операторов должен быть отступ в четыре пробела.

Ниже полный код, который должен быть у нас в файле:

python_intro.py

И после запуска:

command-line

Как ты можешь заметить, все команды внутри цикла (с отступом от левого края) будут выполняться для каждого элемента списка .

Ты также можешь использовать цикл с числами с помощью функции :

python_intro.py

Что выведет на экран:

command-line

Функция создает список чисел, следующих от первого до второго с заданным шагом (начало, конец и шаг мы передаем функции как параметры; если шаг не указать, как в примере выше, он будет по умолчанию равен 1).

Обрати внимание, что второе число (конец списка) не включается в результат работы функции ( создает список от 1 до 5, не включающий 6). Это потому, что «range» — полуоткрытый диапазон, то есть включает в себя первое значение, но не включает последнее

Для чего предназначен и что можно делать на Python

  • При помощи Python можно создавать сайты на движках Ella, Django CMS и других. Используется, чтобы создавать парсеры для поиска и сбора информации в сети.
  • Создавать программы типа Blender для работы с анимацией и трехмерной графикой, GIMP – редактор изображений для линукса и многое другое.
  • Программировать серверную часть мобильных приложений.
  • Писать различные аналитические приложения и алгоритмы для машинного обучения, искусственного интеллекта и нейронных сетей.
  • С помощью библиотек SciPy, NumPy, Matplotlib проводятся научные исследования и вычисления
  • Автоматизировать работу системных администраторов. На всех серверах с операционной системой Linux Python установлен по умолчанию.
  • Python применялся при написании компьютерных игр таких как World of Tanks, Civilization IV, Battlefield 2.

компьютерная игра World of Tanks

  • В слаботочных системах, системах контроля доступа, для управления банкоматами в сбербанке и во многих других встроенных системах, станках с ЧПУ и прочее;
  • На питоне есть возможность для создания плагинов и скриптов к программам, созданным на других языках программирования. Эти скрипты встраиваются в программы и автоматизируют процесс.

Урок 6. Основные операторы в Python

Давайте разберёмся, что такое операторы в Python. Операторы — это конструкции, которые могут управлять значением операндов.

Рассмотрим выражение 4 + 5 = 9. Здесь 4 и 5 называются операндами, а + называется оператором.

Типы операторов

Язык Python поддерживает следующие типы операторов:

  • Арифметические операторы.
  • Операторы сравнения (отношения).
  • Операторы присваивания.
  • Логические операторы.
  • Побитовые операторы.
  • Операторы членства.
  • Операторы идентификации.

Давайте посмотрим все операторы Python один за другим.

Арифметические операторы

Рассмотрим арифметические операторы в Python. Предположим, что переменная a содержит 10, а переменная b содержит 20, тогда:

Оператор Описание Пример
+ Добавление Добавляет значения по обе стороны от оператора. а + b = 30
— Вычитание Вычитает правый операнд из левого операнда. a — b = -10
* Умножение Умножает значения по обе стороны от оператора. a * b = 200
/ Деление Делит левый операнд на правый операнд. b / a = 2
% Модуль Делит левый операнд на правый операнд и возвращает остаток. b % a = 0
** Степень Выполняет экспоненциальный (степенной) расчет операторов. a ** b = 10 в степени 20
// Деление с остатком — деление операндов, результатом которого является частное, в котором удаляются цифры после десятичной точки. Но если один из операндов отрицателен, результат не учитывается, то есть округляется от нуля (в сторону отрицательной бесконечности). 9 // 2 = 4 и 9.0 // 2.0 = 4.0, -11 // 3 = -4, -11.0 // 3 = -4.0
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: