Dans ton dossier `python-tdd/4-bases`, il y a le le fichier `01-nom-age.py`, avec le contenu suivant : ```python nom = input("Quel est ton nom ?\n") # Remarque 1: les valeurs booleennes en Python sont True et False # Remarque 2: pas de do/while en Python => break pour quitter la boucle while True: age = input("Quel âge as-tu ?\n") # Equivalent du try/catch en Java, JavaScript, PHP... try: age_converti = int(age) # Si la valeur saisie n'est pas convertible en entier, # une exception de type ValueError est générée except ValueError: print("La valeur '%s' n'est pas entière, recommence!" % (age)) break print("Tu t'appelles {nom} et tu as {age} ans.".format(nom=nom, age=age)) ``` Puis dans le terminal (Remplacer **python** par **python3** sous OS X et Linux) : ```sh cd ~/CHEMIN/VERS/DOSSIER/python-tdd/4-bases python 01-nom-age.py ``` Quelques remarques... À propos, c'est le moment de **prendre des notes** ! Ça pourrait ressortir dans le QCM... > Comme PHP ou JavaScript, Python est un langage de script, **interprété**, et n'a pas besoin de passer par une phase de compilation. > Tu te souviens de `int unEntier;` en Java, ou `var uneVariable;` en JavaScript... Vois-tu la différence ici ?... On **ne déclare pas les variables** en Python, on les affecte directement. > Autre chose qui doit te sembler étrange : où sont les accolades `{}` pour délimiter le corps de la boucle `while`, et ceux du `try` et du `catch` ? Disparues ! En Python, c'est **le carcactère `:` et l'indentation** qui permettent de déterminer le début et la fin d'un bloc d'instructions. Tout ce qui se trouve entre `age = ...` et `break` forme le corps du `while`. De la même façon, ici `try` et `except` ont chacun un bloc d'instructions constitué d'une seule ligne. > Il n'est pas nécessaire de mettre des points-virgule à la fin des lignes. Ils sont acceptés, mais en pratique, *personne* dans la communauté Python ne les utilise. Leur seule utilité éventuelle est de séparer des instructions sur une même ligne.