--Un programme qui reçoit une expression entière, la calcule et renvoie une valeur
practice.py
Expression = []
formula = input("Veuillez saisir la formule:")
for j in range(len(formula)):
    Expression.append(formula[j])
Value = []
Operator = []
Priority = []
def calculation():
    OpCnt = 0
    Value.append(0)
    nest = 0
    #Partie analyse
    for i in range(len(Expression)):
        chr = Expression[i]
        if chr >= '0' and chr <= '9':
            Value[OpCnt] = 10 * Value[OpCnt] + int(chr)
        if chr == '+' or chr == '-' or chr == '*' or chr == '/':
            Operator.append(chr)
            if chr == '+' or chr == '-':
                Priority.append(nest + 1)
            else:
                Priority.append(nest + 2)
            OpCnt = OpCnt + 1
            Value.append(0)
        if chr == '(':
            nest = nest + 10
        if chr == ')':
            nest = nest - 10
    #Partie calcul
    while OpCnt > 0:
        ip = 0
        i = 1
        while i < OpCnt:
            if Priority[ip] < Priority[i]:
                ip = i
            i = i + 1
        chr = Operator[ip]
        if chr == '+':
            Value[ip] = Value[ip] + Value[ip + 1]
        if chr == '-':
            Value[ip] = Value[ip] - Value[ip + 1]
        if chr == '*':
            Value[ip] = Value[ip] * Value[ip + 1]
        if chr == '/':
            Value[ip] = Value[ip] / Value[ip + 1]
        i = ip + 1
        while i < OpCnt:
            Value[i] = Value[i + 1]
            Operator[i - 1] = Operator[i]
            Priority[i - 1] = Priority[i]
            i = i + 1
        OpCnt = OpCnt - 1
    return Value[0]
practice.py
Expression = []
formula = input("Veuillez saisir la formule:")
for j in range(len(formula)):
    Expression.append(formula[j])
print(Expression)
--Lorsque vous entrez la formule 2 * (34- (5 + 67) / 8) donnée dans la question ...
console
['2', '*', '(', '3', '4', '-', '(', '5', '+', '6', '7', ')', '/', '8', ')']
--Liste de valeurs: stocke la partie numérique de l'expression --Operator list: stocke la partie opérateur de l'expression
practice.py
Value = []
Operator = []
Priority = []
practice.py
def calculation():
    OpCnt = 0
    Value.append(0)
    nest = 0
    #Partie de traitement d'analyse
    for i in range(len(Expression)):
        chr = Expression[i]
        if chr >= '0' and chr <= '9':
            Value[OpCnt] = 10 * Value[OpCnt] + int(chr)
        if chr == '+' or chr == '-' or chr == '*' or chr == '/':
            Operator.append(chr)
            if chr == '+' or chr == '-':
                Priority.append(nest + 1)
            else:
                Priority.append(nest + 2)
            OpCnt = OpCnt + 1
            Value.append(0)
        if chr == '(':
            nest = nest + 10
        if chr == ')':
            nest = nest - 10
    #Partie de traitement des calculs
    while OpCnt > 0:
        ip = 0
        i = 1
        while i < OpCnt:
            if Priority[ip] < Priority[i]:
                ip = i
            i = i + 1
        chr = Operator[ip]
        if chr == '+':
            Value[ip] = Value[ip] + Value[ip + 1]
        if chr == '-':
            Value[ip] = Value[ip] - Value[ip + 1]
        if chr == '*':
            Value[ip] = Value[ip] * Value[ip + 1]
        if chr == '/':
            Value[ip] = Value[ip] / Value[ip + 1]
        i = ip + 1
        while i < OpCnt:
            Value[i] = Value[i + 1]
            Operator[i - 1] = Operator[i]
            Priority[i - 1] = Priority[i]
            i = i + 1
        OpCnt = OpCnt - 1
    return Value[0]
--Déterminez si la valeur stockée dans la liste d'expressions est un nombre, un opérateur ou une parenthèse --Déterminer l'ordre du traitement arithmétique --Le contenu de chaque liste à la fin de la partie de traitement d'analyse est le suivant
Value = [2, 34, 5, 67, 8]
Operator = ['*', '-', '+', '/']
Priority =[2, 11, 21, 12]
--Calculer dans l'ordre en fonction des valeurs de la liste Priorité --Set Value [0], qui contient le résultat final du calcul, comme valeur de retour. ――Dans cette formule, vous pouvez recevoir la valeur de 50,0.
――C'était amusant ^^