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

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

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

https://t.me/pythonhub_chat - чат
Download Telegram
🔥 У нас появилась предложка! 🔥

Я создал нового бота для вас! 🤖

Теперь у каждого есть возможность кидать свои вопросы, предложения и мемы, общаясь со мной лично. 🤔💡🤣

Я надеюсь, что это станет удобным способом для всех, чтобы получать ответы на свои вопросы и делиться своими идеями и со мной. 🙌

Лучшие мемы, разборы ваших задач и вопросов будут публиковаться в группе с отметкой автора или анонимно 😊

Ссылка на бота - https://t.me/Python_Hub_bot
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Python Hub - сборище Питонистов pinned «🔥 У нас появилась предложка! 🔥 Я создал нового бота для вас! 🤖 Теперь у каждого есть возможность кидать свои вопросы, предложения и мемы, общаясь со мной лично. 🤔💡🤣 Я надеюсь, что это станет удобным способом для всех, чтобы получать ответы на свои вопросы…»
🧑‍🎓 Задача:

Точная степень двойки

Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае.

Операцией возведения в степень пользоваться нельзя!

❗️усложнением будет являться решение через рекурсию❗️

Решения скидывайте в предложку, а лучше в комменты!

Через время разберем ваши решения!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

При помощи среза мы берем наше слово с конца, перебирая буквы через одну, т.к. шаг указали -2.

.фЛ

Ну а далее мы при помощи split пытаемся разбить слово по пробелам. Но проблема - у нас нет пробелов.
Вспоминаем, что split В ЛЮБОМ случае преобразует строку в список.

Так мы и получили список с одним элементом - нашим укороченным словом.

Ответ: ['.фЛ']
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Использование в шаблонах и отправка на сервер форм в Django [продолжение]


📎(первая часть)

➡️ Отправка форм на сервер

После того, как мы определили класс формы, мы можем использовать его в представлении для обработки данных, отправленных пользователем. Рассмотрим следующий пример:

from django.shortcuts import render
from .forms import LoginForm

def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
# Обработка валидной формы
pass
else:
form = LoginForm()
return render(request, 'login.html', {'form': form})


Здесь мы определяем представление login_view, которое обрабатывает запросы GET и POST. Если запрос GET, мы создаем экземпляр формы и передаем его в контекст шаблона. Если запрос POST, мы создаем экземпляр формы, передаем ему данные из запроса и проверяем, является ли форма действительной. Если форма действительна, мы можем обрабатывать данные.

➡️Использование форм в шаблонах

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

<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Отправить</button>
</form>


Здесь мы используем тег form для создания HTML-формы. Мы указываем метод отправки POST и добавляем защитный токен csrf_token. Затем мы используем метод as_p() для отображения полей формы в виде абзацев.

#django #forms #формы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что выдаст код выше?
Anonymous Quiz
44%
True
25%
False
15%
Error
15%
Не знаю
👍3🥰1
Что такое map() в Python?


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

➡️Как использовать функцию map()

Синтаксис функции map() очень прост:

map(function, iterable, ...)


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

Пример использования функции map():

def square(x):
return x ** 2

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)
print(list(squared_numbers))


Вывод: [1, 4, 9, 16, 25]

➡️Применение лямбда-функций с map()

map() часто используется вместе с лямбда-функциями, что делает код более компактным. Вот пример:

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x ** 2, numbers)
print(list(squared_numbers))


Вывод: [1, 4, 9, 16, 25]

➡️Преобразование нескольких списков с map()

Вы также можете использовать функцию map() для преобразования нескольких списков одновременно. Вот пример:

list1 = [1, 2, 3]
list2 = [4, 5, 6]
summed_list = map(lambda x, y: x + y, list1, list2)
print(list(summed_list))


Вывод: [5, 7, 9]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
Что выдаст код выше?
Anonymous Quiz
17%
Parent
9%
Child
59%
Mark
9%
Error
7%
Не знаю
👍41
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

У нас есть класс, с уже заданными в нем полями a = 5, b = 3. В классе так же есть метод res(), который возвращает результат суммы полей.

Создаем на основе класса объект a.
Далее, в переменную b присваиваем результат вызова A.res(a) —> вызвали метод через класс, а в self передали наш объект а —> получили сумму 5+3 = 8.

