[Python] Zusammenfassung der Funktionen eval / exec + Schreiben einer Zeichenfolge mit Zeilenumbrüchen

[Python] Zusammenfassung der Funktionen eval / exec + Schreiben einer Zeichenfolge mit Zeilenumbrüchen

Die Auswertungsfunktion und die Ausführungsfunktion sind eine der integrierten Funktionen. Die als Argument angegebene Zeichenfolge kann als Ausdruck oder Anweisung ausgeführt werden.

  1. [Bewertungsfunktion](# Bewertungsfunktion)
  2. [exec function](#exec function)
  3. [Unterschied zwischen exec und eval](Unterschied zwischen #exec und eval)
  4. [Dreifaches Zitat ('' ')](# Dreifaches Zitat)
  5. [exec und dreifache Anführungszeichen](#exec und dreifache Anführungszeichen)

Bewertungsfunktion

Führt den im Argument als Zeichenfolge eingegebenen Ausdruck aus. Das Ausführungsergebnis wird als Rückgabewert zurückgegeben.

eval (" Ausdruck ") └ Fehler, wenn es sich um einen Satz handelt └ Abkürzung für Bewertung

python


a = eval("5*2")
print(a)

#Ausgabe
10

**▼print** Sie können innerhalb der Auswertung drucken oder Sie können die Auswertung drucken.

python


eval("print(5*2)")
print(eval("5*2"))

#Ausgabe
10
10

### Verwenden Sie eine Variable, der eine Zeichenfolge als Argument zugewiesen wurde

Stringzuweisung


l=[]
s=".extend('abc')"

#Für Zeichenfolgen ist kein Kontingent erforderlich
eval("l"+s)
print(l)

#Ausgabe
['a', 'b', 'c']

Es ist kein Kontingent erforderlich, wenn Sie eine Zeichenfolgenvariable in das Argument von eval ** einfügen.


### Verwenden Sie Zeichenfolgen in Ausdrücken

Verwenden Sie bei Verwendung einer Zeichenfolge ein anderes Symbol als das Symbol, das das Ganze einschließt. ·"" im:"' '" ·"' '"im:"" ""

Verwenden Sie Strings in eval


a = eval("'aaa'")
b = eval('"bbb"')

print(a)
print(b)

#Ausgabe
aaa
bbb

Gleiches Symbol ist Fehler


eval(""aaa"")

#Ausgabe
SyntaxError: invalid syntax

Fehlermuster

Wenn Sie einen Satz eingeben


eval("a = 5*2")

#Ausgabe
SyntaxError: invalid syntax

Andere als Zeichenketten


eval(5*2)

#Ausgabe
TypeError: eval() arg 1 must be a string, bytes or code object

Andere als Zeichenfolge (Schlüsselname angegeben)


eval(a=5)

#Ausgabe
TypeError: eval() takes no keyword arguments

Exec-Funktion

Führt den Ausdruck oder die Anweisung der im Argument eingegebenen Zeichenfolge aus.

exec ('Anweisung oder Ausdruck') └ Abkürzung für Execute └ Es gibt keinen Rückgabewert für exec selbst

Geben Sie eine Anweisung in das Argument ein


exec("a=5*2")
print(a)

#Ausgabe
10

Verwenden Sie Zeichenfolgen


exec("a = 'hello'")
print(a)

#Ausgabe
hello

Mehrere Sätze


exec("a=2; b=5; c=a*b")
print(c)

#Ausgabe
10

・ ";" Stimmt dem Zeilenumbruch zu


Geben Sie einen Ausdruck als Argument ein


l=[1,2,3]

exec("l.extend([4,5,6])")
print(l)

#Ausgabe
[1, 2, 3, 4, 5, 6]

## Unterschied zwischen exec und eval ** (1) exec kann eine Erklärung abgeben ** └ eval ist ein Fehler

** (2) exec hat keine Rückgabe ** └ exec kann einen Ausdruck auch als Argument wie eval verwenden. └ exec selbst existiert (kehrt mit return zurück) └ eval selbst existiert nicht (keine)

exec selbst hat keinen Wert


exec("2+5") is None    #True
eval("2+5") is None    #False

Illustration


#Ausdrücke in exec können ausgeführt werden
exec("print(2*5)")

#exec selbst hat keinen Rückgabewert(None)
print(exec("2*5"))

#Ausgabe
10
None

## Dreifaches Zitat Kann mehrere Zeilen als Zeichenfolge verarbeiten.

Code (mit Zeilenumbrüchen) └ Mit 3 Kontingentpunkten umgeben └ Wenn Sie die Zeile unmittelbar nach '' 'unterbrechen, wird auch die Ausgabe unterbrochen.

python


a='''
Hallo,
Es ist heute ein gutes Wetter.
Wie ist das Wetter dort?
'''

print(type(a))
print(a)

#Ausgabe
<class 'str'>

Hallo,
Es ist heute ein gutes Wetter.
Wie ist das Wetter dort?

Nicht kaputtmachen

Sie können Backslashes verwenden, um Zeilenumbrüche zu vermeiden.

Zeilenumbruch entkommen


a='''\
Hallo,
Es ist heute ein gutes Wetter.\
Wie ist das Wetter dort?
'''

print(a)

#Ausgabe
Hallo,
Es ist heute ein gutes Wetter. Wie ist das Wetter dort?

## exec und dreifache Anführungszeichen Sie können die definierte Funktionsverarbeitung ausführen, indem Sie eine Variable verwenden, in der dem Argument von exec dreifache Anführungszeichen zugewiesen werden.

python


a ='''
#Funktionsdefinition
def hello_func(name):
    print(f'Hallo{name}Herr.')


#Funktionsausführung
name="Todoroki"
hello_func(name)
'''

exec(a)

#Ausgabe
Hallo Todoroki

Weil Sie in exec kein Argument an eine String-Funktion übergeben können Beschrieben in dreifachen Anführungszeichen bis zur Funktionsausführung.


> Offizielle Seite - [Integrierte Funktionen](# https://docs.python.org/ja/3/library/functions.html) ・ [Eval](# https://docs.python.org/ja/3/library/functions.html#eval) ・ [Exec](# https://docs.python.org/ja/3/library/functions.html#exec)

Recommended Posts

[Python] Zusammenfassung der Funktionen eval / exec + Schreiben einer Zeichenfolge mit Zeilenumbrüchen
Zusammenfassung, wie der Status mit mehreren Funktionen geteilt wird
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
[Python] Zusammenfassung der Verwendung von Split- und Join-Funktionen
[Python] Zusammenfassung der Verwendung von Pandas
[Python2.7] Zusammenfassung der Verwendung von unittest
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
Zusammenfassung des Schreibens von AWS Lambda
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
Zusammenfassung zum Importieren von Dateien in Python 3
Zusammenfassung der Verwendung von MNIST mit Python
So legen Sie Attribute mit Mock of Python fest
Zusammenfassung zum Lesen numerischer Daten mit Python [CSV, NetCDF, Fortran Binary]
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
So schreiben Sie einen Listen- / Wörterbuchtyp von Python3
[Python] Zusammenfassung, wie die Farbe der Figur angegeben wird
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Schreiben Sie mit Python in csv
So trennen Sie Zeichenfolgen mit ','
So installieren Sie NPI + Senden Sie eine Nachricht an Python
Zeichenfolgen ohne Zeilenumbrüche in Python anzeigen (persönliches Memo)
Offline-Echtzeit zum Schreiben eines E14 Python-Implementierungsbeispiels
[Python] Zusammenfassung zum Abrufen von Listen und Wörterbuchelementen
So aktivieren Sie das Lesen / Schreiben von net.Conn mit golang, um mit dem Kontext abzubrechen
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
Zusammenfassung zum Schreiben von in gRPC verwendeten .proto-Dateien
So schreiben Sie offline in Echtzeit Lösen von E05-Problemen mit Python
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
Python: So verwenden Sie Async mit
[Hugo] Zusammenfassung zum Hinzufügen von Seiten zu der mit Learn erstellten Site
Zusammenfassung des Zeichenkettenformats in Python3 Gibt an, ob mit dem alten oder dem neuen Modell gelebt werden soll
Führen Sie die Anweisung [python] exec, eval aus
[Python] Mit Python in eine CSV-Datei schreiben
Zusammenfassung der Verwendung von pandas.DataFrame.loc
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
Drucken Sie mit python3 ohne Unterbrechungen
Zusammenfassung der Verwendung von pyenv-virtualenv
Offline-Echtzeit zum Schreiben eines Python-Implementierungsbeispiels für das E15-Problem
Grundlegende Grammatik des Python3-Systems (Verwendung von Funktionen, Schließung, Lambda-Funktion)
Ich habe versucht, das Entwicklungsstartverfahren von Django kurz zusammenzufassen
Erste Schritte mit Python
Herstellen einer Verbindung zum Cloud Firestore über Google Cloud-Funktionen mit Python-Code
10 Funktionen von "Sprache mit Batterie" Python
[Anfänger] Extrahieren Sie Zeichenketten mit Python
[Einführung in die Udemy Python3 + -Anwendung] 12. Indizieren und Schneiden von Zeichenketten
So berechnen Sie das Datum mit Python
Zusammenfassung der Verwendung von csvkit
So schreiben Sie offline in Echtzeit Lösen von F01-Problemen mit Python
Zusammenfassung des Schreibens von if-Anweisungen (Scala, Java, Rust, C-Sprache, C ++, Go-Sprache, PHP, Perl, Python, Ruby)
Zusammenfassung zum Schreiben von Inkrementdekrementen (Scala, Java, Rust, C-Sprache, C ++, Go-Sprache, PHP, Perl, Python, Ruby, JavaScript)
Das 16. Offline-Echtzeit-Schreibproblem wurde mit Python gelöst
[Yahoo! Weather Replacement Version] So erhalten Sie Wetterinformationen mit LINE Notify + Python
So schneiden Sie den unteren rechten Teil des Bildes mit Python OpenCV
Wie man offline in Echtzeit schreibt Ich habe versucht, E11 mit Python zu lösen
Das 16. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
[Python] So ändern Sie die Daten der Zeichenkette (str) auf das Datum (strptime of datetime)
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
[Python] Zusammenfassung der Konvertierung zwischen Zeichenfolgen und numerischen Werten (ASCII-Code)