Die Auswertungsfunktion und die Ausführungsfunktion sind eine der integrierten Funktionen. Die als Argument angegebene Zeichenfolge kann als Ausdruck oder Anweisung ausgeführt werden.
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
python
eval("print(5*2)")
print(eval("5*2"))
#Ausgabe
10
10
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 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
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
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]
** (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
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?
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?
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.
Recommended Posts