Zen of Python
20.1K subscribers
1.29K photos
179 videos
36 files
3.3K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Задача об инверсии гласных

Вам даётся строка s. Напишите функцию, которая инвертирует порядок гласных:


>>> s = 'погода'
>>> invert_vowels(s)
... пагодо


#задача

@zen_of_python
👨‍💻2👍1🍌1
Поздравляем победителей

Задачу об идеальном квадрате верно решили:

@QuantumaStelata;
@nxiqns;
@WhonixMan;
@GeorKu;
@patriarch_chesslovo;
@maslyaev.

Кратчайшие верные решения предложили @QuantumaStelata:


x = lambda s: (s**(1/2)).is_integer()


@nxiqns:


def check_square_perfection(num):
    return (num**0.5).is_integer()


и @WhonixMan:


def check_square_perfection(num):
   return int(num**0.5) == num**0.5


Отдельно выделим решение @maslyaev, учитывающее случай очень больших чисел:


def check_square_perfection(area: int | float) -> bool:
  if area == 0 or area == 1: # На 0 и 1 ломается вавилонский метод
    return True
  if area < 4: # Отрицательная area даст False
    return False
  if area % 1 != 0: # Нецелая area даст False
    return False
  int_area = int(area)
  sqrt = int_area // 2
  while True:
    next_sqrt = (sqrt + int_area//sqrt)//2
    if next_sqrt == sqrt:
      break
    sqrt = next_sqrt
  return sqrt * sqrt == int_area


#задача

@zen_of_python
👍83🍌1