Python с нуля к первым деньгам за коды
320 subscribers
91 photos
44 videos
154 links
Download Telegram
#Python #Raise #ValueError


Ключевое слово raise в Python используется для явного вызова исключения (exception). Это позволяет программисту сигнализировать о том, что произошла ошибка или нежелательная ситуация, которая должна быть обработана.

Выражение raise ValueError("User inactive") в Python используется для генерации исключения с указанием конкретного сообщения об ошибке.

raise ValueError("Something went wrong")

Здесь ValueError — это тип исключения, а "Something went wrong" — это сообщение, которое будет связано с этим исключением.
ValueError — это стандартный класс исключений в Python, который используется, когда функция получает аргумент правильного типа, но с некорректным значением. Например:

🔸 Передано отрицательное число там, где ожидалось положительное.
🔸 Указан неверный параметр в функции.

Знаешь с кем поделиться?
Что значит "User inactive"?

Сообщение "User inactive" — это текстовое описание ошибки, которое передается в конструктор класса ValueError. Оно помогает объяснить, почему было вызвано исключение.
Такое выражение:
raise ValueError("User inactive")
оно означает, что программа обнаружила ситуацию, когда пользователь неактивен (например, его аккаунт заблокирован или он не выполнил вход), и это считается ошибкой, требующей обработки.

🔹Как это работает в программе?

Когда выполняется команда raise, программа прерывает выполнение текущего блока кода и "бросает" исключение. Если это исключение не обрабатывается (с помощью блока try-except), программа завершится с выводом трассировки стека (stack trace) и сообщения об ошибке.

def check_user_status(is_active):
if not is_active:
raise ValueError("User inactive")
print("User is active")

# Вызов функции
check_user_status(False)

Каким будет результат:

Traceback (most recent call last):
File "example.py", line 7, in <module>
check_user_status(False)
File "example.py", line 3, in check_user_status
raise ValueError("User inactive")
ValueError: User inactive

🔹 Как обработать это исключение?

Если вы хотите избежать завершения программы при возникновении исключения, используйте блок try-except:

def check_user_status(is_active):
if not is_active:
raise ValueError("User inactive")
print("User is active")

try:
check_user_status(False)
except ValueError as e:
print(f"Caught an exception: {e}")

Результат работы кода будет такой:
Caught an exception: User inactive

Здесь:
🔸 try — блок, в котором может возникнуть исключение.
🔸 except ValueError as e — перехватывает исключение типа ValueError и сохраняет сообщение об ошибке в переменной e.


Знаешь с кем поделиться?
#raise

📌 Почему полезно использование raise и исключений?

Это позволяет:

🔘 Ясно указывать ошибки в программе.
🔘 Обрабатывать ошибки в удобных местах программы.
🔘 Разделять логику обработки ошибок и основной код.


Подведём итог:

Команда raise ValueError("User inactive") в Python генерирует исключение типа ValueError с сообщением "User inactive". Она используется для сигнализации о том, что пользователь неактивен, и требует либо обработки (с помощью try-except), либо приведет к завершению программы с выводом трассировки стека.

❇️ Где полезно использование raise и исключений

🟢 Валидация данных
Проверка корректности входных данных (например, числа, строки, даты).
Обработка ошибок формата или диапазона значений.


🟢 Работа с файлами и ресурсами
Проверка доступности файлов, директорий или сетевых ресурсов.
Обработка ситуаций, когда ресурс недоступен или поврежден.


🟢 Сетевые взаимодействия
Обработка ошибок подключения, таймаутов или неверных ответов сервера.
Управление исключениями при работе с API или базами данных.


🟢 Бизнес-логика приложений
Реализация правил и ограничений системы (например, проверка прав доступа).
Сигнализация о нарушении логики работы программы.


🟢 Асинхронные операции
Обработка ошибок в многопоточных или асинхронных задачах.
Управление состоянием задач при возникновении непредвиденных ситуаций.


🟢 Тестирование и отладка
Выявление ошибок в тестовых сценариях.
Использование исключений для маркировки некорректного поведения кода.


🟢 Обработка пользовательского ввода
Проверка корректности действий пользователя.
Предотвращение выполнения операций при некорректных данных.


🟢 Интеграция с внешними системами
Обработка ошибок при взаимодействии с сторонними сервисами.
Управление исключениями при несоответствии ожидаемых и полученных данных.


🟢 Управление состоянием объектов
Проверка допустимости операций над объектами (например, вызов метода у неинициализированного объекта).
Сигнализация о нарушении целостности данных.


🟢 Логирование и мониторинг
Генерация исключений для фиксации критических событий.
Упрощение анализа проблем в работе системы.


🔴 Использование raise и исключений помогает сделать код более надежным, понятным и устойчивым к ошибкам.

Знаешь с кем поделиться?
📚🖇📌 Объектно-ориентированное программирование, или ООП, это новый подход к программированию.

☝️ Владеешь ООП, значит более востребован.

