Maison  >  Article  >  développement back-end  >  Comment utiliser les expressions régulières Python pour l'évaluation inversée des expressions polonaises

Comment utiliser les expressions régulières Python pour l'évaluation inversée des expressions polonaises

PHPz
PHPzoriginal
2023-06-23 09:48:141651parcourir

Qu'est-ce que l'expression polonaise inversée ?

L'expression polonaise inversée, également connue sous le nom d'expression postfixe, est une méthode d'expression d'expressions arithmétiques qui ne nécessite pas de parenthèses pour distinguer la priorité des opérateurs. Sa particularité est que l'opérateur est derrière l'opérande. Par exemple, la conversion de l'expression infixe « 3 + 4 5 » en expression polonaise inversée est « 3 4 5 + ».

Que sont les expressions régulières Python ?

Les expressions régulières Python sont des outils de mise en correspondance et de traitement de données textuelles. Les expressions régulières peuvent être utilisées pour rechercher des modèles dans le texte. Python fournit le module "re" pour utiliser la fonctionnalité d'expression régulière.

Comment utiliser les expressions régulières Python pour l'évaluation inversée des expressions polonaises ?

La mise en œuvre de l'algorithme d'évaluation de l'expression polonaise inversée nécessite de suivre les étapes suivantes :

  1. Convertir l'expression polonaise inversée en une liste afin que chaque opérateur et opérande puisse être vérifié dans l'ordre
  2. Créer une pile vide
  3. Traverse A converti ; liste d'expressions polonaises inversées qui font ce qui suit pour chaque élément :
    a. S'il s'agit d'un nombre, placez-le en haut de la pile
    b. S'il s'agit d'un opérateur, faites apparaître les deux éléments supérieurs de la pile ; opération correspondante et poussez le résultat vers le haut de la pile ;
  4. Lorsque le parcours est terminé, l'élément en haut de la pile est le résultat de l'évaluation de l'expression polonaise inverse.

Nous pouvons utiliser des expressions régulières Python pour implémenter facilement la fonction de conversion d'expressions polonaises inversées en listes. L'exemple de code est le suivant :

import re

expression = "3 4 5 * +"
tokens = re.findall("d+|S", expression)

print(tokens) # ['3', '4', '5', '*', '+']

Ensuite, nous pouvons suivre les étapes ci-dessus pour implémenter l'algorithme d'évaluation de l'expression polonaise inversée. L'exemple de code est le suivant :

stack = []
for token in tokens:
    if re.match("d+", token):
        stack.append(int(token))
    else:
        operand2 = stack.pop()
        operand1 = stack.pop()
        if token == "+":
            stack.append(operand1 + operand2)
        elif token == "-":
            stack.append(operand1 - operand2)
        elif token == "*":
            stack.append(operand1 * operand2)
        elif token == "/":
            stack.append(int(operand1 / operand2))

result = stack.pop()

print(result) # 23

Ce code fonctionne en créant une pile vide, en parcourant la liste des expressions polonaises inversées, en vérifiant chaque opérateur et opérande, en effectuant l'opération correspondante sur la pile et enfin en renvoyant l'élément en haut de la pile comme résultat.

Conclusion

En utilisant les expressions régulières Python, vous pouvez facilement convertir des expressions polonaises inversées en listes et effectuer des calculs arithmétiques sur la pile. Les expressions régulières de Python sont très puissantes et peuvent nous aider à obtenir une correspondance et un traitement de texte rapides, flexibles et fiables.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn