Fonction exec()

Fonction exec() - Python - Programmation

Marsh Posté le 19-09-2022 à 15:26:25    

Bonjour
Quelqu'un peut m'expliquer pourquoi les deux instructions suivantes dans le shell Python ont un comportement différent ?
Dans le premier cas, l'instruction print('coucou') est exécutée, mais pas dans le second.
 

Code :
  1. >>> exec(input('Entrer une commande : '))
  2. Entrer une commande : print('coucou')
  3. coucou


 

Code :
  1. >>> input('Entrer une commande : ')
  2. Entrer une commande : print('coucou')
  3. "print('coucou')"

Reply

Marsh Posté le 19-09-2022 à 15:26:25   

Reply

Marsh Posté le 19-09-2022 à 19:18:43    

Sans connaître Python :o , ca paraît logique. input() doit retourner une chaîne de caractères, pour l'exécuter il faut passer par exec(). Mais quel intérêt puisque dans ton shell tu peux directement tapper des commandes? D'ailleurs le shell doit être - en gros - une boucle avec un exec(input(...)).

Reply

Marsh Posté le 19-09-2022 à 20:13:59    

Merci pour ta réponse, elle m'a fait réfléchir, le premier cas serait donc équivalent à  

Code :
  1. >>> s = input('Entrer une commande : ')
  2. Entrer une commande : print('coucou')
  3. >>> exec(s)
  4. coucou


Qu'en penses tu ?

Reply

Marsh Posté le 19-09-2022 à 20:39:11    

Oui tout à fait, sauf que contrairement au premier cas de ton post initial là tu passes explicitement par une variable intermédiaire.

Reply

Marsh Posté le 19-09-2022 à 22:39:39    

Ok, en fait, mon pb ne venait pas de exec(), mais de input() dont je ne comprenais pas le fonctionnement exact. Merci encore

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed