Сегодня мы создадим простое приложение на Python, которое подключается к API CoinGecko и выводит текущую цену выбранной криптовалюты. Всё это с помощью библиотеки Typer, которая делает разработку командных приложений лёгкой и быстрой.
pip install requests typer
Мы будем использовать бесплатное API от CoinGecko. Оно не требует регистрации и API-ключа, что делает его очень удобным для быстрого старта.
Теперь создадим файл
crypto_checker.py и напишем код, который будет получать и выводить актуальную цену криптовалюты:import requests
import typer
app = typer.Typer()
API_URL = "https://api.coingecko.com/api/v3/simple/price"
@app.command()
def get_crypto_price(crypto: str, currency: str = "usd"):
"""Получаем текущую цену криптовалюты в указанной валюте"""
try:
response = requests.get(
f"{API_URL}?ids={crypto}&vs_currencies={currency}")
data = response.json()
price = data[crypto][currency]
return price
except KeyError:
raise ValueError(f"Не удалось получить цену для криптовалюты:{crypto}")
@app.command()
def check_price(crypto: str, currency: str = "usd"):
"""Выводит текущую цену криптовалюты в указанной валюте"""
try:
price = get_crypto_price(crypto, currency)
typer.echo(f"Текущая цена {crypto.upper()} в {
currency.upper()}: {price:.2f}")
except ValueError as e:
typer.echo(f"Ошибка: {e}")
if __name__ == "__main__":
app()
Запускаем скрипт с нужными параметрами для проверки цены криптовалюты:
python crypto_checker.py check-price bitcoin --currency rub
Результат:
Текущая цена BITCOIN в RUB: 10197106.00Как это все выглядит в терминале, вы можете посмотреть на второй картинке поста.
Библиотека Typer отлично подходит для разработчиков, которым нужно создать удобные CLI для своих приложений с минимальной настройкой и высокой читаемостью кода.
Оставляйте реакции, если понравился пост. А также, пишите в комментарии, что бы вы хотели увидеть еще в таком формате.👨💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤6🔥3
Pympler — это инструмент для анализа использования памяти в Python. Он помогает выявить избыточное потребление памяти, утечки и другие проблемы. С помощью этой библиотеки можно отслеживать размер и продолжительность процессов вашего приложения во время его работы.
from pympler import tracker
tr = tracker.SummaryTracker()
function_without_side_effects()
tr.print_diff()
types | # objects | total size
======= | =========== | ============
dict | 1 | 280 B
list | 1 | 192 B
$ pip install pympler
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥3
Области видимости — это не только про
global и nonlocal, но и про то, как Python обрабатывает вложенные функции, исключения, классы и многое другое. В этом уроке, разберём всё на понятных примерах и полезных схемах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥2
def func(nums):
nums = nums + [4, 5]
nums[0] = 99
return nums
x = [1, 2, 3]
y = func(x)
print(x, y)
Выберите вариант ответа ниже
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16😁1
Ответ:
Anonymous Quiz
46%
[1, 2, 3] [99, 2, 3, 4, 5]
23%
[99, 2, 3] [99, 2, 3, 4, 5]
12%
[1, 2, 3] [1, 2, 3, 4, 5]
19%
Ошибка
👍6❤1
1. Awesome Python
Мастхэв подборка лучших библиотек и инструментов для Python. Категории: веб-разработка, парсинг, машинное обучение и многое другое.
2. Real Python
Материалы от Real Python с примерами кода для изучения языка. Отлично подойдёт для новичков.
3. Python Patterns
Шаблоны проектирования для Python. Помогает понять, как писать код, который легко поддерживать.
4. TheAlgorithms/Python
Библиотека алгоритмов с реализациями на Python. Отлично подходит для изучения структур данных и алгоритмов.
5. FullStack Python
Гид по созданию полного стека приложений с использованием Python: от баз данных до фронтенда.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤2🔥2
Когда нужно работать с несколькими списками одновременно,
zip() помогает объединить их элементы в пары и работать с ними в одном цикле. Это упрощает код, делает его более читаемым и сокращает количество ошибок, особенно когда списки взаимосвязаны. names = ['Том', 'Артур', 'Чарли']
scores = [95, 82, 88]
for name, score in zip(names, scores):
print(f"{name} набрал {score} балов")
Том набрал 95 балов
Артур набрал 82 балов
Чарли набрал 88 балов
Подходит для любых итерируемых объектов: списков, кортежей, строк, словарей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3
Она включает всё, что нужно: от основ до продвинутых тем, с примерами кода и практическими советами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
any() и all() — это две встроенные функции, которые помогают быстро проверять списки (или другие коллекции) на соответствие условиям.any() используется, если нужно узнать, есть ли в коллекции хоть один элемент, удовлетворяющий условию. Например:nums = [0, 0, 1]
if any(nums):
print("Есть ненулевые элементы!") # True, потому что 1 ненулевой
Это полезно при проверке, нужно ли выполнять действие.
all() помогает проверить, выполняются ли условия для всех элементов. Например:nums = [2, 4, 6]
if all(n % 2 == 0 for n in nums):
print("Все числа чётные")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥2
Можно сколько угодно упираться в сухую теорию, но без применения своих знаний на практике, научиться программировать невозможно.
В этом ролике рассмотрите несколько проектов для начинающих python-разработчиков. Эти проекты помогут вам закрепить теорию, применить полученные знания на практике и набить руку в написании кода. Некоторые из них даже можно добавить в будущее портфолио.
Для тех, у кого проблемы с ютубом, загружу видео в комменты🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11
Позволяет задавать консольным приложениям более привлекательный и удобный интерфейс. С ее помощью вы можете изменять стиль и цвет текста, а также отображать таблицы, разметку и код с подсветкой синтаксиса.
pip install rich
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
SnakeViz — это визуализатор профилирования Python-кода. Если ваш скрипт работает медленно и нужно понять, где именно теряется производительность, этот инструмент поможет всё наглядно увидеть.
1. Установите библиотеку:
pip install snakeviz
2. Запустите профилирование с помощью встроенного
cProfile:python -m cProfile -o output.prof ваш_скрипт.py
3. Визуализируйте результаты:
snakeviz output.prof
Интерфейс откроется в браузере, показывая, какие функции занимают больше всего времени.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥3
Статья предлагает пошаговое руководство по подключению платежей через ЮКассу в Telegram-боте на Python с использованием aiogram 3. Рассматриваются важные нюансы, с которыми можно столкнуться, даже если есть базовая документация.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥3
SQLite — отличный выбор для локального хранения данных, и
sqlite3 в Python делает его использование простым и удобным. Давайте разберём основные операции с базами данных, начиная с создания, вставки данных, обновления и удаления.import sqlite3
# Подключение к базе данных (создаётся новая, если не существует)
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)
''')cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Alice', 30))
conn.commit() # Сохраняем измененияcursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:
print(row)cursor.execute('UPDATE users SET age = ? WHERE name = ?', (31, 'Alice'))
conn.commit()cursor.execute('DELETE FROM users WHERE name = ?', ('Alice',))
conn.commit()conn.close().Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
Шифр Цезаря - это простой метод шифрования, при котором каждая буква в сообщении сдвигается на фиксированное количество позиций в алфавите. Название этого шифра происходит от имени знаменитого римского полководца Цезаря, который использовал его для обмена сообщениями со своими союзниками.
Давайте наглядно разберём, как он работает с простым примером:
Исходный текст: HELLO
Сдвиг: 3
def caesar_cipher(text, shift):
result = ""
for char in text:
if char.isalpha(): # Проверка, является ли символ буквой
shift_base = ord('A') if char.isupper() else ord('a')
result += chr((ord(char) - shift_base + shift) % 26 + shift_base)
else:
result += char # Оставляем не буквенные символы без изменений
return result
# Пример использования
text = "HELLO"
shift = 3
print(f"Зашифрованный текст: {caesar_cipher(text, shift)}")
Результат: KHOOR
ord(char) возвращает ASCII-код символа.shift позиций и используем % 26, чтобы обойти границы алфавита.Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤯2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15😁5😱1
deepface — это легкая в использовании библиотека для Python, предназначенная для распознавания лиц и анализа их характеристик, таких как возраст, пол, эмоции и расы.
Особенность Deepface заключается в использовании гибридного подхода, который объединяет современные модели, такие как VGG-Face, FaceNet, OpenFace, DeepFace, DeepID, ArcFace, Dlib, SFace и GhostFaceNet.
В качестве примера, предположим, что нам необходимо сравнить пару лиц:
from deepface import DeepFace
result = DeepFace.verify(
img1_path = "face_1.jpg",
img2_path = "face_2.jpg",
)
В результате мы получим словарь c данными анализа двух изображений.
Также, возможно и анализировать такие данные, как: возраст, пол, раса, эмоции. Например:
objs = DeepFace.analyze(
img_path = "img4.jpg",
actions = ['age', 'gender', 'race', 'emotion'],
)
pip install deepface
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤1
CheckiO — это платформа, где ты можешь решать задачи, ломать голову над интересными кейсами и смотреть, как справились другие. Отличный способ улучшить навыки и научиться думать нестандартно.
Здесь всё просто: выбираешь задачу, решаешь, а потом сравниваешь своё решение с решениями сообщества. Идеально для тех, кто любит учиться через практику и немного посоревноваться.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Курс охватывает ключевые темы Python: от модели данных, работы с последовательностями, словарями и Unicode до более сложных тем, таких как функции, декораторы, аннотации типов, паттерны проектирования, наследование, итераторы и генераторы. Также рассматриваются конкурентность, асинхронное программирование, метапрограммирование, динамические атрибуты и дескрипторы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1