Si les utilisateurs sont supposés entrer des formules dans votre programme, je suggère de le conserver tel quel. La raison en est que l'exponentiation en mathématiques est right-associative, ce qui signifie que l'exécution va du plus haut niveau vers le bas. Par exemple: a**b**c = a**(b**c)
, par convention. Il y a quelques programmes qui utilisent la résolution ascendante de l'exponentiation empilée - MS Excel et LibreOffice sont certains d'entre eux, cependant, c'est contre la convention ordinaire, et toujours confus de l'enfer hors de moi.
Si vous souhaitez remplacer ce comportement, et toujours être mathématiquement correct, vous devez utiliser des crochets.
Vous pouvez toujours déclarer votre propre méthode d'alimentation qui résoudrait la façon dont vous le souhaitez - quelque chose comme numpy.pow()
. Vous pourriez surcharger le built-in, mais c'est trop hâté.
Read this
Que voulez-vous exactement faire? Vous avez changé l'ordre mathématique ... – MooingRawr
Vous voulez que l'exponentiation se lie plus étroitement que la multiplication? Vous devrez écrire du code qui passe et insère des parenthèses avant de le passer à votre fonction d'évaluation. –