Створити функцію, яка приймає 2 числа і знак і повертає результат в залежності від знаку. Я пробувала на ChatGPT але воно якусь фігню кидає
Ответы
Відповідь:
Ось функція, яка приймає 2 числа і знак і повертає результат в залежності від знаку:
```python
def operation(a, b, sign):
"""
Повертає результат операції над двома числами в залежності від знака.
Параметри:
a: Перше число.
b: Друге число.
sign: Знак операції.
Повертає:
Результат операції.
"""
if sign == "+":
return a + b
elif sign == "-":
return a - b
elif sign == "*":
return a * b
elif sign == "/":
return a / b
else:
raise ValueError("Невідомий знак операції")
```
Наприклад, якщо ми викликаємо функцію так:
```python
a = 10
b = 5
sign = "+"
print(operation(a, b, sign))
```
То функція поверне результат 15, оскільки 10 + 5 = 15.
Ось ще один варіант реалізації цієї функції:
```python
def operation(a, b, sign):
"""
Повертає результат операції над двома числами в залежності від знака.
Параметри:
a: Перше число.
b: Друге число.
sign: Знак операції.
Повертає:
Результат операції.
"""
operations = {
"+": lambda a, b: a + b,
"-": lambda a, b: a - b,
"*": lambda a, b: a * b,
"/": lambda a, b: a / b,
}
return operations[sign](a, b)
```
Цей варіант реалізації більш лаконічним, оскільки використовує словник для зберігання функцій, відповідальних за виконання різних операцій.
Ось повний код:
def operation(x, y, sign):
"""
Функція, яка приймає 2 числа і знак і повертає результат в залежності від знаку.
Аргументи:
x: перше число
y: друге число
sign: знак операції
Повертає:
Результат операції
"""
if sign == "+":
return x + y
elif sign == "-":
return x - y
elif sign == "*":
return x * y
elif sign == "/":
return x / y
else:
raise ValueError("Невідомий знак операції")
if __name__ == "__main__":
x = 10
y = 5
sign = "*"
print(operation(x, y, sign))