Heim Backend-Entwicklung Python-Tutorial Eingehende Analyse der vier Rechenoperationen

Eingehende Analyse der vier Rechenoperationen

Mar 26, 2017 pm 04:50 PM
Vier Rechenoperationen

Wie berechnet man den arithmetischen Ausdruck einer Zeichenfolge?

Wenn Sie zum Abgleichen regulären Ausdruck verwenden, ist das etwas undenkbar, und die allgemeine Idee besteht darin, Rekursion zu entwerfen, aber in Python Es wird dringend davon abgeraten, Rekursion zu verwenden,

, da diese nicht nur eine Begrenzung der Rekursionstiefe hat (normalerweise 1000 Stapelrahmen), sondern auch keine Schwanzrekursionsoptimierung unterstützt.

Der einfachste Weg besteht darin, den Ausdruck zuerst in einen Präfixausdruck umzuwandeln und dann das Ergebnis über den Präfixausdruck zu berechnen.

Präfixausdruck ( vor Operator ) wird auch polnischer Ausdruck genannt, und der entsprechende Postfixausdruck (hinter dem Operator) wird auch umgekehrter polnischer Ausdruck genannt, und in unserem Leben , und

die häufigsten Programmiersprachenverwenden Infix-Ausdrücke.

Die Regeln zum Konvertieren von Infix-Ausdrücken in Präfix-Ausdrücke:

 (1) Initialisieren Sie zwei Stapel: Operatorstapel S1 und Stapel S2, der Zwischenergebnisse speichert;

 ( 2) Scannen der Infix-Ausdruck von rechts nach links

(3) Wenn Sie auf den Operanden stoßen, schieben Sie ihn in S2

(4) Wenn Sie auf den Operator stoßen, vergleichen Sie ihn mit S1 Die Priorität von Operator oben im Stapel :

 (4-1) Wenn S1 leer ist oder der Operator oben im Stapel eine rechte Klammer „)“ ist, schieben Sie diesen Operator direkt auf Stapel

 (4-2) Andernfalls, wenn die Priorität höher oder gleich dem Operator oben auf dem Stapel ist, schieben Sie den Operator in S1

 (4-3) Andernfalls drücken Sie Der oberste Operator des S1-Stapels wird entnommen und in S2 verschoben.

Gehen Sie erneut zu (4-1), um ihn mit dem neuen obersten Stapeloperator in S1 zu vergleichen.

(5) Wenn Sie auf Klammern stoßen:

  (5-1) Wenn es sich um eine rechte Klammer ") handelt, drücken Sie S1 direkt

(5-2) Wenn es sich um eine linke Klammer "(" handelt, öffnen Sie den oberen Teil der S1 stapelt den Sequenzoperator und drückt S2, bis die rechte Klammer gefunden wird.

Zu diesem Zeitpunkt verwerfen Sie dieses Klammerpaar.

(6) Wiederholen Sie die Schritte (2) bis (5), bis Die äußerste linke Seite des Ausdrucks

(7) Pop die verbleibenden Operatoren in S1 nacheinander ein und schiebe sie in S2

(8) Pop weg die Elemente in S2 nacheinander und gebe sie aus, und Das Ergebnis ist das Infix. Das größte Merkmal der Verwendung von Präfixausdrücken zur Berechnung besteht darin, dass

Infixausdrücke in Präfixausdrücke umwandelt

Beispiel:

