Python Hub - сборище Питонистов
Open in Telegram
Уголок счастья для любого питониста. Сотрудничество или заказы: @leshunist https://shcoder.dev - студия разработки ShcoderDevelopment https://t.me/pythonhub_chat - чат
Show more1 751
Subscribers
-124 hours
-67 days
-430 days
Posts Archive
Разбор 👨💻
Есть список a. Далее мы создаем переменную b - копию списка а.
Копия позволяет создать другой объект, но с тем же наполнением.
Проверка через is проверяет указывают ли переменные на один и тот же объект.
Ответ: нет —> False
⏺Оператор "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" являются разными объектами в памяти, даже если они содержат одинаковые значения.
Разбор 👨💻
Мы кладем в переменные a и b разные классы. Хоть и называются они одинаково, но у нас происходит пересоздание/переопределение. Если мы проверим через данные через команду id(a) , id(b) —> получим разные id'шники. Это абсолютно разные сущности.
🔔 Как перевести текст в речь?
📹 Вышел короткий видос на ютубе c подробной инструкцией. Кому интересно, посмотрите и поддержите! 📹
https://www.youtube.com/watch?v=AhqRZiKZhS0&ab_channel=Shcoder
Разбор 👨💻
У нас есть словарь с данными.
Циклом мы пробегаемся по парам, благодаря конструкции .items(), заносим ключи в переменную i, а значения в j поочередно.
Далее, при помощи метода extend(), добавляем ключ и значение в наш список L, распаковав их.
Таким образом мы каждый раз добавляем в список распакованные ключ и значение из пары.
⏺ Какая база данных используется в Django?
➡️ SQLite
По умолчанию Django использует SQLite в качестве базы данных. SQLite - это легковесная база данных, которая хранит данные в одном файле. Она хорошо подходит для небольших приложений и тестирования, но может быть недостаточно мощной для крупных и сложных приложений. Если вы планируете создавать крупные приложения, вам, возможно, потребуется использовать другую базу данных.
➡️ PostgreSQL и MySQL
Django также поддерживает PostgreSQL и MySQL в качестве баз данных. Эти базы данных могут обрабатывать большие объемы данных и подходят для крупных и сложных приложений. При использовании этих баз данных вы можете использовать мощные функции, такие как репликация, кластеризация и балансировка нагрузки, что делает их идеальным выбором для больших проектов.
#django
Разбор 👨💻
В переменную а мы кладем число 10, переведенной в строковый формат —> str(10) —> "10"
В переменную b мы кладем результат вычисления, переведенный в строковый формат str( 1000 / 100 ) —> str(10.0) —> "10.0"
Далее выводим проверку на равенство. Очевидно, что два этих ТЕКСТА ( тип строки ) не равны.
Ответ: False
К посту выше.
Для чего нужна инкапсуляция вообще?
- Защита данных от внешнего доступа
- Предотвращение случайных изменений данных
- Упрощение взаимодействия с объектами
- Сокрытие сложной логики работы объекта от пользователя
Будет ли код работать без нее?
- Да, будет
⏺ Инкапсуляция в 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"
#ООП #инкапсуляцияХочу сказать спасибо всем, кто присылал решения на данную задачу!
Кто не присылал, присоединяйтесь следующий раз!😎
Начнем с разбора кода рекурсией.
Возьмем первое же решение. (они все схожи)
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вои вопросы по этой или другим темам вы можете задавать сюда или в предложку.
Скоро следующая задача!👨🎓