Python en mathématiques - Niveau 1

Saisie au clavier et affichage sur écran

Plus tard ! Les notions de cette page peuvent être réservées à une seconde lecture.

No print()

Nous l'avons déjà dit, et nous insistons là-dessus, il est possible, avec un langage comme Python, de ne pas présenter la fonction print() dans un premier temps puisque tous les résultats pouvent être obtenus directement dans un interpréteur (la console). Par exemple :

  1. Ouvrez le shell de la distribution Python, puis ouvrez un fichier ([File] → [New File]). Définissez ensuite la fonction ci-dessous qui renvoie une chaîne de caractères : définition d'une fonction
  2. Enregistrez le fichier sous le nom noprint.py puis validez-le ([Run] → [Run Module]).
  3. La console a redémarré (RESTART) en prenant en compte le contenu du fichier noprint.py : définition d'une fonction
  4. On peut alors directement lancer l'exécution de la fonction no_print() dans l'interpréteur : le résultat de la fonction s'affiche sans avoir fait appel à print() : définition d'une fonction

No input()

De la même façon, l'exemple d'exécution suivant montre que l'on peut se dispenser de input() pour faire une série de tests de sa fonction :

Machine, tu me parles ?

Un autre exemple :

No input, vous dit-on !!

Saisie clavier : input()

Saisir une chaîne de caractères

La fonction input() permet de demander à l'utilisateur de saisir une chaîne de caractères au clavier. Il ne faut pas oublier d'affecter la valeur ainsi saisie à une variable.

Exécutez le programme suivant :


		
		

La première ligne affiche le message "Tapez votre nom : " à l'écran (sur ce site, dans une boîte spécifique d'affichage) puis stocke la chaîne entrée par l'utilisateur dans la variable nom.

La seconde ligne affiche alors "Bonjour " suivi du nom et d'un point d'exclamation.

Saisir un entier

On utilise également input() pour que l'utilisateur saisisse un entier au clavier. Mais comme input() renvoie nécessairement une chaîne, il faut utiliser une instruction de conversion de type.
Par exemple :


n = int(input("Saisissez un entier : "))
print("Le type de la variable n est", type(n))

Imaginons que l'utilisateur saisisse la valeur 12 :

>>> RESTART : test_input.py

Saisissez un entier : 12
Le type de la variable n est <class 'int'>
	

Grâce à la fonction int(), n est bien un entier.

Il faut bien sûr que l'utilisateur saisisse effectivement un entier (écrit avec des chiffres). S'il rentre par exemple le mot douze, cela générera une erreur.

Saisir un réel

De façon analogue, on utilisera la fonction de conversion de type float() :


x = float(input("Saisissez un flottant : "))
print("Le type de la variable x est", type(x))
print(x)

Si l'utilisateur tape 2 sur le clavier, vous pouvez constater que la dernière ligne (print(x)) affichera 2.0 à l'écran. Le contenu de la variable x est bien de type float.

>>> RESTART : test_input2.py

Saisissez un flottant : 2
Le type de la variable x est <class 'float'>
2.0
	

Attention ! L'utilisateur doit saisir un flottant, c'est-à-dire un nombre dont le séparateur décimal est le point, pas la virgule...

Saisir une opération

Si l'utilisateur saisit par exemple 3/4 ou 3+4, il ne s'agit plus d'un float ou d'un int (bien que le résultat de l'opération soit un float ou un int). Dans ce cas, on pourra utiliser la fonction eval() :


x = eval(input("Saisir par exemple 3/4 : "))
print("Le type de la variable x :", type(x))
print(x)

On obtient :

>>> RESTART : test_input3.py

Entrez par exemple 3/4 : 3/4
Le type de la variable x : <class 'float'>
0.75

Affichage à l'écran : print()

Pour afficher un résultat ou un message à l'écran, on utilise la fonction print().

print() et virgule

On peut utiliser la virgule pour alterner message et valeur de variable.


		
		

print() et .format()

On peut utiliser la fonction .format() qui permet d'écrire un texte moins haché en insérant le contenu des variables dans le texte à afficher :


		
		

La première accolade contient la valeur du premier paramètre de la fonction format() (ici nom), la seconde accolade affichera la valeur du second paramètre, etc...

On peut également indiquer des références explicites sous forme de numéros :


		
		

L'accolade {0} sera remplacée par la valeur du premier paramètre de la fonction format (ici age), l'accolade {1} sera remplacée par la valeur du second paramètre (ici nom). Et la valeur d'une même variable peut être utilisée plusieurs fois.

Documentation python sur la fonction format().

print() et f-string

À partir de la version 3.6 de Python, on dispose également des f-strings qui permettent des affichages de résultat encore plus lisibles. Par exemple :


age = 48
nom = "Schmoll"
profession = "voyageur dans le temps"

print(f"{nom} est âgé de {age} ans et exerce la profession de {profession}.")
print(f"... il a maintenant rajeuni et son âge est {age/6} ans.")

On obtient :

>>> RESTART : test_fstring.py

Schmoll est âgé de 48 ans et exerce la profession de voyageur dans le temps.
... il a maintenant rajeuni et son âge est 8.0 ans.

Si l'exécution de ce code ne fonctionne pas sur votre machine, vérifiez votre version de Python.

print() et concaténation

On peut également concaténer des chaînes en transformant en chaîne, grâce à la fonction str(), les variables qui n'en sont pas.


nom = input("Tapez votre nom : ")
age = int(input("Saisissez votre âge : "))
 
print("Vous vous appelez " + nom + ". Vous avez " + str(age) + " ans.")