В этой статье описаны все ключевые моменты языка программирования Python. Моя цель состоит в том, чтобы информация была краткой, актуальной и фокусировалась на наиболее важных темах, которые абсолютно необходимы для понимания.
От вас не ожидается никаких предварительных знаний в области программирования, и вы очень быстро усвоите все необходимые концепции.
1. Знакомство с Python
Что такое Python?
- Интерпретируемый объектно-ориентированный высокоуровневый язык сценариев с динамической типизацией .
- В результате обычно возникают ошибки времени выполнения.
Почему Python?
- Python - самый популярный язык из-за того, что имеет простой синтаксис, ну и конечно же ставший популярный в последнее время Data Science.
- Python - это объектно-ориентированный язык программирования, который также может использоваться для написания функционального кода.
- Для написания программы на Python требуется меньше времени по сравнению с другими языками, такими как C # / Java.
- Существует большое количество пакетов для машинного обучения и аналитики.
- Для поддержки разработчиков Python доступно большое количество сообществ и книг.
- На Python могут быть реализованы почти все типы приложений, от аналитических прогнозов до пользовательского интерфейса.
- Типы переменных объявлять не нужно. Таким образом, быстрее реализовать приложение Python. С другой стороны это и его минус.
Почему не Python?
- Python медленнее, чем C, Java.
- Табуляция несколько усложняет жизнь для новых программистов.
- Python не предлагает расширенных статистических функций, как R.
- Python не подходит для низкоуровневых систем и взаимодействия с оборудованием.
Как работает Python?
Это изображение показывает, как Python работает на наших машинах:
Ключевым моментом здесь является интерпретатор, который отвечает за перевод высокоуровневого языка Python на низкоуровневый машинный язык.
Python работает следующим образом:
- Создается виртуальная машина Python, на которой установлены пакеты (библиотеки). Думайте о виртуальной машине как о контейнере.
- Затем код python записывается в файлы .py.
- CPython компилирует код Python в байт-код. Этот байт-код предназначен для виртуальной машины Python.
- Если вы хотите выполнить байт-код, он будет интерпретирован во время выполнения. Затем код будет переведен из байт-кода в машинный код. Байт-код не зависит от машины, на которой вы запускаете код. Это делает Python машинно-независимым.
Следует отметить, что мы можем написать Python код в одной ОС, скопировать его в другую ОС и просто запустить.
Главный принцип
Так как в Python не используются скобки, то следите за табуляцией. Большинство ошибок новичков происходит как раз из-за нее. Следите за этим.
2. Переменные - типы объектов и область видимости в Python
- В переменных хранится информация, которую можно использовать и / или изменить в вашей программе. Эта информация может быть целым числом, текстом, листом, словарем и т.д.
- Переменные используются для хранения пользовательского ввода, локальных состояний вашей программы и т. Д.
- У переменных есть имя, чтобы на них можно было ссылаться в коде.
- Фундаментальная концепция, которую необходимо понять, заключается в том, что все в Python является объектом.
Python поддерживает числа, строки, кортежи, листы, сэты и словари. Это стандартные типы данных. Я подробно объясню каждый из них.
Объявить и присвоить значение переменной
Чтобы присвоить переменной значение, используйте знак равенства (=)
myFirstVariable = 1
mySecondVariable = 2
myFirstVariable = "Здравствуйте!"
Обратите внимание, как я присвоил целочисленное значение 1, а затем строковое значение «Здравствуйте» той же переменной myFirstVariable.
Это возможно благодаря тому, что типы данных динамически типизируются в python.
Вот почему Python известен как язык программирования с динамической типизацией.
Если вы хотите присвоить одно и то же значение более чем одной переменной, вы можете использовать следующий вид присвоения:
myFirstVariable = mySecondVariable = 1
Числа (numbers) в Python
- Поддерживаются целые числа, десятичные дроби, числа с плавающей запятой.
value = 1 # integer
value = 1.2 # float с плавающей точкой
Также поддерживаются длинные числа. У них есть суффикс L, например 9999999999999L.
Строки (string) в Python
- Текстовая информация. Строки представляют собой последовательность букв.
- Строка - это массив символов
- Строковое значение заключено в кавычки: одинарные, двойные или тройные кавычки.
name = 'farhad'
name = "farhad"
name = "" "farhad" ""
Когда строковым переменным присваивается новое значение, то внутри Python создает новый объект для хранения значения.
Поэтому создается ссылка / указатель на объект. Затем этот указатель присваивается переменной, и в результате переменную можно использовать.
Мы также можем присвоить одну переменную другой переменной. Все, что он делает, это то, что создается новый указатель, указывающий на тот же объект:
a = 1 # создается новый объект и там хранится 1, создается новый указатель, указатель соединяет a с 1
b = a # новый объект не создается, создается новый указатель, который соединяет b с 1
Словари (dictionaries)
Словарь - это неупорядоченная, изменяемая и индексируемая коллекция данных. В Python словари записываются в фигурные скобки, у них есть ключи и значения.
thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
print(thisdict)
Что бы получить доступ к определенному элементу, мы должны указать его ключ, например:
thisdict['brand'] выведит нам 'Ford'
Кортежи (Tuples)
Кортеж - это упорядоченная и неизменяемая коллекция . В Python кортежи записываются в круглые скобки.
thistuple = ("apple", "banana", "cherry")
print(thistuple)
Листы, массивы, списки (Lists)
Лист - это упорядоченная и изменяемая коллекция. В Python списки пишутся в квадратных скобках.
thislist = ["apple", "banana", "cherry"]
print(thislist)
Доступ к элементам
Вы получаете доступ к элементам списка, обращаясь к порядковому номеру:
thislist = ["apple", "banana", "cherry"]
print(thislist[1]) # получим banana, так как именно этот элемент находится под индексом 1
Отрицательное индексирование
Отрицательная индексация означает начало с конца, -1 относится к последнему элементу, -2 относится ко второму последнему элементу и т.д.
thislist = ["apple", "banana", "cherry"]
print(thislist[-1]) # получим cherry, так как именно этот элемент находится под индексом -1
Диапазон индексов
Вы можете указать диапазон индексов, указав, где начать и где закончить диапазон.
При указании диапазона возвращаемое значение будет новым списком с указанными элементами.
thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[2:5]) # получим ['cherry', 'orange', 'kiwi']
Изменить значение элемента
Чтобы изменить значение определенного элемента, обратитесь к порядковому номеру(индексу):
thislist = ["apple", "banana", "cherry"]
thislist[1] = "blackcurrant"
print(thislist)
Длина списка
Чтобы определить, сколько элементов в списке, используйте len() функцию:
thislist = ["apple", "banana", "cherry"]
print(len(thislist)) # получим 3
Добавить элементы
Чтобы добавить элемент в конец списка, используйте метод append () :
thislist = ["apple", "banana", "cherry"]
thislist.append("orange")
print(thislist) # получим ["apple", "banana", "cherry", "orange"]
Убрать элемент
Есть несколько способов удалить элементы из списка:
remove():
Метод удаляет указанный элемент
thislist = ["apple", "banana", "cherry"]
thislist.remove("banana")
pop()
Метод удаляет заданный индекс, (или последний элемент , если индекс не указан):
thislist = ["apple", "banana", "cherry"]
thislist.pop()
Переменные могут иметь локальную или глобальную область видимости.
Локальные переменные в Python
Переменные, объявленные внутри функции могут существовать только внутри блока.
def some_funcion ():
TestMode = False
print (TestMode) <- Ошибка, поскольку переменная не существует за пределами функции
В Python блоки цикла if-else и for / while не создают никакой локальной области видимости.
for i in range (1, 11):
test_scope = "переменная внутри цикла for"
print (test_scope)
Output:
переменная внутри цикла for
С блоком if-else
is_python_awesome = True
if is_python_awesome:
test_scope = "Python потрясающий"
print (test_scope)
Output:
Python потрясающий
Глобальные переменные в Python
- Переменные, к которым можно получить доступ из любой функции, имеют глобальную область видимости. Они существуют во фрейме __main__.
- Вы можете объявить глобальную переменную вне функций. Важно отметить, что для присвоения глобальной переменной нового значения вам нужно будет использовать ключевое слово global :
TestMode = True
def some_function ():
global TestMode
TestMode = Falsesome_function ()
print (TestMode) <- Возвращает False
Удаление строки «global TestMode» только установит для переменной значение False в функции some_function ().
Примечание: хотя я напишу больше о концепции модулей позже, но если вы хотите использовать глобальную переменную для нескольких модулей, вы можете создать файл общего модуля, например, configuration.py, и разместить там свою переменную. Наконец, импортируйте общий модуль в свои модули.
Поиск типа переменной в Python
Если вы хотите узнать тип переменной, вы можете реализовать:
type ('farhad')
-> Возвращает <type 'str'>
Запятая в целочисленных переменных
Запятые рассматриваются как последовательность переменных, например
9,8,7 - три числовые переменные
3. Операции в Python
Числовые операции
- Python поддерживает базовые *, /, +, -
- Python также поддерживает так называемые floor division
1 // 3 # возвращает 0
1/3 # возвращает 0,333
Примечание: возвращаемый тип деления всегда с плавающей точкой, как показано ниже:
a = 10/5
print (type (a)) # тип float
Кроме того, python поддерживает возведение в степень с помощью оператора **:
2 ** 3 = 2 * 2 * 2 = 8
Python также поддерживает оператор модуля (остаток):
7% 2 = 1
Строковые операции в Python
Concat Strings:
'A' + 'B' = 'AB'
Помните, что строка - это неизменяемый тип данных, поэтому объединение строк создает новый строковый объект.
Повторить строку:
'A' * 3 # будет повторять A три раза: AAA
Slicing в Python
Указывается индекс элемента и двоеточие. Давайте рассмотрим на примере:
y = 'Abc'
y[: 2] # ab
y[1:] # bc
y[: -2] # a
y[-2:] # bc
Переменной у мы присвоили значение Abc, что бы вывести все значения до индекса под номером 2, мы написали y[: 2]. В предпоследнем примере мы использовали знак "минус", это значит, что отчет индексов будет идти с конца.
Примечание: помните что индекс начинается с нуля.
Сэты (set) в Python
Сэты это неупорядоченный набор данных без дубликатов. Для объявления сэта мы должны написать:
a = {1, 2, 2, 3}
print(a)
Мы получим {1, 2, 3} , так как все дубликаты были удалены и остались только уникальные значения. Сэты не поддерживают индексацию или слайсинг (Slicing) как списки(lists).
Некоторые из наиболее важных операций над сэтами:
- set.add (item) - добавляет элемент в сэт
- set.remove (item) - удаляет элемент из сэта и выдает ошибку, если его нет
- set.discard (item) - удаляет элемент из сэта, если он есть
- set.pop () - возвращает любой элемент из сэта, вызывает KeyError, если сэт пуст
- set.clear () очищает сэт
Тернарный оператор в Python
- Используется для записи условных операторов в одну строку.
Синтаксис:
[If True] if [Expression] Else [If False]
Например:
a = 1 if b == 1 else 2
4. Комментарии в Python
Однострочные комментарии
# это однострочный комментарий
Многострочные комментарии
Можно использовать:
`` `
это
очень
многострочный
комментарий
```
5. Выражения
Выражения могут выполнять логические операции, такие как:
- Равенство: ==
- Не равно: ! =
- Больше: >
- Минус: <
- Больше или равно >=
- Меньше или равно <=
Эти условия можно использовать по-разному, чаще всего в «операторах if» и циклах.
«Оператор if» записывается с использованием ключевого слова if .
a = 33
b = 200
if b > a:
print("b is greater than a")
В этом примере мы используем две переменные, a и b , которые используются как часть оператора if, чтобы проверить, больше ли b, чем a . Поскольку a равно 33 , а b равно 200 , мы знаем, что 200 больше 33, и поэтому мы выводим на экран, что «b is greater than a».
ELIF
Используется что бы сказать «если предыдущие условия не были верны, то попробуйте это условие».
a = 33
b = 33
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
В этом примере a равно b , поэтому первое условие неверно, но условие elif истинно, поэтому мы выводим на экран, что «a and b are equal».
ELSE
Если ничего не найдено в предыдущих условиях.
a = 200
b = 33
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
else:
print("a is greater than b")
В этом примере a больше, чем b , поэтому первое условие неверно, также условие elif неверно, поэтому мы переходим к условию else и выводим на экран, что «a is greater than b».
6. Циклы в Python
Цикл While в Python
Будет выполняться до тех пор, пока как условие истинно
i = 1
while i < 6:
print(i)
i += 1
Примечание: не забудьте увеличить i, иначе цикл будет продолжаться вечно.
С помощью оператора break мы можем остановить цикл, даже если условие while истинно:
i = 1
while i < 6:
print(i)
if i == 3:
break
i += 1
Выйдите из цикла, когда i будет 3
С помощью оператора continue мы можем остановить текущую итерацию и продолжить следующую:
i = 0
while i < 6:
i += 1
if i == 3:
continue
print(i)
Если i равно 3, перейдите к следующей итерации:
Цикл for в Python
С помощью цикла for мы можем перебирать элементы в списке, кортеже, словаре и т.д.
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
Также могут использоваться break, continue как и в случае с циклом while
7. Функции в Python
- Функции - это последовательность операторов, которые вы можете выполнять в своем коде. Если вы видите повторение в своем коде, создайте функцию многократного использования и используйте ее в своей программе.
- Функции также могут ссылаться на другие функции.
- Функции исключают повторение в вашем коде. Они упрощают отладку и поиск проблем.
- Наконец, функции делают код понятным и легким в управлении.
- Короче говоря, функции позволяют разделить большое приложение на более мелкие части.
Определить новую функцию
def my_new_function ():
print ('это моя новая функция')
Вызов функции
my_new_function ()
Аргументы в функциях
- К функции можно добавить аргументы, чтобы сделать функции универсальными.
- Вы можете передать переменные методу:
def my_new_function (my_value):
print ('это моя новая функция с' + my_value)
Примечание: названия "функция" и "метод" это одно и тоже.
- Необязательные аргументы:
Мы можем передать необязательные аргументы, указав значение по умолчанию для аргумента:
def my_new_function (my_value = 'hello'):
print (my_value)
my_new_function () => печатает hello
my_new_function ('test') => печатает test
*args
Ваша функция может принимать любое количество аргументов, добавьте * перед именем параметра:
def myfunc(*args):
pass
myfunc(a)
myfunc(a, b)
myfunc(a, b, c)
**kwargs
Позволяет передавать функции различное количество аргументов ключевого слова. Вы также можете передавать значения словаря в качестве аргументов ключевого слова.
def test (* args, ** kwargs):
print (args)
print (kargs)
print (args [0])
test('alpha', 'beta', a = 1, b = 2)
или
test('alpha', 'beta', {'a': 1, 'b': 2})
Return в функциях
Что бы ваша функция вернула значение, используйте ключевое слово return. Например:
def my_function (input):
return input + 2
лямбда (lambda)
- Анонимная функция с одним выражением.
my_lambda = lambda x, y, z: x - 100 + y - zmy_lambda (100, 100, 100)
# возвращает 0
Синтаксис :
переменная = лямбда-аргументы: выражение
Лямбда-функции можно передавать как аргументы другим функциям.
Задачи для закрепления материала
- Есть список a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]. Выведите все элементы, которые меньше 5.
- Создайте словарь и добавьте туда новый элемент.
- Создайте лист и добавьте туда несколько новых элементов. А затем присвойте элементу под индексов 3 новое значение.
- Создайте функцию, которая берет лист (list) как аргумент и возвращает последний элемент из этого листа.
Продолжение следует..