Найти тему
lambda x

Python. Основы.

Оглавление

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

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

1. Знакомство с Python

Что такое Python?

  • Интерпретируемый объектно-ориентированный высокоуровневый язык сценариев с динамической типизацией .
  • В результате обычно возникают ошибки времени выполнения.

Почему Python?

  • Python - самый популярный язык из-за того, что имеет простой синтаксис, ну и конечно же ставший популярный в последнее время Data Science.
  • Python - это объектно-ориентированный язык программирования, который также может использоваться для написания функционального кода.
  • Для написания программы на Python требуется меньше времени по сравнению с другими языками, такими как C # / Java.
  • Существует большое количество пакетов для машинного обучения и аналитики.
  • Для поддержки разработчиков Python доступно большое количество сообществ и книг.
  • На Python могут быть реализованы почти все типы приложений, от аналитических прогнозов до пользовательского интерфейса.
  • Типы переменных объявлять не нужно. Таким образом, быстрее реализовать приложение Python. С другой стороны это и его минус.

Почему не Python?

  • Python медленнее, чем C, Java.
  • Табуляция несколько усложняет жизнь для новых программистов.
  • Python не предлагает расширенных статистических функций, как R.
  • Python не подходит для низкоуровневых систем и взаимодействия с оборудованием.

Как работает Python?

Это изображение показывает, как Python работает на наших машинах:

-2

Ключевым моментом здесь является интерпретатор, который отвечает за перевод высокоуровневого языка 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

Синтаксис :

переменная = лямбда-аргументы: выражение

Лямбда-функции можно передавать как аргументы другим функциям.

Задачи для закрепления материала

  1. Есть список a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]. Выведите все элементы, которые меньше 5.
  2. Создайте словарь и добавьте туда новый элемент.
  3. Создайте лист и добавьте туда несколько новых элементов. А затем присвойте элементу под индексов 3 новое значение.
  4. Создайте функцию, которая берет лист (list) как аргумент и возвращает последний элемент из этого листа.

Продолжение следует..