Python академия
7.73K subscribers
2.32K photos
6 videos
268 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
Удаление элемента по индексу в Python


Для удаления элемента из списка с помощью индекса в Python можно использовать метод pop() или ключевое слово del. Метод pop() удаляет элемент по указанному индексу и возвращает его значение. Например:

my_list = [1, 2, 3, 4, 5]
removed_element = my_list.pop(2)
print("Удаленный элемент:", removed_element)
print("Список после удаления элемента:", my_list)


В данном примере элемент с индексом 2 (третий элемент) будет удален из списка my_list, а его значение будет сохранено в переменной removed_element.

Также можно воспользоваться ключевым словом del для удаления элемента по индексу. Например:

my_list = [1, 2, 3, 4, 5]
del my_list[2]
print("Список после удаления элемента:", my_list)



В данном случае элемент с индексом 2 также будет удален из списка my_list, но в отличие от pop() метод del не возвращает значение удаленного элемента.

Использование метода pop() удобно, если требуется сохранить значение удаленного элемента, а ключевое слово del подходит, если значение элемента не требуется. Оба способа позволяют удалять элементы из списка по индексу в Python.


Подписывайтесь на канал 👉@pythonofff
👍4🎉2
Методов списков list

Напоминаю, списки в Python – упорядоченные последовательности элементов различных типов данных. Списки можно изменять, например, добавлять новые элементы.

1. list.append(x) – добавляет элемент, переданный в качестве аргумента, в конец списка. Этот метод является самым простым и распространённым в коде.

2. list.insert(i, x) – вставляет элемент в переданную позицию. Первый аргумент означает индекс элемента, перед которым будет добавлено новое значения.

Таким образом, list.insert(0, x) вставит элемент в начало списка, а list.insert(len(list), x) эквивалентно записи list.append(x).

3. list.extend(iterable) – расширяет список, добавляя все элементы другой коллекции.

Подписывайтесь на канал 👉@pythonofff
Методы list в Python

Во время собеседования на вакансию
python-разработчика очень часто звучат вопросы про списки и их методы.
Мы собрали для вас часть этих методов.

1. append() - добавляет элемент в конец списка.

2. clear() - удаляет все элементы из списка

3. copy() - делает поверхностную копию списка. Почему нужно пользоваться именно этим методом, а не присваиванием мы разбирали в другой статье.

4. count() - считает, сколько раз в списке встречается переданный аргумент.

Подписывайтесь на канал 👉@pythonofff
👍4
Как читать бинарные файлы на python?


Вы можете читать бинарные файлы с помощью режима чтения "rb"

with open('index.dat', 'rb') as binary_file:
info = binary_file.read()


Как читать большие файлы в python?
Самый простой метод чтения больших файлов - чтение построчно. При таком методе оперативная память не забивается.

with open('data.txt', 'r') as file:
for line in file:
print(line)

Подписывайтесь на канал 👉@pythonofff
👍2
Функции map(), filter() и reduce() используют, чтобы привнести в Python немного функционального программирования.

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

1. map() - функция map перебираeт все элементы в данном итеративном объекте и выполняeт функцию, которую мы передали в качестве аргумента для каждого из них.

2. filter() - Подобно map(), filter() принимает объект функции и итерацию и создает новый список. Как следует из названия, filter() формирует новый список, содержащий только элементы, удовлетворяющие определенному условию.

3. reduce() - reduce работает иначе, чем map() и filter(). Он не возвращает новый список, основанный на функции и итерации, которые мы передали.
Вместо этого он возвращает одно значение. На картинке мы приводим пример сложения чисел. Но это самое простейшее. Можно перемножать, возводить в квадрат и многое другое (и не обязательно с числами).

Подписывайтесь на канал 👉@pythonofff
👍3
Как правильно создавать классы в python?

Вы можете придерживаться синтаксиса

class <Название_Класса>:
def __init__(<Аргументы_Класса>):
pass


(Конструктор класса не всегда обязателен)
Создание класса вы можете увидеть на примере :

class Axe: # Создаем класс с названием "Axe"
def __init__(self, x : int, y : int): # Создаем конструктор класса, который принимает "x" и "y"
self.x = x
self.y = y

