[Python] Résumé des fonctions eval / exec + Comment écrire une chaîne de caractères avec des sauts de ligne

[Python] Résumé des fonctions eval / exec + Comment écrire une chaîne de caractères avec des sauts de ligne

La fonction eval et la fonction exec sont l'une des fonctions intégrées. La chaîne de caractères donnée en argument peut être exécutée en tant qu'expression ou instruction.

  1. [fonction eval](fonction #eval)
  2. [fonction exec](fonction #exec)
  3. [Différence entre exec et eval](Différence entre #exec et eval)
  4. [Citation triple ('' ')](# Citation triple)
  5. [guillemets exécutables et triples](guillemets #exec et triples)

fonction eval

Exécute l'expression saisie sous forme de chaîne de caractères dans l'argument. Le résultat de l'exécution est renvoyé comme valeur de retour.

ʻEval ("expression") ` └ Erreur s'il s'agit d'une phrase └ Abréviation pour évaluation

python


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

#production
10

**▼print** Vous pouvez imprimer à l'intérieur de l'éval ou vous pouvez imprimer l'éval.

python


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

#production
10
10

### Utiliser une variable affectée d'une chaîne de caractères comme argument

Affectation de chaîne


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

#Aucun quota requis pour les chaînes
eval("l"+s)
print(l)

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

Aucun quota n'est requis lorsque vous placez une variable chaîne dans l'argument de eval **.


### Utiliser des chaînes dans les expressions

Lorsque vous utilisez une chaîne de caractères, utilisez un symbole différent du symbole qui entoure le tout. ·"" dans:"' '" ·"' '"dans:"" ""

Utiliser des chaînes dans eval


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

print(a)
print(b)

#production
aaa
bbb

Le même symbole est une erreur


eval(""aaa"")

#production
SyntaxError: invalid syntax

Modèle d'erreur

--Lorsque vous entrez une phrase --Pour les chaînes sans caractères (valeurs numériques, etc.)

Si vous entrez une phrase


eval("a = 5*2")

#production
SyntaxError: invalid syntax

Autre que les chaînes de caractères


eval(5*2)

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

Autre que la chaîne de caractères (nom de clé spécifié)


eval(a=5)

#production
TypeError: eval() takes no keyword arguments

fonction exec

Exécute l'expression ou l'instruction de la chaîne de caractères saisie dans l'argument.

ʻExec ('instruction ou expression') ` └ Abréviation pour exécuter └ Il n'y a pas de valeur de retour pour exec lui-même

Entrez une déclaration dans l'argument


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

#production
10

Utiliser des chaînes


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

#production
hello

Plusieurs phrases


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

#production
10

・ ";" Accepte le saut de ligne


Entrez une expression comme argument


l=[1,2,3]

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

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

## Différence entre exec et eval ** (1) exec peut prendre une instruction ** └ eval est une erreur

** (2) exec n'a pas de retour ** └ exec peut également prendre une expression comme argument comme eval. └ exec lui-même existe (retourne avec retour) └ eval lui-même n'existe pas (aucun)

exec lui-même n'a aucune valeur


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

Illustration


#Les expressions en exec peuvent être exécutées
exec("print(2*5)")

#exec lui-même n'a pas de valeur de retour(None)
print(exec("2*5"))

#production
10
None

## Triple devis Peut gérer plusieurs lignes sous forme de chaîne de caractères.

`` '' 'Code (avec sauts de ligne)' '' ` └ Entourez de 3 points de quota └ Si vous commencez une nouvelle ligne immédiatement après '' ', la sortie sera également interrompue.

python


a='''
Bonjour,
Il fait beau aujourd'hui.
Quel temps fait-il là-bas?
'''

print(type(a))
print(a)

#production
<class 'str'>

Bonjour,
Il fait beau aujourd'hui.
Quel temps fait-il là-bas?

Ne pas casser

Vous pouvez utiliser des barres obliques inverses pour échapper aux sauts de ligne.

Évasion de rupture de ligne


a='''\
Bonjour,
Il fait beau aujourd'hui.\
Quel temps fait-il là-bas?
'''

print(a)

#production
Bonjour,
Il fait beau aujourd'hui. Quel temps fait-il là-bas?

## Exec et triple guillemets Vous pouvez exécuter le traitement de fonction défini en utilisant une variable dans laquelle des guillemets triples sont affectés à l'argument de exec.

python


a ='''
#Définition des fonctions
def hello_func(name):
    print(f'Bonjour{name}M.')


#Exécution de la fonction
name="Todoroki"
hello_func(name)
'''

exec(a)

#production
Bonjour Todoroki

Parce que vous ne pouvez pas passer un argument à une fonction de chaîne dans exec Décrit entre guillemets triples jusqu'à l'exécution de la fonction.


> Page officielle - [Fonctions intégrées](# 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] Résumé des fonctions eval / exec + Comment écrire une chaîne de caractères avec des sauts de ligne
Résumé de la façon de partager l'état avec plusieurs fonctions
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
[Python] Résumé de l'utilisation des fonctions de fractionnement et de jointure
[Python] Résumé de l'utilisation des pandas
[Python2.7] Résumé de l'utilisation d'unittest
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
Résumé de l'écriture d'AWS Lambda
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
Résumé de la façon d'importer des fichiers dans Python 3
Résumé de l'utilisation de MNIST avec Python
Comment spécifier des attributs avec Mock of Python
Résumé de la lecture des données numériques avec python [CSV, NetCDF, Fortran binary]
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Comment écrire un type liste / dictionnaire de Python3
[Python] Résumé de la façon de spécifier la couleur de la figure
Le 15e temps réel hors ligne, j'ai essayé de résoudre le problème de l'écriture avec python
Écrire en csv avec Python
Comment séparer les chaînes avec ','
Comment installer NPI + envoyer un message à la ligne avec python
Afficher les chaînes de caractères sans saut de ligne en python (mémo personnel)
Comment écrire un exemple d'implémentation E14 Python en temps réel hors ligne
[python] Résumé de la récupération des listes et des éléments du dictionnaire
Comment activer la lecture / écriture de net.Conn avec Golang pour annuler avec le contexte
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
Résumé de l'écriture des fichiers .proto utilisés dans gRPC
Comment écrire hors ligne en temps réel Résolution des problèmes E05 avec Python
J'ai essayé de résoudre le problème de F02 comment écrire en temps réel hors ligne avec Python
Python: comment utiliser async avec
[Hugo] Résumé de la façon d'ajouter des pages au site créé avec Learn
Résumé du format de chaîne de caractères en Python3 Que ce soit pour vivre avec l'ancien modèle ou le nouveau modèle
Exécutez l'instruction [python] exec, eval
[Python] Ecrire dans un fichier csv avec Python
Résumé de l'utilisation de pandas.DataFrame.loc
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
Imprimez avec python3 sans interruption
Résumé de l'utilisation de pyenv-virtualenv
Comment écrire un exemple d'implémentation Python du problème E15 en temps réel hors ligne
Grammaire de base du système Python3 (comment utiliser les fonctions, la fermeture, la fonction lambda)
J'ai essayé de résumer brièvement la procédure de démarrage du développement de Django
Comment démarrer avec Python
Comment se connecter à Cloud Firestore à partir de Google Cloud Functions avec du code Python
10 fonctions du "langage avec batterie" python
[Débutant] Extraire des chaînes de caractères avec Python
[Introduction à l'application Udemy Python3 +] 12. Indexation et découpage des chaînes de caractères
Comment calculer la date avec python
Résumé de l'utilisation de csvkit
Comment écrire hors ligne en temps réel Résolution des problèmes F01 avec Python
Résumé de la façon d'écrire des instructions if (Scala, Java, Rust, langage C, C ++, langage Go, PHP, Perl, Python, Ruby)
Récapitulatif de la façon d'écrire un décrément d'incrémentation (Scala, Java, Rust, langage C, C ++, langage Go, PHP, Perl, Python, Ruby, JavaScript)
Le 16ème problème d'écriture en temps réel hors ligne a été résolu avec Python
[Yahoo! Weather Replacement Version] Comment obtenir des informations météo avec LINE Notify + Python
Comment couper la partie inférieure droite de l'image avec Python OpenCV
Comment écrire hors ligne en temps réel J'ai essayé de résoudre E11 avec python
Le 16ème comment écrire un problème de référence en temps réel hors ligne à résoudre avec Python
[Python] Comment changer les données de la chaîne de caractères (str) en date (strptime de datetime)
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
[Python] Résumé de la conversion entre les chaînes de caractères et les valeurs numériques (code ascii)