Aller au contenu principal

Lecture et écriture en console

Écriture​

Plusieurs valeurs sur la même ligne:

a: int = 3
b: str = "ABC"
print(a, b) # Affiche: 3 ABC

Par défaut, print sépare chaque élément par un espace et termine par un retour à la ligne (un enter). Vous pouvez changer ce comportement avec des paramètres nommés:

print(a, b, sep=' ', end='\n') # Ne fait rien de différent
print(a, b, sep='') # Ne fait plus d'espace entre les éléments
print(a, b, sep=',') # Ajoute une virgule entre chaque élément
print(a, b, end='') # Ne fait plus de retour à la ligne à la fin

Vous pouvez aussi utiliser une chaîne littérale (string literal) afin de simplifier le print:

print(f'Bonjour {a} et {b}') # Affiche: Bonjour 3 et ABC

Une chaîne littérale (f-string) débute par f, le contenu entre accolades est interprété par Python. Ajoutez : suivi d'un code de formatage pour contrôler l'affichage (voir liste ci-dessous).

PI: float = 3.141592653589793238462643383279502884197
taxes: float = 0.05
print(f'{PI:.2f} et {taxes:.0%}') # Affiche: 3.14 et 5%

Voici les autres caractères de formatage disponibles (liste non exhaustive):

  • :<8 Ajoute des espaces à droite de la valeur jusqu'à ce que le texte prenne 8 "espaces" (on aligne la valeur à gauche)
  • :>8 Idem, mais aligne la valeur à droite
  • :^8 Idem, mais aligne la valeur au centre
  • :*>8 Idem à :>8, mais utilise * au lieu d'un espace pour remplir (n'importe quel caractère peut remplacer le *)
  • :02d Ajoute des 0 à gauche de la valeur jusqu'à ce que le texte prenne 2 caractères, utile pour un temps (04:57:03 au lieu de 4:57:3)
  • :=8 Place le signe négatif à gauche, la valeur à droite, puis ajoute des espaces entre les 2
  • :+ Ajoute un symbole + pour les nombres positifs et le - pour les nombres négatifs
  • :- Idem, mais juste pour les négatifs (donc ne sert à rien)
  • : (un espace après le :) Idem au :+, mais utilise un espace au lieu du +
  • :, Utilise une virgule comme séparateur de milliers
  • :_ Idem, mais avec un souligné
  • :b Formate le nombre en binaire
  • :c Affiche la lettre correspondant au nombre selon le code ASCII
  • :d Affiche le nombre en format décimal, donc ne fait rien
  • :e Affiche le nombre en format scientifique avec un e
  • :E Idem mais avec E
  • :.2f Nombre de décimales fixes, 2 décimales dans ce cas
  • :.2F Idem, mais infini va être INF au lieu de inf
  • :g Utilise la notation scientifique seulement si le nombre est très grand ou très petit, sinon la notation habituelle
  • :G Idem, mais avec un E majuscule pour la notation scientifique
  • :o Affiche le nombre en format octal
  • :x Affiche le nombre en format hexadécimal
  • :X Idem, mais les lettres sont majuscules
  • :% Affiche le nombre décimal en pourcentage, donc multiplie le nombre par 100 et ajoute le symbole %

Autres façons d'écrire des chaînes:

"Coucou {} et {}".format("Alice", "Bob")
# Coucou Alice et Bob

"{0} dit coucou {0} et {1}".format("Alice", "Bob")
# Alice dit coucou Alice et Bob

"Coucou %s et %s" % ("Alice", "Bob")
# Coucou Alice et Bob

Lecture​

Pour prendre des données saisies par l'utilisateur, on utilise la fonction input. On peut poser la question à l'utilisateur directement dans input ou préalablement dans un print.

nom: str

print('Veuillez écrire votre nom:')
nom = input()

# OU

nom = input('Veuillez écrire votre nom: ')

Si vous avez besoin d'un entier, vous pouvez le convertir avec la fonction int:

ageEntree: str
age: int

ageEntree = input('Entrez votre âge: ')
age = int(ageEntree)

# OU

age = int(input('Entrez votre âge: '))

La même chose fonctionne avec float si vous avez besoin d'un nombre décimal:

prix: float = float(input('Entrez le prix: '))

Attention, si l'utilisateur entre autre chose qu'un entier le programme va planter, on va résoudre ce problème plus tard.