Знаешь с кем поделиться?
Введение в ООП и сравнение с процедурным программированием

#Python #ООП #Программирование #Кодинг #Обучение #ПервыйШаг

🚀 Что такое объектно-ориентированное программирование (ООП)?

"От простых скриптов к мощным приложениям! Учись писать код, который решает реальные задачи. Python, Java, C++ — все они используют ООП, чтобы создавать программы, которые работают как швейцарские часы. Твой первый шаг к профессионализму начинается здесь!"

Сравнение процедурного программирования и ООП:
Процедурное программирование:

Код организован в виде последовательности функций.
Подходит для простых задач.
Сложно поддерживать большие проекты.

Объектно-ориентированное программирование:

Код организован вокруг объектов.
Удобно для создания сложных систем.
Легче переиспользовать и масштабировать код.

Пример на Python (процедурный подход):

def greet(name):
print(f"Привет, {name}!")

def farewell(name):
print(f"Пока, {name}!")

greet("Александр")
farewell("Александр")

В следующем посте узнаете, что такое объекты в ООП и как они упрощают жизнь разработчикам.

Знаешь с кем поделиться?
Особенности ООП и роль объектов

#Python #ООП #Объекты #Программирование #Кодинг #Обучение

Заголовок:
🎯 Почему объекты — это сердце ООП?

Мотивационный слоган:
"Представь, что каждая часть твоего кода — это живой организм. Объекты в ООП помогают тебе создавать такие 'организмы', которые взаимодействуют друг с другом. Научись управлять ими, и ты сможешь построить целую вселенную из кода!"

Что такое объект в ООП?

Объект — это экземпляр класса.
Он объединяет данные (атрибуты) и поведение (методы).
Пример: объект "машина" может иметь атрибуты (цвет, модель) и методы (ехать, тормозить).


Особенный подход ООП:

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


Пример на Python (ООП):

class Car:
def __init__(self, color, model):
self.color = color
self.model = model

def drive(self):
print(f"{self.color} {self.model} едет!")

my_car = Car("красная", "Тойота")
my_car.drive()

В следующем посте расскажу, с чего начать изучение ООП и как быстро перейти от теории к практике.

Знаешь с кем поделиться?
Как начать изучать ООП

#Python #ООП #Классыиобъекты #Программирование #Кодинг #Обучение


💡 Первые шаги в изучении ООП: с чего начать?

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

Как начать изучение ООП?

Изучите базовые концепции:
Классы и объекты.
Атрибуты и методы.
Инкапсуляция, наследование, полиморфизм.

Практикуйтесь на реальных примерах:
Создайте класс "Пользователь" для системы авторизации.
Напишите класс "Товар" для интернет-магазина.

Используйте готовые библиотеки:
Изучите, как работают объекты в популярных фреймворках (например, Django или Flask).

Решайте задачи на платформах:
LeetCode, Codeforces, Codewars.

Пример на Python (практика):

class User:
def __init__(self, name, age):
self.name = name
self.age = age

def introduce(self):
print(f"Привет, меня зовут {self.name}, мне {self.age} лет.")

user1 = User("Анна", 25)
user1.introduce()


"Начните с маленького класса, и через месяц вы сможете создать свою первую программу на Python. Делитесь своими успехами в комментариях!"


Знаешь с кем поделиться?
Проблемы процедурного программирования

#Python #ООП #Программирование #Кодинг #Обучение #Разработка

⚠️ Почему процедурный код может стать головной болью?

"Когда проект растёт, простой код превращается в лабиринт. Процедурное программирование работает отлично... пока не нужно что-то изменить. Узнайте, как ООП помогает избежать хаоса и упрощает жизнь разработчикам!"

Проблема процедурного программирования:
Представьте ситуацию: вы написали программу для интернет-магазина. Всё работает отлично — функции аккуратно взаимодействуют друг с другом, данные передаются через аргументы. Но вот появляется новая задача: добавить возможность работы с несколькими валютами.

Что происходит?

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

Пример на Python (процедурный подход):

def calculate_price(price, discount):
return price * (1 - discount)

def display_price(price):
print(f"Цена: {price} рублей")

price = 100
discount = 0.2
final_price = calculate_price(price, discount)
display_price(final_price)

А теперь представьте, что нужно добавить валюту (например, доллары). Вам придётся менять обе функции и, возможно, другие части программы.

Знаешь с кем поделиться?
Как ООП решает эти проблемы

#Python #ООП #Программирование #Кодинг #Обучение #Разработка

🎯 Как ООП спасает от хаоса при изменении кода?


"Объектно-ориентированное программирование — это не просто модная концепция, а мощный инструмент для управления сложными проектами. Изменения в коде становятся проще, а поддержка — приятнее. Убедитесь сами!"

Как ООП решает проблему?

В ООП данные и поведение объединены в объектах. Если нужно внести изменения, достаточно изменить только один класс, а не весь код. Например, добавление валюты можно реализовать через наследование или атрибуты объекта.

