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
🧠 Любите решать задачки?

Придумал интересную задачку, сможете решить?

Написать функцию, которая принимает строку, состоящую из пар символов (направление и расстояние), и возвращает конечные координаты после выполнения всех перемещений. Направление задается числом от 0 до 3, где 0 означает движение вверх, 1 - вниз, 2 - вправо, 3 - влево. Расстояние указывается числом после направления. Координаты начинаются с (0, 0), где первая координата - горизонтальная (ось X), а вторая - вертикальная (ось Y). Например, для строки '010203' функция должна вернуть координаты (0, 6), а для строки '032100' - координаты (1, 3).


Ваши решения ждем в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Python Hub - сборище Питонистов
Что выведет код выше?
🙂 Разбор

dict() работает так, что он либо ничего не принимает и возвращает {}, либо принимает список из списков ключ-значение. Вот так:
[["key", "value"], ] -> {"key": "value",}
Но мы же знаем что строка тоже итерируется, следовательно первый символ строки становится ключом, а второй - значением. Так и выходит результат {'A': 'B', 'O': 'L', 'Q': 'N'}

[Debriefing finished]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
📂 Узнать размер файла при помощи Python


➡️ Использование функции os.path.getsize()

Одним из способов узнать размер файла в Python является использование функции os.path.getsize(). Эта функция из модуля os.path возвращает размер файла в байтах. Вот пример, как можно использовать эту функцию:

import os

# Путь к файлу
file_path = 'path/to/file.txt'

# Получить размер файла
file_size = os.path.getsize(file_path)

print(f"Размер файла: {file_size} байт")


➡️ Использование модуля pathlib

Другой способ узнать размер файла в Python - использовать модуль pathlib. Этот модуль предоставляет удобные методы для работы с путями к файлам и папкам. Чтобы узнать размер файла с помощью pathlib, можно использовать метод stat(), который возвращает объект os.stat_result, содержащий информацию о файле. Вот пример кода:

from pathlib import Path

# Путь к файлу
file_path = Path('path/to/file.txt')

# Получить размер файла
file_size = file_path.stat().st_size

print(f"Размер файла: {file_size} байт")


➡️ Использование модуля os.stat()

Третий способ узнать размер файла - использовать модуль os.stat(). Этот модуль также предоставляет информацию о файле, включая его размер. Вот пример кода:

import os

# Путь к файлу
file_path = 'path/to/file.txt'

# Получить информацию о файле
file_info = os.stat(file_path)

# Получить размер файла
file_size = file_info.st_size

print(f"Размер файла: {file_size} байт")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🍌3
💻 Выключить компьютер при помощи Python


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

➡️ Использование os module

Один из способов выключить компьютер при помощи Python - использовать модуль os. Этот модуль предоставляет функции для работы с операционной системой. Для выключения компьютера мы можем использовать функцию system с параметром "shutdown -s -t 0". Вот пример кода:

import os

os.system("shutdown -s -t 0")


Этот код выполнит команду "shutdown -s -t 0", которая выключит компьютер через 0 секунд. Вы можете изменить значение параметра -t в зависимости от того, через сколько секунд вы хотите выключить компьютер.

➡️ Использование subprocess module

Еще один способ выключить компьютер при помощи Python - использовать модуль subprocess. Этот модуль предоставляет возможность запускать новые процессы, в том числе и команды операционной системы. Для выключения компьютера мы можем использовать функцию call с параметрами ["shutdown", "-s", "-t", "0"]. Вот пример кода:

import subprocess

subprocess.call(["shutdown", "-s", "-t", "0"])


Этот код выполнит команду "shutdown -s -t 0", которая выключит компьютер через 0 секунд.

➡️ Использование win32api module (Windows only)

Если вы используете операционную систему Windows, еще один способ выключить компьютер при помощи Python - использовать модуль win32api. Этот модуль предоставляет функции для взаимодействия с операционной системой Windows. Для выключения компьютера мы можем использовать функцию ExitWindowsEx с параметром 0x00000008. Вот пример кода:

import win32api

win32api.ExitWindowsEx(0x00000008)


Этот код выполнит команду ExitWindowsEx(0x00000008), которая выключит компьютер.


Тестируйте эти способы и пишите в комментарии, какой вариант самый лучший!☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
ℹ️ Работа с Django ORM


Django ORM (Object-Relational Mapping) - это мощный инструмент, который позволяет разработчикам взаимодействовать с базой данных с помощью объектов Python. Он предоставляет удобный способ работать с данными, без необходимости писать сложные SQL-запросы.

➡️ Создание моделей

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

Вот пример создания модели в Django ORM:

from django.db import models

class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=5, decimal_places=2)
description = models.TextField()


➡️ Запросы к базе данных

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

Вот примеры основных команд для выполнения запросов в Django ORM:

# Выборка всех объектов модели
products = Product.objects.all()

# Фильтрация объектов по условию
cheap_products = Product.objects.filter(price__lt=10)

# Сортировка объектов
sorted_products = Product.objects.order_by('-price')

# Агрегирование данных
total_price = Product.objects.aggregate(Sum('price'))


➡️ Миграции базы данных

Еще одно важное преимущество работы с Django ORM - это возможность автоматического создания и применения миграций базы данных. Миграции позволяют легко изменять структуру базы данных, добавлять новые таблицы, поля или изменять существующие. Django ORM автоматически отслеживает изменения в моделях и генерирует миграционные файлы, которые можно применить к базе данных. Это упрощает процесс разработки и поддержки приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что выдаст код выше?
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