def increment(self): # Создаем метод класса
print(self.x + self.y)

Подписывайтесь на канал 👉@pythonofff
👍4
Поиск индексов подстроки

Для того чтобы найти все индексы для подстроки в строке, мы можем создать пользовательскую функцию, которая будет итеративно проходить по строке и находить все вхождения подстроки. Например, мы можем создать функцию find_all_indexes(), которая будет принимать строку и подстроку в качестве аргументов и возвращать список всех индексов, по которым найдена подстрока.


def find_all_indexes(s, sub):
indexes = []
index = s.find(sub)
while index != -1:
indexes.append(index)
index = s.find(sub, index + 1)
return indexes

string = "hello world hello hello"
substring = "hello"
indexes = find_all_indexes(string, substring)
print(indexes) # выводит [0, 12, 18]



В приведенном примере мы создали функцию find_all_indexes(), которая ищет все вхождения подстроки «hello» в строке «hello world hello hello». Мы итеративно вызываем метод find() для поиска подстроки, начиная с последнего найденного индекса + 1. Когда метод find() возвращает -1, это означает, что больше вхождений не найдено, и мы завершаем выполнение функции, возвращая список всех найденных индексов.

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


Подписывайтесь на канал 👉@pythonofff
👏5👍1
Как в Python удалить файл или папку


Для простого удаления файлов и папок используется стандартная библиотека os.

— Для удаления файлов используем функцию remove()

— Для удаления папки используем функцию rmdir()

— Для удаления папки и в ней содержимого используем shutil.rmtree()

Подписывайтесь на канал 👉@pythonofff
👍4😁1
Как удалить каждый второй элемент списка в python?

Вы можете использовать индексирование [::2] (2 означает шаг) для удаления каждого второго элемента.

array = [1, 2, 3, 4, 5, 6, 7, 8, 9]

print(array[::2])

# Вывод : [1, 3, 5, 7, 9]

Подписывайтесь на канал 👉@pythonofff
👏41
Как в Python используется оператор +

Прежде чем приступить к методам append() и extend(), давайте посмотрим, как происходит конкатенация (объединение) списков при помощи оператора +.

Допустим, у нас есть два списка, list1 и list2, которые мы хотим объединить (то есть склеить вместе два целых списка).

Если вы внимательно прочтете приведенный выше код, вы заметите следующие вещи:

• list1 + list2 не добавляет элементы из list2 в list1.
• Вместо этого создается новый список, содержащий элементы из list1 и list2.
• В результате сами списки list1 и list2 остаются в первозданном виде.

Есть методы с использованием append() и extend().

Подписывайтесь на канал 👉@pythonofff
👍6
Операции с комплексными числами

Для выполнения математических операций с комплексными числами в Python используется встроенный тип данных complex. Для создания комплексного числа необходимо использовать синтаксис вида a + bj, где a — действительная часть, b — мнимая часть, j — мнимая единица.


# Пример создания комплексного числа
z = 3 + 4j



Для выполнения операций над комплексными числами можно использовать стандартные математические операторы. Например, для сложения комплексных чисел необходимо использовать оператор «+», для умножения — оператор «*».


# Пример сложения комплексных чисел
z1 = 3 + 4j
z2 = 1 + 2j
result = z1 + z2
print(result) # Вывод: (4+6j)



Python также предоставляет возможность выполнения других математических операций над комплексными числами. Например, для нахождения модуля комплексного числа можно использовать функцию abs(), для получения аргумента — функцию phase().


# Пример нахождения модуля и аргумента комплексного числа
z = 3 + 4j
modulus = abs(z)
argument = cmath.phase(z)
print(modulus, argument) # Вывод: 5.0 0.9272952180016122



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


Подписывайтесь на канал 👉@pythonofff
👍3
Блок else в циклах for и while

Цикл while используется для выполнения условия до тех пор, пока оно не будет оценено как истинное.

Цикл for используется для повторения определенных строк кода в программе. Предположим, вы хотите напечатать числа до 10, вы можете сделать это, набрав 10 операторов печати или используя цикл for. Цикл for повторяет часть программы на основе последовательности.