def mid_to_prev(expressions: str):
    priority = {  # 运算符的优先级
        "/": 1,
        "//": 1,
        "*": 1,
        "%": 1,
        "+": 0,
        "-": 0,
        "**": 2 }
    expression_list = expressions.split() # 
    number_stack = [] # 数字栈
    symbol_stack = [] # 运算符栈
    for x in expression_list[::-1]:
        if x.isdigit():             
            number_stack.insert(0, x)  # 如果是整数直接存进去
        else:
            if x == '(':         # 如果是 ( 弹出运算符栈中的运算符直到遇到 ( 
                pop_symbol = symbol_stack[0]
                while pop_symbol != ')':
                    pop_symbol = symbol_stack.pop(0)
                    number_stack.insert(0, pop_symbol)
                    pop_symbol = symbol_stack[0]
                else:
                    symbol_stack.pop(0)
            elif len(symbol_stack) == 0 or symbol_stack[0] == ')' or x == ')' or priority[x] >= priority[symbol_stack[0]]:
                symbol_stack.insert(0, x)  # 当符号栈为空 或者 遇到 ) 或者栈顶的符号是 ) 或者优先级大于等于符号栈顶的运算符优先级 直接存进去

            elif priority[x] < priority[symbol_stack[0]]:  # 优先级小于符号栈顶元素的时候
                while symbol_stack[0] != &#39;)&#39; and priority[x] < priority[symbol_stack[0]]:
                    number_stack.insert(0, symbol_stack.pop(0))
                else:
                    symbol_stack.insert(0, x)
    else:
        while len(symbol_stack) != 0:
            number_stack.insert(0, symbol_stack.pop(0))
    return number_stack
Nach dem Login kopieren

Es ist einfach, den konvertierten Präfixausdrucksstapel zu bedienen Eingehende Analyse der vier Rechenoperationen

(1) Eine neue Liste initialisieren

(2) Durchlaufen Sie die Präfixausdrucksliste von rechts nach links Nummer, speichern Sie sie in einer neuen Liste

(3) Wenn Sie auf einen Operator stoßen, rufen Sie die ersten beiden Nummern in der neuen Liste auf, fahren Sie mit dem Vorgang fort und speichern Sie dann das Ergebnis in der neuen Liste

(4) Bis die Präfixausdrucksliste in der neuen Liste durchlaufen wird, gibt es nur ein Element in der neuen Liste, nämlich das Endergebnis

Erhalten Sie das Gesamtergebnis:

def calc(number1,number2,calc): # 两个数运算
    if calc == &#39;/&#39;:
        return number1 / number2
    elif calc == &#39;*&#39;:
        return number1 * number2
    elif calc == &#39;//&#39;:
        return number1 // number2
    elif calc == &#39;**&#39;:
        return number1 ** number2
    elif calc == &#39;%&#39;:
        return number1 % number2
    elif calc == &#39;+&#39;:
        return number1 + number2
    elif calc == &#39;-&#39;:
        return number1 - number2
Nach dem Login kopieren

Beispiel:

def operation(stack_list:list):
    number = []
    for x in stack_list[::-1]:
        if x.isdigit():
            number.insert(0, x)
        else:
            first = number.pop(0)
            second = number.pop(0)
            tmp = calc(int(first),int(second), x)
            number.insert(0,tmp)
    return number.pop(0)
Nach dem Login kopieren
Das vorherige Ergebnis des Präfixausdrucks:

Eingehende Analyse der vier Rechenoperationen

Das überprüfte Ergebnis ist korrekt Eingehende Analyse der vier Rechenoperationen

Hinweis: Der Ausdruck muss durch Leerzeichen getrennt werden

es werden nur ganze Zahlen abgeglichen

.

Das obige ist der detaillierte Inhalt vonEingehende Analyse der vier Rechenoperationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie die Go-Sprache vier arithmetische Operationen implementiert Wie die Go-Sprache vier arithmetische Operationen implementiert Dec 21, 2023 pm 04:46 PM

In der Go-Sprache werden die vier arithmetischen Operationen durch grundlegende arithmetische Operatoren implementiert. Vier häufig verwendete Rechenoperationen: 1. Addition (+): wird verwendet, um zwei Zahlen zu addieren; 2. Subtraktion (-): wird verwendet, um die zweite Zahl von der ersten Zahl zu subtrahieren; 3. Multiplikation (*): wird verwendet, um zwei Zahlen zu multiplizieren; 4. Division (/): wird verwendet, um die erste Zahl durch die zweite Zahl zu dividieren.

Bibliothek mit vier arithmetischen Operationen, geschrieben in der Go-Sprache: ein einfaches und effizientes mathematisches Berechnungstool Bibliothek mit vier arithmetischen Operationen, geschrieben in der Go-Sprache: ein einfaches und effizientes mathematisches Berechnungstool Dec 23, 2023 am 11:49 AM

