Eingehende Analyse der 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] != ')' 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
Es ist einfach, den konvertierten Präfixausdrucksstapel zu bedienen
Erhalten Sie das Gesamtergebnis:
def calc(number1,number2,calc): # 两个数运算 if calc == '/': return number1 / number2 elif calc == '*': return number1 * number2 elif calc == '//': return number1 // number2 elif calc == '**': return number1 ** number2 elif calc == '%': return number1 % number2 elif calc == '+': return number1 + number2 elif calc == '-': return number1 - number2
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)
Das überprüfte Ergebnis ist korrekt
.
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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: 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

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

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 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

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

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

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
