Python Hub - сборище Питонистов
1.72K subscribers
657 photos
1 video
37 files
278 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
Что выдаст код выше?
Anonymous Quiz
75%
True
15%
False
5%
None
3%
Error
3%
Не знаю
👍3
Что такое Hard Skills?

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

Примером Hard Skills в программировании могут быть навыки написания кода на различных языках, знание алгоритмов и структур данных, опыт работы с базами данных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

deepcopy создает полную копию объекта.
Если мы выведем их id, то получим одинаковые числа —> это полная копия объекта.

Сравнение выдаст True
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤪2
Что такое deepcopy?


Deepcopy
- это функция в Python, которая используется для создания копии объектов, включая все вложенные объекты. Она глубоко копирует все элементы объекта, включая вложенные списки, словари и т.д. Это означает, что изменения, внесенные в копию, не влияют на оригинальный объект.

Для использования deepcopy в Python нужно импортировать модуль copy. Затем можно использовать функцию deepcopy, чтобы создать копию объекта. Например:

import copy

list1 = [1, [2, 3], 4]
list2 = copy.deepcopy(list1)


В этом примере мы создали список list1, который содержит два элемента: число 1 и список [2, 3]. Затем мы использовали deepcopy, чтобы создать копию этого списка и присвоить ее переменной list2. Теперь у нас есть два списка, которые содержат одинаковые элементы.

list2[1][0] = 5
print(list1) # [1, [2, 3], 4]
print(list2) # [1, [5, 3], 4]


Как видно из примера, изменение элемента в копии не влияет на оригинальный список.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что выдаст код выше?
Anonymous Quiz
26%
7
9%
6
12%
3
42%
4
5%
1
5%
Error
2%
Не знаю
👍5
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Множество в python - "контейнер", содержащий не повторяющиеся элементы в случайном порядке.
Он уберет все повторы, и мы получим (1, 2, 3, 5)
Далее len вычислить длину —> кол-во элементов —> 4.

Ответ: 4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔥 Кто решит задачку?
В функцию поступает число.
Нужно вернуть список всех делителей этого числа, кроме самого числа и единицы.
Если число простое (ни на что, кроме 1 и самого себя не делится), то вернуть текст
*число* is prime

Ответы в комменты, погнали!
p.s. потом будет разбор задачи😎
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Что выдаст код выше?
Anonymous Quiz
37%
True
45%
False
13%
None
5%
Error
0%
Не знаю
👍2
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Есть два списка с одинаковыми элементами.
Вызов метода .sort() возвращает None, т.к. сортирует сам исходный список. —> в a будет None
Вызов sorted() вернет отсортированный список —> в b будет [1,2,3,4]

Сработает elif, т.к. None != [1,2,3,4] —> не равны.

Ответ: False
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Python Hub - сборище Питонистов
🔥 Кто решит задачку? В функцию поступает число. Нужно вернуть список всех делителей этого числа, кроме самого числа и единицы. Если число простое (ни на что, кроме 1 и самого себя не делится), то вернуть текст *число* is prime Ответы в комменты, погнали!…
Было предложено решение:

def number(num):
numm=[i for i in range(2,num-1) if num%i==0]
if len(numm)==0:
print(f'{num} is prime')
else:
print(numm)

И оно работает. Суть решения в переборе всех значений от 2 до самого числа. Далее мы пытаемся поделить наше число на каждое из значений. Те значения, которые поделились без остатка заносим в список. Ну а далее просто проверяем, что список пустой или нет.

p.s. в range можно не делать num-1, ведь он и так не включает последний элемент

Далее было предложено еще решение, с уменьшением количества пробегаемых элементов в 2 раза, так как например:
У нас есть число 100. Мы не сможем умножить число большее 50 на 2 или больше, чтобы вышло 100.

Тогда тот же алгоритм примерно выглядел бы так:

def number(num):
numm=[i for i in range(2,num//2+1) if num%i==0]
if len(numm)==0:
print(f'{num} is prime')
else:
print(numm)

А вот так бы это выглядело, если бы мы писали, как для новичков.
👍4
🖥 Что такое хеш-таблица?


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

➡️ Как работает хеш-таблица?

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

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

➡️ Преимущества использования хеш-таблицы

Одним из главных преимуществ хеш-таблицы является ее эффективность. Благодаря уникальному хеш-коду каждого элемента, поиск элемента в массиве может быть осуществлен за постоянное время O(1), что делает хеш-таблицу одной из самых быстрых структур данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что выдаст код выше?
Anonymous Quiz
18%
4
58%
9
12%
6
9%
Error
3%
Не знаю
👍2
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Лямбда-выражения в языке Python представляют небольшие анонимные функции, которые определяются с помощью оператора lambda.

В данном случае у нас есть лямбда-фукция a, которая принимает в себя значение c и возвращает результат умножения числа c на само себя..

Таким образом, передав в функцию а тройку, получим 9.
p.s. с = 2 на первой строке вообще никак не влияет на выражение.

ответ: 9
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🖥 Генераторы

Генераторы
- это функции, которые возвращают итерируемый объект, который вы можете перебирать по одному элементу за раз. Они создаются с помощью ключевого слова "yield" вместо "return". Когда вы вызываете генератор, он не выполняет свой код сразу, вместо этого он возвращает объект-генератор, который позволяет вам перебирать элементы один за другим. Каждый раз, когда вы вызываете метод "next()" на объекте-генераторе, он продолжает выполнение кода генератора до следующего оператора "yield", возвращая значение, указанное после него. Генераторы особенно полезны, когда вы работаете с большими наборами данных, так как они позволяют вам работать с данными по мере их генерации, а не ждать, пока все данные будут сгенерированы.

Вот пример:

>>> def starmaker(n):
... while n > 0:
... yield '*'
... n -= 1
...
>>> type(starmaker)
>class 'function'>
>>> s = starmaker(3)
>>> type(s)
>class 'generator'>
>>> next(s)
'*'
>>> next(s)
'*'
>>> next(s)
'*'
>>> next(s)
Traceback (most recent call last):
File ">stdin>", line 1, in >module>
StopIteration
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2