Bibliothek mit vier arithmetischen Operationen, geschrieben in der Go-Sprache: einfache und effiziente mathematische Berechnungswerkzeuge Mit der kontinuierlichen Weiterentwicklung der Computertechnologie spielen mathematische Berechnungen eine immer wichtigere Rolle in unserem täglichen Leben und Arbeiten. Unabhängig davon, ob Sie komplexe Datenanalysen oder einfache Datenverarbeitung durchführen, sind mathematische Berechnungen ein unverzichtbarer Bestandteil. Um die Effizienz und Genauigkeit der Berechnungen zu verbessern, müssen wir uns auf hochwertige mathematische Berechnungswerkzeuge verlassen. Als moderne, leistungsstarke Programmiersprache bietet die Go-Sprache umfangreiche und leistungsstarke Werkzeuge zur Durchführung mathematischer Operationen. In diesem Artikel wird vorgestellt

Implementieren Sie einen einfachen arithmetischen Operator mithilfe der Go-Sprache Implementieren Sie einen einfachen arithmetischen Operator mithilfe der Go-Sprache Dec 23, 2023 pm 02:52 PM

Die Go-Sprache ist eine statisch typisierte kompilierte Open-Source-Sprache, die aufgrund ihrer Einfachheit, Effizienz und einfachen Erweiterung große Aufmerksamkeit und Verwendung gefunden hat. In diesem Artikel wird erläutert, wie Sie mithilfe der Go-Sprache einen einfachen Rechner mit vier Rechenoperationen schreiben, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir mehrere grundlegende Datenstrukturen definieren, um operative Ausdrücke und Operatoren darzustellen. Wir können Strukturen zur Darstellung von Operatoren und Operanden verwenden und Aufzählungstypen verwenden, um den Wertebereich von Operatoren einzuschränken. typeOperatorintcons

Eine einfache Einführung in die vier Rechenoperationen der Go-Sprache Eine einfache Einführung in die vier Rechenoperationen der Go-Sprache Feb 19, 2024 pm 12:18 PM

Leitfaden „Erste Schritte“: Lernen Sie die Schritte zum Implementieren der vier arithmetischen Operationen der Go-Sprache von Grund auf. Als einfache und effiziente Programmiersprache erfreut sich die Go-Sprache bei Programmierern immer größerer Beliebtheit. Es ist nicht kompliziert, die vier arithmetischen Operationen in der Go-Sprache zu implementieren. Dieser Artikel beginnt bei Null und führt Sie Schritt für Schritt durch das Erlernen der vier arithmetischen Operationen in der Go-Sprache. Dieser Artikel enthält spezifische Codebeispiele, damit Sie besser verstehen, wie die einzelnen Schritte implementiert werden. Schritt 1: Erstellen Sie ein neues Go-Sprachprojekt. Zuerst müssen wir ein neues Go-Sprachprojekt erstellen. Führen Sie Folgendes in der Befehlszeile aus

Grundlegendes Tutorial zur Go-Sprache: Implementierungsmethoden für vier arithmetische Operationen Grundlegendes Tutorial zur Go-Sprache: Implementierungsmethoden für vier arithmetische Operationen Dec 23, 2023 am 09:00 AM

Grundlegendes Tutorial zur Go-Sprache: Implementierungsmethoden der vier arithmetischen Operationen, die spezifische Codebeispiele erfordern Einführung: Go-Sprache wird als Programmiersprache für die Entwicklung cloudnativer Anwendungen von immer mehr Entwicklern bevorzugt. Als Anfänger beim Erlernen der Go-Sprache ist es wichtig, grundlegende Rechenoperationen zu beherrschen. In diesem Artikel werden die grundlegenden Methoden zur Implementierung von vier arithmetischen Operationen in der Go-Sprache vorgestellt und spezifische Codebeispiele bereitgestellt. Additionsoperation Die Additionsoperation ist eine der einfachsten arithmetischen Operationen und wir können das Pluszeichen (+) verwenden, um die Additionsoperation darzustellen. Hier ist ein Beispielcode: packageg

