Как я могу выполнять такую ​​алгебру, как яблоко + яблоко = 2 яблока? - PullRequest
4 голосов
/ 08 мая 2020

Можно ли определить алгебру для строковых объектов? Например:

  • яблоко + яблоко = 2 яблока
  • яблоко + апельсин = апельсин + яблоко
  • яблоко + 3,5 яблока = 4,5 яблока

Есть ли встроенные функции, которые могут это сделать? Необходимо ли создание структуры классов?

1 Ответ

5 голосов
/ 08 мая 2020

Вы можете использовать SymPy для определения символьных c переменных для этого типа алгебры.

>>> from sympy import *
>>> apple = symbols('apple')
>>> orange = symbols('orange')
>>> apple + apple
2*apple
>>> apple + orange
apple + orange
>>> apple + 3.5 * apple
4.5*apple
...