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
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
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

У нас есть цикл for, который перебирает значения от 1 до 4 включая. ( 5 не включается )
Внутри цикла for стоит цикл while, который срабатывает только, когда i < 3. В этот момент значение i выводится и цикл while прерывается —> переходим к циклу for.

Не смотря на то, что for прокрутится 4 раза, цикл while сработает только 2 из них —> выведет числа 1 2

Ответ: 1 2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔥 Что такое декоратор?

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

➡️ Как использовать декоратор

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

def my_decorator(func):
def wrapper():
print("Before function is called.")
func()
print("After function is called.")
return wrapper

@my_decorator
def say_hello():
print("Hello!")

say_hello()


В этом примере мы определили декоратор my_decorator, который принимает функцию в качестве аргумента и возвращает другую функцию wrapper, которая будет выполнять дополнительный код до и после вызова целевой функции. Затем мы применяем декоратор к функции say_hello с помощью символа @. При вызове функции say_hello, будет вызвана функция wrapper, которая выполнит дополнительный код.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Что выдаст код выше?
Anonymous Quiz
41%
test
22%
None
32%
Error
5%
Не знаю
👍4
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Инструкция raise позволяет программисту принудительно вызвать одно исключение в любое время и в любом месте кода.

Мы самостоятельно вызываем ошибку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2