Lernen Sie die Prinzipien und Praktiken der vier arithmetischen Operationen in der Go-Sprache Lernen Sie die Prinzipien und Praktiken der vier arithmetischen Operationen in der Go-Sprache Dec 23, 2023 pm 01:07 PM

Titel: Erlernen der Prinzipien und Praxis von vier arithmetischen Operationen durch die Go-Sprache Einführung: Die Go-Sprache ist eine kompilierte Open-Source-Sprache mit hoher Parallelität, die einfach, zuverlässig und effizient ist. Das Erlernen der Prinzipien und Praktiken der vier arithmetischen Operationen mithilfe der Go-Sprache kann nicht nur ein tiefgreifendes Verständnis der grundlegenden Regeln für mathematische Operationen vermitteln, sondern auch Programmierdenken und -fähigkeiten trainieren. In diesem Artikel werden die Grundprinzipien der vier arithmetischen Operationen vorgestellt und Beispielcode in der Go-Sprache geschrieben, um den praktischen Prozess der vier arithmetischen Operationen zu demonstrieren. 1. Grundprinzipien der vier arithmetischen Operationen Die vier arithmetischen Operationen sind die grundlegendsten Operationen in der Mathematik, einschließlich Addition, Subtraktion und Multiplikation

Leistungsstarke Funktionen: Verwenden Sie die Go-Sprache, um vier arithmetische Operationen zu implementieren, um komplexe Operationsanforderungen problemlos zu bewältigen Leistungsstarke Funktionen: Verwenden Sie die Go-Sprache, um vier arithmetische Operationen zu implementieren, um komplexe Operationsanforderungen problemlos zu bewältigen Feb 26, 2024 pm 02:36 PM

Titel: Leistungsstarke Funktionen: Verwenden Sie die Go-Sprache, um vier arithmetische Operationen zu implementieren, um komplexe Rechenanforderungen problemlos zu bewältigen. Mit der Entwicklung des Computerbereichs werden die vier arithmetischen Operationen als eine der grundlegendsten mathematischen Operationen häufig in verschiedenen Softwareprogrammen verwendet Entwicklung. Um komplexe Computeranforderungen besser erfüllen zu können, verwenden viele Entwickler effiziente Programmiersprachen wie die Go-Sprache, um verwandte Funktionen zu implementieren. In diesem Artikel wird erläutert, wie Sie mit der Go-Sprache vier arithmetische Operationen implementieren, von einfachen Additionen, Subtraktionen, Multiplikationen und Divisionen bis hin zu komplexen Operationen, die Klammern und Vorrang unterstützen und den Lesern dabei helfen, Berechnungsprobleme einfach zu lösen. Zuerst wir

Eine kurze Einführung in das Erlernen der Go-Sprache zum Implementieren von vier arithmetischen Operationen Eine kurze Einführung in das Erlernen der Go-Sprache zum Implementieren von vier arithmetischen Operationen Feb 19, 2024 pm 02:59 PM

Beginnen Sie schnell mit der Implementierung der vier Rechenoperationen in der Go-Sprache. Beim Erlernen einer neuen Programmiersprache ist die Beherrschung der grundlegenden vier Rechenoperationen ein sehr wichtiger Schritt. In diesem Artikel wird kurz die Methode zur Implementierung von vier arithmetischen Operationen in der Go-Sprache vorgestellt und spezifische Codebeispiele bereitgestellt. Die Go-Sprache ist eine prägnante und effiziente Programmiersprache, die von Google entwickelt und gefördert wird. Es enthält eine umfangreiche Standardbibliothek und verfügt außerdem über leistungsstarke Funktionen wie objektorientierte und gleichzeitige Programmierung, wodurch es für verschiedene Arten der Anwendungsentwicklung geeignet ist. Das Grundprinzip der Implementierung der vier arithmetischen Operationen besteht darin, die Grundprinzipien der Go-Sprache zu verwenden

See all articles