TGViewer
Cool and Fun Python Cool and Fun Python @python3k · 510 subscribers
Post #88 575
Праздники подходят к концу. А идеи для канала регулярно появляются 💡

Начнём пост с функции генерации уникальных токенов:
# Импортируем функцию token_urlsafe из модуля secrets
from secrets import token_urlsafe

# Определяем функцию generate_token с параметрами n и prefix, по умолчанию n=5, prefix='/'
def generate_token(n=5, prefix="/"):
"""Генерирует токен с префиксом для короткого url размерностью n без символа "-" в токене."""
# Входим в бесконечный цикл
while True:
# Генерируем случайный токен и добавляем префикс
token = f"{prefix}{token_urlsafe(n)}"
# Проверяем, содержит ли токен символ "-"
if "-" not in token:
# Если не содержит, то выходим из цикла
break
# Возвращаем значение переменной token
return token
А теперь вспомним про моржовый оператор в Python. Писал про него 🔗тут и 🔗тут.
Вспомнили? Тогда перепишем код покороче:
from secrets import token_urlsafe

def generate_token(n=5, prefix="/"):
while "-" in (token := f"{prefix}{token_urlsafe(n)}"):
pass
return token
Цикл, который ничего не делает в теле цикла, много чего делает в условии цикла.
Забирайте лайфхак в копилку 😉
  • 👍 2
  • ✍ 1
More from @python3k
  1. Feb 25, 2026Магические числа Нравится волшебство? А вот и зря. Магические числа - антипаттерн в програ…
  2. Feb 9, 2026Про ОС Оказывается мысли о том, что у программиста должен быть MacBook, а код надо писать…
  3. Feb 1, 2026Кто-нибудь пользовался новой удалённой отладкой в Python 3.14? Поделитесь своим опытом в к…
  4. Jan 25, 2026Redis хорош, но... Ничего не имею против хранения данный в ОЗУ при помощи Redis. Быстрый д…
  5. Jan 20, 2026В продолжение идеи про словарь функций Начало тут def handle_negative(): print("Обработка…
  6. Jan 11, 2026Альтернатива if-elif-else / match-case из далёкого прошлого Этот приём я узнал лет пять на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →