Die eval () -Funktion, die eine Zeichenfolge als Ausdruck in Python berechnet

Sehr angenehm! Ich dachte, es wäre ein Memo Die Funktion eval () gibt das Berechnungsergebnis mit der Zeichenfolge ** Ausdruck ** als Argument zurück.

Wie benutzt man

>>> eval("1 + 2")
3
>>> eval("1" "2")
12
>>> eval("1" + "2")
12
>>> eval("1" "+" "2")
3

Wann ich es verwenden soll, habe ich in [Dieses Problem] von AtCoder (https://atcoder.jp/contests/arc061/tasks/arc061_a) verwendet.

Problemstellung Sie erhalten die Zeichenfolge S, die nur aus Zahlen zwischen 1 und 9 besteht. Innerhalb dieser Zeichenfolge können Sie an einigen Stellen zwischen diesen Zeichen ein + setzen. Sie müssen keine eingeben. Das + darf jedoch nicht fortlaufend sein. Alle auf diese Weise erstellten Zeichenketten können als mathematische Formeln betrachtet und die Summe berechnet werden. Berechnen Sie die Werte aller möglichen Formeln und geben Sie die Summe aus.


from itertools import product
s = list(input())
n = len(s)
answer = 0
 
pattern = list(product(['+', ''], repeat=n-1))
 
for i in range(2 ** (n-1)):
    formula = s[0]
    for j, k in zip(pattern[i], s[1:]):
        formula += (j + k)
    answer += eval(formula)
 
print(answer)

Recommended Posts

Die eval () -Funktion, die eine Zeichenfolge als Ausdruck in Python berechnet
Rufen Sie die Formel in der Excel-Datei als Zeichenfolge in Python ab
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Holen Sie sich den Aufrufer einer Funktion in Python
[Python] Eine Funktion, die die gesamte Zeichenfolge mit einem regulären Ausdruck durchsucht und alle übereinstimmenden Zeichenfolgen abruft.
Fügen Sie ein Objekt in eine Zeichenfolge in Python ein
[Python] Ich habe versucht, den Typnamen als Zeichenfolge aus der Typfunktion abzurufen
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
#Eine Funktion, die den Zeichencode einer Zeichenfolge zurückgibt
Was bedeutet das letzte () in einer Funktion in Python?
Erstellen Sie eine Funktion in Python
Hinweis: Bedeutung der Angabe von nur * (Sternchen) als Argument in der Funktionsdefinition von Python
[Python] Lassen Sie nur Elemente im Array, die mit einer bestimmten Zeichenfolge beginnen
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Lambda-Ausdruck (Korrektur), der einen Index (Wörterbuch mit Mitgliedsschlüssel) der Mitglieder des Objekts erstellt, das in Python gesammelt wird
[C / C ++] Übergeben Sie den in C / C ++ berechneten Wert an eine Python-Funktion, um den Prozess auszuführen, und verwenden Sie diesen Wert in C / C ++.
[Python] Programmieren, um die Nummer von a in einer Zeichenfolge zu finden, die eine bestimmte Anzahl von Malen wiederholt.
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Erstellen Sie eine zufällige Zeichenfolge in Python
Erstellen Sie eine Instanz einer vordefinierten Klasse aus einer Zeichenfolge in Python
Spielen Sie Sounds in Python ab, vorausgesetzt, die Tastatur ist eine Klaviertastatur
So machen Sie einen String in Python zu einem Array oder ein Array zu einem String
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
Format, wenn eine lange Zeichenfolge als Python-Argument übergeben wird
Python: Verwenden Sie die im Zeichenfolgenformat definierten Variablen unverändert
Was ist in dem Parameter? String & Ausdruck bearbeiten
Verwenden Sie print in Python2 lambda expression
Vorsichtsmaßnahmen beim Beizen einer Funktion in Python
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Nehmen Sie die logische Summe von List in Python (Zip-Funktion)
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
[Python] Ein Programm, das die Partitur rundet
[Python] Ein Programm, das die Anzahl der Schokoladensegmente berechnet, die die Bedingungen erfüllen
Wenn Sie einen Singleton in Python möchten, stellen Sie sich das Modul als Singleton vor
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet
Ich möchte einen Teil der Excel-Zeichenfolge mit Python einfärben
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
[Python] Hinweis: Selbst erstellte Funktion zum Ermitteln des Bereichs der Normalverteilung
Der Fehler beim Aufrufen des tkinter-Moduls in einem Texteditor funktioniert nicht wie erwartet
So geben Sie eine Zeichenfolge in Python ein und geben sie unverändert oder in die entgegengesetzte Richtung aus.
Zeichnen Sie in Python ein Diagramm einer quadratischen Funktion
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Ein Memo, das ich schnell in Python geschrieben habe
Einbetten von Variablen in Python-Strings
Ein Programm, das doppelte Anweisungen in Python entfernt
Kopieren Sie die Liste in Python
Veröffentlichen Sie ein Python-Modul, das meteorologische Elemente berechnet
Installieren Sie das Python-Paket in einer Offline-Umgebung
Legen Sie die Obergrenze für die Anzahl der Wiederholungen rekursiver Funktionen in Python fest
[Python] Ein Programm, das die Differenz zwischen diagonalen Gesamtwerten berechnet
[Python] Ein Programm, das die Anzahl der Aktualisierungen der höchsten und niedrigsten Datensätze berechnet
Erstellen Sie ein Datum / Uhrzeit-Objekt aus einer Zeichenfolge in Python (Python 3.3).
[Python] Eine Funktion, die die Breite ausrichtet, indem ein Leerzeichen in Text eingefügt wird, das eine Mischung aus voller und halber Breite ist
Ausgabe in Form eines Python-Arrays