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

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

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

https://t.me/pythonhub_chat - чат
Download Telegram
Что выдаст код выше?
Anonymous Quiz
7%
24
16%
14
10%
22
12%
6
14%
4
30%
Error
11%
Не знаю
👍71
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

a —> "1" (станет текстовой единицей)

b —> вызовет функцию str, которую мы переопределили выше в коде самостоятельно передав туда 2.
Функция str, в свою очередь, попытается вернуть результат str(number * 2), но мы как раз таки str и переопределили —> она вызовет сама себя.

У нас получится рекурсия, которая будет работать бесконечно, Python выдаст блок-ошибку по глубине рекурсии.

ответ: ошибка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Как использовать функцию range() в Python, кроме как в цикле for i in range для перебора?


Функция range() в Python - это важный инструмент для создания последовательности чисел. Хотя она часто используется в связке с циклом for, есть и другие способы, как можно использовать эту функцию.

➡️ Использование range() в списковых включениях

Списковые включения - это мощный инструмент Python, который позволяет создавать списки в одну строку кода. Функция range() может быть использована в списковых включениях для создания списков, которые следуют определенной числовой последовательности. Например, [x for x in range(10)] создаст список чисел от 0 до 9.

➡️ Использование range() в генераторах

Генераторы в Python - это специальный тип итераторов, который позволяет генерировать элементы "на лету", экономя память. Функцию range() можно использовать в генераторах для создания последовательностей чисел. Например, (x for x in range(10)) создаст генератор, который производит числа от 0 до 9.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
*⃣ Как хранить токены и пароли в программах на 🐍 Python?

🔍 У новичков часто возникает вопрос - где хранить секретные данные? Нет, можно, конечно, прямо в коде, но лучше так не делать. Делюсь короткой статьей с основными способами хранения токенов и прочих секретных данных 


➡️ u.habr.com/dSPXv 🔗


А как Ты хранишь пароли?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
⁉️ Сортировка вставками: Как это работает (в примерах на Python)


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

➡️ Принцип работы

Сортировка вставками работает, сравнивая каждый элемент в массиве с его левым соседом. Если текущий элемент меньше, он перемещается влево. Это происходит до тех пор, пока текущий элемент не окажется больше предыдущего. Этот процесс повторяется для каждого элемента в массиве, пока весь массив не будет отсортирован.

➡️ Пример кода на Python

Вот пример реализации сортировки вставками на Python:

def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >=0 and key < arr[j] :
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key

arr = [12, 11, 13, 5, 6]
insertion_sort(arr)
print ("Отсортированный массив: ", end ="")
for i in range(len(arr)):
print ("%d" %arr[i], end =" ")


В этом коде мы проходимся по каждому элементу массива, начиная со второго, и сдвигаем его влево, пока не найдем элемент, который меньше текущего.

➡️ Процесс сортировки

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

➡️ Преимущества и недостатки

Преимущество сортировки вставками в том, что она эффективна для небольших массивов и для массивов, которые уже частично отсортированы. Она также стабильна, что означает, что она сохраняет исходный порядок равных элементов. Однако, она не эффективна для больших массивов, так как требует больше операций сравнения и обмена элементов, чем другие алгоритмы сортировки.
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3
🕺 Кто такие HR-специалисты в области IT, и зачем они нужны?


➡️ Роль HR-специалистов в IT

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

➡️ Необходимые навыки HR-специалистов в IT

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

Ниже вы найдете пару поведенческих вопросов для оценки наиболее распространенных характеристик во время нетехнических собеседований с hr.

Вопросы поведенческого интервью, ориентированные на действия / самомотивацию

1. Опишите ситуацию, когда вы сделали намного больше, чем от вас ожидали, чтобы завершить проект. Были ли признаны ваши усилия? Кем и как? Что вы при этом почувствовали?

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

1. Опишите ситуацию, в которой вы столкнулись с серьезным препятствием для завершения проекта. Как ты с этим справился? Какие шаги вы предприняли?

Коммуникативные навыки поведенческие вопросы интервью

1. Мне было бы интересно узнать о недопонимании между вами и вашим руководителем. Как вы ее решили? В чем причина этого? Как вы справились с этой ситуацией?

Креативные поведенческие вопросы интервью

1. Приведите мне пример того, как вам пришлось проявить творческий и необычный подход к решению проблемы кодирования. Как вам пришла в голову эта идея? Как вы думаете, почему это было необычно?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🖥 Dataclasses в Python

⚙️ Датаклассы - это удобный способ создавать классы для хранения информации. Они позволяют делать это с минимальным количеством кода. Например, если вы хотите хранить информацию о точке в трехмерном пространстве, вам не нужно писать много кода для создания класса и методов. Просто используйте dataclass, и Python сделает всю работу за вас.

🖥 Вот как это работает:

from dataclasses import dataclass

@dataclass
class Point:
x: float
y: float
z: float

point = Point(1.5, 2.0, -3.7)

print(point) # Вывод: Point(x=1.5, y=2.0, z=-3.7)
print(point.x) # Вывод: 1.5
print(point.y) # Вывод: 2.0
print(point.z) # Вывод: -3.7


Использование dataclasses позволяет существенно экономить время разработчика за счет избежания необходимости создавать множество методов для работы с данными, что делает код более чистым и понятным, повышая его читаемость. Благодаря этому, процесс понимания и поддержки кода становится более простым.