Пример на Python (ООП):
class Product:
def __init__(self, name, price, currency="RUB"):
self.name = name
self.price = price
self.currency = currency

def apply_discount(self, discount):
self.price *= (1 - discount)

def display_price(self):
print(f"Цена: {self.price} {self.currency}")

product = Product("Телефон", 100, "USD")
product.apply_discount(0.2)
product.display_price()

🔷 Что изменилось?

🔹 Добавление валюты требует минимальных усилий: просто добавьте атрибут currency.
🔹 Логика работы с ценами сосредоточена в одном классе.
🔹 Изменения не затрагивают остальной код

Знаешь с кем поделиться?
🔎 Сравнение подходов и выводы 🧮

#Python #ООП #Программирование #Кодинг #Обучение #Разработка

📊 Процедурное программирование vs ООП: где легче вносить изменения?


"Сложные проекты требуют гибкости. ООП позволяет адаптироваться к изменениям без боли, в то время как процедурный код может превратиться в кошмар. Выбирайте подход, который сделает вашу работу эффективнее!"

Пример изменения кода:

Процедурный подход: Чтобы добавить валюту, нужно изменить все функции, связанные с ценами.
ООП: Добавьте атрибут currency в класс Product, и всё готово.

🔴Вывод:

📚 ООП делает код более организованным и устойчивым к изменениям. Если вы планируете развивать проект, выбирайте ООП — это инвестиция в будущее вашего кода.


"Попробуйте переписать одну из своих старых программ на ООП и увидите, насколько проще станет её поддерживать. Делитесь результатами в комментариях!"

Знаешь с кем поделиться?
Что такое класс?

"Понимание — первый шаг к мастерству."
— Алан Кей

Класс — это как чертёж дома. Он не дом, а описание, как его построить.
В программировании класс определяет, какие данные и действия будут у объектов.
class Кот:
def __init__(self, имя):
self.имя = имя

Поздравляю! 😊
Теперь ты можешь создавать котов! 🐱
Класс — основа ООП. Начни с него!

Знаешь с кем поделиться?
Что такое объект?

"Идеи — ничто без исполнения."
— Томас Эдисон

Объект — это экземпляр класса. Как дом, построенный по чертежу.
class Кот:
def __init__(self, имя):
self.имя = имя

мурзик = Кот("Мурзик") # объект

мурзик — это настоящий кот в памяти программы.
Без объектов классы — просто идеи. Сделай их реальными!

Знаешь с кем поделиться?
Атрибуты — характеристики объекта

"Детали делают совершенство."

— Леонардо да Винчи

Атрибуты — это данные объекта: имя, возраст, цвет.

class Кот:
def __init__(self, имя, возраст):
self.имя = имя
self.возраст = возраст

мурзик = Кот("Мурзик", 3)
print(мурзик.имя) # Мурзик
print(мурзик.возраст) # 3


Атрибуты делают объект уникальным.
Заполняй детали — и твои программы оживут!/


Знаешь с кем поделиться?

#class #Атрибуты
Методы — действия объекта

"Действие — ключ к успеху."

— Пифагор

Методы — это функции внутри класса. То, что объект может делать.

class Кот:
def мяукать(self):
print("Мяу!")

мурзик = Кот()
мурзик.мяукать() # Мяу!


Методы оживляют объекты.
Научи их действовать — и они станут твоими помощниками!

Знаешь с кем поделиться?
Полный пример — Автомобиль

"Простота — высшая форма изысканности."

— Леонардо да Винчи

Соберём всё вместе:

class Автомобиль:
def __init__(self, марка):
self.марка = марка
self.скорость = 0

def ускориться(self):
self.скорость += 10
print(f"{self.марка} едет со скоростью {self.скорость}")

tesla = Автомобиль("Tesla")
tesla.ускориться() # Tesla едет со скоростью 10

Класс + объект + атрибуты + методы = мощь ООП.
Ты уже на шаг ближе к настоящему коду!

Знаешь с кем поделиться?
This media is not supported in your browser
VIEW IN TELEGRAM
Объект всегда в поле зрения, метод, просто класс🔥
Один класс — много объектов

"Повторное использование — путь к эффективности."

— Как говорил попугай Кеша: "Эх вы, жизни не нюхали".🦜
То
что повторно использовали, можно ещё раз повторно использовать.🐄 😃

Класс можно использовать многократно:

class Кот:
def __init__(self, имя):
self.имя = имя
def спать(self):
print(f"{self.имя} сладко спит...")

мурзик = Кот("Мурзик")
бусинка = Кот("Бусинка")

мурзик.спать() # Мурзик сладко спит...
бусинка.спать() # Бусинка сладко спит...

Один класс — тысячи объектов.
Экономь время, пиши умнее!

Знаешь с кем поделиться?
This media is not supported in your browser
VIEW IN TELEGRAM
Вот это уровень, я понимаю.
😉
Прекрасный подарок профессиональным строителям, да и всем любителям. Импортозамещателям следует обратить внимание.
😊