Top.Mail.Ru
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Программирование, питон, Python

Добрый вечер!
подскажите, пожалуйста, что не так в решении?
Задание:
При помощи Python опишите функцию solve, которая позволяет решать уравнение ax = b.
Входными параметрами для функции служат числа , возвращать функция должна значение . Если уравнение имеет бесконечное множество решений, то функция должна возвращать текстовую строку Any (с большой буквы, без дополнительных символов). Если уравнение решений не имеет, то функция должна возвращать текстовую строку Error (с большой буквы, без дополнительных символов).

то есть исходя из: Линейное уравнение ax = b при a ≠ 0 имеет один корень, при a = 0 и b ≠ 0, не имеет корней, при a = 0 и b = 0 имеет бесконечно много корней (любое число является его корнем) у меня получилось след. решение
Вот решение:
def solve(a, b):
x = b/a
if (a == 0) and (b == 0):
return "Any"
elif (a != 0) and (b == 0):
return '1'
else:
return "Error"

По дате
По рейтингу
Аватар пользователя
Новичок

Здравствуйте.
Вот моё решение:

12345678910
 def solve(a, b): 
    if (a == 0) and (b == 0): 
        return "Any" 
    elif a == 0 and b != 0: 
        return "Error" 
    else: 
        x = b/a 
        return x 
     
 
Аватар пользователя
Искусственный Интеллект

правильно понимаю, что сначала делишь (x = b/a), а потом лишь проверяешь, можно ли делить? и где return x ?

Аватар пользователя

а как же случай когда a и b оба неравны нулю например 2*x=10 тогда x=5 и корень 1, а у вас рассмотрен только случай когда a!=0 а b при этом только 0.
поэтому у вас случаи:
1) a == 0 and b == 0 тогда return "Any"
2) a != 0 and b != 0 тогда у вас 1 решение и нужно вернуть x ( return x)
3) a == 0 and b != 0 тогда return "Error"

Поэтому в программе любые два случая запишите через условия а третий через else