Entrée, sortie en python - input, print

01 Sep 2019 01 Sep 2019 13231 vues ESSADDOUKI Mostafa 5 min de lecture

Entrées et sorties

Tout programme interactif doit pouvoir communiquer avec l'utilisateur : afficher des résultats et recevoir des données. Python fournit deux fonctions intégrées pour cela : print() pour la sortie et input() pour la saisie.

Fonction print()

print() affiche une ou plusieurs valeurs à l'écran en les convertissant automatiquement en chaîne de caractères.


Syntaxe Python
print(valeur1, valeur2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
ParamètreTypeValeur par défautDescription
valeur(s)Tout typeValeurs à afficher, converties en str
sepstr' ' (espace)Séparateur entre les valeurs
endstr'\n'Caractère affiché après la dernière valeur
fileobjet fichiersys.stdoutDestination de la sortie (écran ou fichier)
flushboolFalseVider le tampon immédiatement si True

Exemple n°1 — Usages courants de print()

a = 2
b = 5
tab = [2, 3, 5]

# Afficher un message
print("Bonjour")

# Afficher une variable
print(a)

# Afficher un message et une variable
print("Valeur de a :", a)

# Afficher plusieurs valeurs (séparateur par défaut : espace)
print("a =", a, "et b =", b)

# Utiliser un séparateur personnalisé
print("a", a, "b", b, sep=" | ")

# Utiliser end pour rester sur la même ligne
for elm in tab:
    print(elm, end=" → ")
print("fin")
Sortie
Bonjour
2
Valeur de a : 2
a = 2 et b = 5
a | 2 | b | 5
2 → 3 → 5 → fin

Formatage de sortie

Python propose trois méthodes pour formater les chaînes affichées. La méthode recommandée depuis Python 3.6 est les f-strings.

MéthodeSyntaxeDisponible depuisRecommandé ?
f-stringf"texte {var}"Python 3.6+✅ Oui
str.format()"texte {}".format(var)Python 2.7+⚠️ Acceptable
Opérateur %"texte %s" % varPython 2❌ Déconseillé

Exemple n°2 — f-strings (méthode recommandée)

nom    = "Mostafa"
note   = 18.5
rang   = 1

print(f"Étudiant : {nom}")
print(f"Note     : {note:.2f} / 20")    # 2 décimales
print(f"Rang     : {rang:03d}")          # 3 chiffres avec zéros
print(f"Mention  : {'Excellent' if note >= 16 else 'Bien'}")
Sortie
Étudiant : Mostafa
Note     : 18.50 / 20
Rang     : 001
Mention  : Excellent

Exemple n°3 — str.format()

a, b = 4, 12

# Accolades vides — ordre positionnel
print("a = {} et b = {}".format(a, b))

# Avec index
print("b = {1} et a = {0}".format(a, b))

# Avec arguments nommés
print("{msg} a = {v1} et b = {v2}".format(msg="Valeurs :", v1=a, v2=b))
Sortie
a = 4 et b = 12
b = 12 et a = 4
Valeurs : a = 4 et b = 12

Exemple n°4 — Opérateur % (style C)

b = 34.534534534

print("b = %.2f"  % b)    # 2 décimales
print("b = %10.3f" % b)   # largeur 10, 3 décimales
print("b = %e"    % b)    # notation scientifique
Sortie
b = 34.53
b =     34.535
b = 3.453453e+01
Astuce — Spécificateurs de format f-string Les f-strings acceptent des spécificateurs de format après le ::
pi = 3.14159265

print(f"{pi:.2f}")     # 3.14     — 2 décimales
print(f"{pi:10.3f}")   #      3.142 — largeur 10, 3 décimales
print(f"{pi:e}")       # 3.141593e+00 — notation scientifique
print(f"{1000000:,}")  # 1,000,000 — séparateur de milliers
print(f"{'Python':>10}")  # '    Python' — aligné à droite

Fonction input()

input() suspend l'exécution du programme, affiche un message optionnel et attend que l'utilisateur saisisse une valeur puis appuie sur Entrée. Elle retourne toujours une chaîne (str), quelle que soit la valeur tapée.


Syntaxe Python
variable = input("message à afficher : ")
Attention — input() retourne toujours un str Même si l'utilisateur tape 42, la valeur reçue est la chaîne "42", pas l'entier 42. Il faut convertir explicitement avec int() ou float() avant tout calcul.

Exemple n°5 — Saisie brute

a = input("Saisir une valeur : ")
print(type(a))   # <class 'str'>
print(a)         # "5" — chaîne, pas un entier !
Sortie
Saisir une valeur : 5
<class 'str'>
5

Exemple n°6 — Conversion en entier avec int()

a = int(input("Saisir un entier : "))
b = int(input("Saisir un autre entier : "))

print(f"Somme     : {a + b}")
print(f"Produit   : {a * b}")
print(f"Quotient  : {a / b:.2f}")
Sortie
Saisir un entier : 10
Saisir un autre entier : 4
Somme     : 14
Produit   : 40
Quotient  : 2.50

Exemple n°7 — Saisie avec validation

try:
    note = float(input("Saisir une note (0-20) : "))
    assert 0 <= note <= 20, "Note hors intervalle !"
    print(f"Note saisie : {note:.1f}/20")
except ValueError:
    print("Erreur : veuillez saisir un nombre.")
except AssertionError as e:
    print(f"Erreur : {e}")
Sortie
Saisir une note (0-20) : 25
Erreur : Note hors intervalle !

Exemple n°8 — Saisie multiple sur une ligne

# Saisir plusieurs valeurs séparées par des espaces
valeurs = input("Saisir trois entiers (ex: 1 2 3) : ").split()
a, b, c = int(valeurs[0]), int(valeurs[1]), int(valeurs[2])

# Version concise avec map()
# a, b, c = map(int, input("Saisir trois entiers : ").split())

print(f"a={a}, b={b}, c={c}, somme={a+b+c}")
Sortie
Saisir trois entiers (ex: 1 2 3) : 4 7 2
a=4, b=7, c=2, somme=13
Astuce — Saisie multiple avec map() Pour lire plusieurs entiers en une seule ligne, le pattern map(int, input().split())est très courant en algorithmique et dans les concours :
# Lire n valeurs entières sur une ligne
a, b, c = map(int, input("Entiers : ").split())

# Lire une liste entière
liste = list(map(int, input("Liste : ").split()))

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.