🎮 Кроме того, dataclasses легко интегрируются с другими библиотеками и инструментами Python, что обеспечивает удобство в разработке и совместимость с другими компонентами проекта.

А Вы используете датаклассы?
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4
Что выдаст код выше?
Anonymous Quiz
7%
2
26%
1
26%
1.66
29%
Error
11%
Не знаю
👍7
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Создали объект класса. В поле b (a.b) лежит число 3. В поле c, объекта a, мы создаем значение 5.
// - операция целочисленного деления. 5 // 3 —> 1 (3 помещается в 5 целиком только 1 раз)

Ответ: 1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👨‍💻1
🟢 Сортировка слиянием в Python

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

➡️ Принцип работы

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

➡️ Реализация в Python

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

def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left_half = merge_sort(arr[:mid])
right_half = merge_sort(arr[mid:])
return merge(left_half, right_half)

def merge(left, right):
merged = []
left_index = 0
right_index = 0
while left_index < len(left) and right_index < len(right):
if left[left_index] <= right[right_index]:
merged.append(left[left_index])
left_index += 1
else:
merged.append(right[right_index])
right_index += 1
merged += left[left_index:]
merged += right[right_index:]
return merged


➡️ Преимущества и недостатки

Сортировка слиянием имеет несколько ключевых преимуществ. Во-первых, она эффективна, с временем выполнения O(n log n). Во-вторых, она стабильна, что означает, что она сохраняет исходный порядок равных элементов. Однако у нее есть и недостатки. Она требует дополнительное пространство для хранения промежуточных результатов, что может быть проблемой для больших данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🎲 Рандомен ли random.randint в Python? Как он работает под капотом?


Одной из наиболее часто используемых функций для генерации случайных чисел является функция random.randint(). Но насколько случайными являются числа, которые генерирует эта функция?

➡️ Рандомен ли random.randint?

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

➡️ Как работает random.randint?

Функция random.randint() использует алгоритм Мерсенна Твистер, который является одним из наиболее широко используемых алгоритмов для генерации псевдослучайных чисел. Он основан на математических принципах и генерирует последовательности чисел, которые в действительности предсказуемы, если известно достаточно много предыдущих чисел в последовательности.

➡️ Влияет ли seed на random.randint?

Значение seed играет важную роль в генерации псевдослучайных чисел в Python. Если вы используете функцию random.seed() с определенным значением перед вызовом random.randint(), вы будете получать одну и ту же последовательность "случайных" чисел каждый раз, когда вы запускаете свой код. Это может быть полезно для отладки и воспроизводимости результатов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👨‍💻1
©️ Зачем создавать копию объекта в Python?


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

➡️ Поверхностное и глубокое копирование

Существуют два типа копирования в Python - поверхностное и глубокое. Поверхностное копирование создает новый объект, но заполняет его ссылками на оригинальные дочерние объекты. Глубокое копирование, с другой стороны, создает новый объект и рекурсивно добавляет копии дочерних объектов оригинала. Выбор между этими двумя зависит от ваших конкретных потребностей.

➡️ Избегание неожиданных побочных эффектов

Когда вы работаете с изменяемыми объектами, такими как списки или словари, изменение копии может повлиять на оригинал. Это может привести к неожиданным побочным эффектам в вашем коде. Создание копии объекта позволяет вам вносить изменения без воздействия на оригинальный объект.

➡️ Повышение производительности кода

Создание копий объектов может помочь улучшить производительность вашего кода. Когда вы работаете с большими объектами или структурами данных, изменение оригинала может быть ресурсоемким процессом. Создание копии и работа с ней, вместо оригинала, может сэкономить время и ресурсы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Шапки заключённых

Логическая задача от Google😳.
Четверо заключенных были арестованы, но тюрьма переполнена, и тюремщику некуда их посадить. Он решает дать им головоломку. Если они справятся, то выйдут на свободу, а если не справятся, то будут казнены.

Тюремщик выстроил трех человек в линию. Четвертого он посадил за ширму. Каждому заключённому он дал по одной шапке.

Тюремщик объяснил, что есть две черные и две белые шапочки, и каждый заключенный носит одну из них. При этом каждый из заключенных должен видеть только шапки тех, кто находится перед ним, но не собственные шапки или не шапки тех, кто находится позади. Четвертый человек за ширмой не может видеть шапки других заключённых, а они не видят, какая шапка на его голове. Общаться заключённым тоже нельзя.

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

Как заключённым избежать казни?

Стоит ли кидать логические задачи подобного плана?

p.s. ответ дам скоро...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Python Hub - сборище Питонистов
🤔 Шапки заключённых Логическая задача от Google😳. Четверо заключенных были арестованы, но тюрьма переполнена, и тюремщику некуда их посадить. Он решает дать им головоломку. Если они справятся, то выйдут на свободу, а если не справятся, то будут казнены.…
💡 Решение

Заключенные A и B по сути изолированы. У них нет информации, которая помогла бы им дать ответ. Заключенные C и D понимают это, поэтому решение задачи лежит на них.

Заключенный D видит шляпы заключенных B и C. Если бы у B и C были шляпы одного цвета (например, чёрного), то D догадался бы, что на его голове точно должна быть шляпа другого цвета, то есть белого.

Когда время почти истекло, С понимает, что D не может дать ответ. Это значит, что цвет его шляпы отличается от цвета шляпы B, иначе D сразу ответил бы. Поэтому С делает вывод, что на нём черная шляпа, так как он видит белую шляпу В.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8😱1