Далее c = a.res() —> вызываем метод уже через сам объект, но все равно сам объект идет в self. Получаем тоже 5 + 3 = 8

Проверка b == c —> 8 == 8 —> True

В этой задаче рассмотрены 2 способа вызова метода. Через класс, передавая объект, и через сам объект.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤯1
Как использовать time.sleep()?

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

Функция time.sleep() принимает один аргумент - количество секунд, на которое нужно приостановить выполнение программы. Например, если вы хотите приостановить выполнение программы на 5 секунд, вы можете использовать следующий код:


import time

print("Начало выполнения программы")

# Приостановить выполнение программы на 5 секунд
time.sleep(5)

print("Программа завершила выполнение")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Затянувшийся разбор, извиняюсь!

У нас отличный пример наследования. Так как класс Child наследуется от класса Parent, то __init__ Parent'a будет и __init__'ом Child'a.

Помним, что __init__ - это метод конструктор, вызывающийся при создании объекта.

Соответственно, создаем объект mark = Child('Mark') —> в поле name объекта помещается имя Mark.
Ну а далее метод info() выводит нам это имя на экран.

Ответ: Mark
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Python Hub - сборище Питонистов
🧑‍🎓 Задача: Точная степень двойки Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией возведения в степень пользоваться нельзя! ❗️усложнением будет являться решение через…
Хочу сказать спасибо всем, кто присылал решения на данную задачу!

Кто не присылал, присоединяйтесь следующий раз!😎

Начнем с разбора кода рекурсией.
Возьмем первое же решение. (они все схожи)

def is_power_of_two(n): #Функция получает в себя число
if n == 1: #Проверка на то, что число равно 1
return "YES" #Возвращаем YES в ВЫЗОВ
elif n % 2 == 1: #Проверка на нечетность(степенью никак не может быть)
return "NO" #Возвращаем NO в ВЫЗОВ
else: #Иначе
return is_power_of_two(n//2) #Возвращаем вызов функции.

Хочется отметить, что возвращая вызов функции, мы вернем ТО, ЧТО ФУНКЦИЯ ВЕРНЕТ. То есть у нас получается возврат, возвращаемого значения. Надеюсь, поняли🙃.

А теперь то же самое, только при помощи while. Ничего особо не меняем и... вуаля.

def is_power_of_two(n): #Функция получает в себя число
while True:
if n == 1: #Проверка на то, что число равно 1
return "YES" #Возвращаем YES в ВЫЗОВ
elif n % 2 == 1: #Проверка на нечетность(степенью никак не может быть)
return "NO" #Возвращаем NO в ВЫЗОВ
else: #Иначе
n = n//2 #Уменьшаем значение n

Cвои вопросы по этой или другим темам вы можете задавать сюда или в предложку.

Скоро следующая задача!👨‍🎓
👍2👎1
Что выдаст код выше?
Anonymous Quiz
30%
True
57%
False
11%
Error
2%
Не знаю
👍3
Инкапсуляция в Python


Инкапсуляция - это один из четырех основных принципов объектно-ориентированного программирования. Она позволяет скрыть внутреннюю реализацию объекта от других объектов и защитить его состояние от неправильного использования.

➡️ Методы и атрибуты

В Python, чтобы скрыть атрибуты объекта, их нужно объявить как приватные, используя два подчеркивания перед именем атрибута. Например, для создания приватного атрибута name нужно написать __name. Также для доступа к этому атрибуту извне класса нужно использовать специальные методы get и set.

Метод get возвращает значение приватного атрибута, а метод set устанавливает новое значение. Эти методы должны быть определены в самом классе. Например:

class Person:
def __init__(self, name):
self.__name = name

def get_name(self):
return self.__name

def set_name(self, name):
self.__name = name

person = Person("John")
print(person.get_name()) # "John"
person.set_name("Mike")
print(person.get_name()) # "Mike"

#ООП #инкапсуляция
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
К посту выше.

Для чего нужна инкапсуляция вообще?

- Защита данных от внешнего доступа
- Предотвращение случайных изменений данных
- Упрощение взаимодействия с объектами
- Сокрытие сложной логики работы объекта от пользователя

Будет ли код работать без нее?

- Да, будет
🔥5