В Python циклы for и while могут содержать блок else, который выполнится, только если цикл завершится без применения break.

Рассмотрим это на примере функции, ищущей иголку (needle) в стоге сена (haystack).

Подписывайтесь на канал 👉@pythonofff
4👍1
Как импортировать класс из другого файла в python?

Вы можете использовать from "<Название_Файла>" import "<Название_Класса>"

from math_function import Axe

axe = Axe(x = 10, y = 13)

print(axe.summ())
# Вывод : 23


Файл "math_function.py"

class Axe:
def __init__(self, x : int, y : int):
self.x = x
self.y = y

def summ(self):
return x + y


Подписывайтесь на канал 👉@pythonofff
👍3
Как удалить папку с файлами в Python?

Вы можете использовать shutil.rmtree() метод, чтобы удалить директорию со всеми файлами в ней на Python, посмотрите небольшой код ниже:

import shutil

path = "/tmp/test_folder"

# Удалить папку и все файлы в ней
shutil.rmtree(path)

Подписывайтесь на канал 👉@pythonofff
Ускоряем код при помощи векторизации?

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

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

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

Подписывайтесь на канал 👉@pythonofff
👍4
Справка по импортированным модулям


Для вывода импортированных модулей в Python вы можете использовать функцию help(). Эта функция позволяет получить справку о любом объекте, включая модули, функции, классы и т.д. Для того чтобы узнать, какие модули были импортированы в вашем коде, просто вызовите help("modules").

При вызове help("modules") Python выведет список всех импортированных модулей в вашей среде. Это может быть полезно для того, чтобы узнать, какие внешние модули нужно установить на новой системе для корректного выполнения вашего кода. Таким образом, вы сможете избежать необходимости пробовать их импортировать вручную.

Важно отметить, что при вызове help("modules") не будут перечислены модуль sys и модули, импортированные из него. Это связано с тем, что модуль sys является частью стандартной библиотеки Python и не требует установки отдельно.
import requests
import numpy
import pandas


Например, если вы импортировали модули requests, numpy и pandas, то при вызове help("modules") вы увидите их в списке импортированных модулей. Это позволит вам легко определить, какие внешние модули необходимо установить на другой системе для успешного запуска вашего кода.

Подписывайтесь на канал 👉@pythonofff
👍2
Как удалить строку из файла в Python?

filename = "test.txt"

delete_string = "строка 2"
lines = []
with open(filename, 'r') as file:
for line in file:
if line.strip() != delete_string:
lines.append(line)

with open(filename, "w") as file:
file.writelines(lines)

Подписывайтесь на канал 👉@pythonofff
👍4🎉1
Простой веб-фреймворк

На сегодняшний день упрощенным вариантом веб-фреймворка WSGI для Python, является Bootle.

Это своего рода файловый модуль в единственном числе не имеющий сторонних библиотек, кроме стандартной Python.

Модуль Bootle вполне реализует себя в работах как с малыми, так и большими проектами, хотя его функционал состоит не из самых обширных возможностей: обработка форм, routing, POST-routing, сервер и cookies.

Для более точного рассмотрения результата, достаточно запустить данный модуль, прописать пять строк кода и перейти по адресной строке в браузере: localhost:5000/hello/world

Подписывайтесь на канал 👉@pythonofff
👍3
Функции sleep() и time()

Чтобы понять смысл функции sleep(), разберём простой пример. Три строки выводятся в определённый промежуток времени – задержку обеспечивает sleep.

Сперва выводится первая строка, затем идёт функция sleep(), которая задерживает вывод на 2 секунды. Точно так же для следующего print мы используем sleep на 5 секунд.

Рассмотрим пример использования sleep() для создания промежутка времени. Мы используем функцию time(), чтобы узнать текущее время, и localtime(), чтобы получить текущие дату и время в конкретной местности. Кроме того, есть функция strftime() («string from time»), которая возвращает время в виде строки в указанном формате.

В результате интервал между двумя моментами времени составил две секунды.

Подписывайтесь на канал 👉@pythonofff
👍3