Adloun

NSI (terminale) · Chapitre 16 · Exercice d'entraînement

Du texte qui devient programme

Calculabilité, décidabilité et paradigmes de programmation · Programmes, données et calculabilité · niveau 1 (application)

Énoncé

Du texte qui devient programme. On exécute le programme suivant.


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

code = "x = 4\ny = x * x\n"
env = {}
exec(code, env)
print(env["y"])

n = 3
source = "def f(x):\n    return x + " + str(n) + "\n"
env2 = {}
exec(source, env2)
print(env2["f"](10))
  • Prévoir les trois valeurs affichées.
  • Pourquoi utilise-t-on eval dans la première ligne et exec dans les suivantes ?
  • Quel est le type de la variable source au moment où elle est construite ? En quel sens ce programme en fabrique-t-il un autre ?
  • Pourquoi ne faut-il jamais appliquer exec à un texte saisi par un utilisateur ?

Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre