darina46722
@darina46722

Как реализовать функцию на Python? Как правильно думать?

Описание задания:
get_square_roots
Эта функция должна принимать число и возвращать список квадратных корней этого числа. Например для аргумента 9 функция должна вернуть [-3, 3]. Тест ожидает, что сначала в списке будет идти отрицательный корень, если таковой имеется. Также корень может быть и один, если аргумент равен нулю. А ещё корней может и не быть, если аргумент отрицательный.

>>> get_square_roots(25)
[-5.0, 5.0]
Для решения используйте функцию sqrt из модуля math (модуль нужно будет импортировать).

Моё решение:
from math import sqrt


def get_square_roots(random_number):
    if random_number > 0:
        random_number = int(sqrt(random_number))
        print([-random_number, random_number])
    elif random_number < 0:
        print("unavailabale activity")
    else random_number == 0:
        random_number = int(sqrt(random_number))
        print(random_number)
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
dimonchik2013
@dimonchik2013
...нечеловечески он пел, нечеловечески танцуя...
return
везде вместо print

возврат делать от менее ресурсоемкого к более

ресурсы:

< 0 = сравнение
0 - сарвнение, корень 0, вычислять не нужно
>0 -вычисляешь

итого:

def get_square_roots(random_number):
    if random_number < 0:
        return None
    if random_number == 0:
        return 0
    return [-sqrt(random_number), sqrt(random_number)]  # не знаю зачем у теюя int, думаю, карго
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
h0w4rd
@h0w4rd
Junior Node.js dev.
Я бы так сделал, все как надо и оптимизировано:
def get_sqrt(number):
    if number < 0:
        return []

    sqrt = math.sqrt(number)

    if number % 2 == 0:
        return [sqrt]

    return [-sqrt, sqrt]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы