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

В переменную а мы кладем число 10, переведенной в строковый формат —> str(10) —> "10"
В переменную b мы кладем результат вычисления, переведенный в строковый формат str( 1000 / 100 ) —> str(10.0) —> "10.0"

Далее выводим проверку на равенство. Очевидно, что два этих ТЕКСТА ( тип строки ) не равны.
Ответ: False
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Какая база данных используется в Django?


➡️ SQLite

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

➡️ PostgreSQL и MySQL

Django также поддерживает PostgreSQL и MySQL в качестве баз данных. Эти базы данных могут обрабатывать большие объемы данных и подходят для крупных и сложных приложений. При использовании этих баз данных вы можете использовать мощные функции, такие как репликация, кластеризация и балансировка нагрузки, что делает их идеальным выбором для больших проектов.
#django
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

У нас есть словарь с данными.
Циклом мы пробегаемся по парам, благодаря конструкции .items(), заносим ключи в переменную i, а значения в j поочередно.

Далее, при помощи метода extend(), добавляем ключ и значение в наш список L, распаковав их.

Таким образом мы каждый раз добавляем в список распакованные ключ и значение из пары.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Что выдаст код выше?
Anonymous Quiz
45%
True
27%
False
14%
Cat
12%
Error
2%
Не знаю
👍3
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Мы кладем в переменные a и b разные классы. Хоть и называются они одинаково, но у нас происходит пересоздание/переопределение. Если мы проверим через данные через команду id(a) , id(b) —> получим разные id'шники. Это абсолютно разные сущности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Оператор "is" в Python

Оператор "is" в Python сравнивает идентичность объектов, а не их эквивалентность. Это означает, что он проверяет, указывают ли две переменные на один и тот же объект в памяти. Если два объекта имеют одинаковое значение, это не обязательно означает, что они идентичны. Они могут быть разными объектами в памяти.

➡️ Примеры использования оператора "is"

Вот примеры использования оператора "is" в Python:

x = [1, 2, 3]
y = x
print(x is y) # True


В этом примере мы создали список "x" и присвоили его переменной "y". Затем мы использовали оператор "is", чтобы проверить, указывают ли "x" и "y" на один и тот же объект в памяти. Результатом является "True", потому что "x" и "y" указывают на один и тот же объект в памяти.

x = [1, 2, 3]
y = [1, 2, 3]
print(x is y) # False


В этом примере мы создали два разных списка "x" и "y", которые содержат одинаковые значения. Затем мы использовали оператор "is", чтобы проверить, указывают ли "x" и "y" на один и тот же объект в памяти. Результатом является "False", потому что "x" и "y" являются разными объектами в памяти, даже если они содержат одинаковые значения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Что выдаст код выше?
Anonymous Quiz
60%
True
33%
False
2%
Error
4%
Не знаю
👍3
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Есть список a. Далее мы создаем переменную b - копию списка а.
Копия позволяет создать другой объект, но с тем же наполнением.

Проверка через is проверяет указывают ли переменные на один и тот же объект.

Ответ: нет —> False
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
*новая картинка
👍3