Programmation Python — Séance 1 : Valeurs, types et chaînes

Ce notebook est le terrain d’entraînement de la séance.
Télécharger le notebook Ouvrir dans Colab Les sorties sont celles enregistrées dans le notebook : rien n'est réexécuté.

DMI · FST · UCAD

Ce notebook est le terrain d’entraînement de la séance. Exécutez chaque cellule avec Maj + Entrée, dans l’ordre, et lisez la sortie qui s’affiche en dessous. Les cellules marquées À vous sont à compléter : remplacez le commentaire par votre code, puis exécutez.


1. Variables et types

Une variable est un nom auquel on attache une valeur, avec le signe =. Ce signe n’est pas l’égalité des mathématiques : c’est une affectation (« range cette valeur sous ce nom »). Chaque valeur a un type : texte (str), entier (int), décimal (float) ou booléen (bool).

nom = "Fatou"
age = 23
moyenne = 14.5
ville = "Dakar"
est_etudiant = True

print(nom)
print(age)
print(moyenne)
print(ville)
print(est_etudiant)
Fatou
23
14.5
Dakar
True

La fonction type() révèle le type d’une valeur. Python le devine tout seul à partir de la façon dont la valeur est écrite (guillemets, point décimal, True/False).

print(type(nom))
print(type(age))
print(type(moyenne))
print(type(est_etudiant))
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

À vous. Créez une variable pays (un texte) et une variable population (un entier), puis affichez le type de chacune.

# À vous : créez pays (un texte) et population (un entier), puis affichez le type de chaque variable

2. Opérations

On calcule avec les opérateurs habituels. Deux subtilités utiles : / donne toujours un résultat décimal, // est la division entière (on garde la partie entière), et % donne le reste.

a = 7
b = 2
print("somme        :", a + b)
print("difference   :", a - b)
print("produit      :", a * b)
print("division     :", a / b)
print("div. entiere :", a // b)
print("reste        :", a % b)
print("puissance    :", a ** b)
somme        : 9
difference   : 5
produit      : 14
division     : 3.5
div. entiere : 3
reste        : 1
puissance    : 49

À vous. À partir de heures = 100, affichez combien de jours entiers cela représente (avec //) et combien d’heures restent (avec %).

# À vous : à partir de heures = 100, affichez le nombre de jours entiers (//) et les heures restantes (%)

Les comparaisons (==, !=, <, >, <=, >=) produisent un booléen : True ou False. Attention : = affecte, == compare.

x = 14
print(x >= 10)
print(x == 10)
print(x != 10)
True
False
True

On combine des conditions avec and (et), or (ou), not (non).

note = 12
assiduite = True
admis = note >= 10 and assiduite
print("Admis ?", admis)
print("Pas admis ?", not admis)
Admis ? True
Pas admis ? False

À vous. Avec temperature = 32, affichez le résultat du test : la température est-elle à la fois supérieure à 30 et inférieure à 40 ?

# À vous : avec temperature = 32, affichez le résultat de  temperature > 30 and temperature < 40

3. Afficher proprement avec les f-strings

Une f-string (préfixe f devant les guillemets) insère des variables dans du texte, entre accolades { }. C’est la façon propre d’afficher un message qui mélange texte et valeurs.

prenom = "Awa"
ville = "Thiès"
print(f"Je m'appelle {prenom} et j'habite à {ville}.")
Je m'appelle Awa et j'habite à Thiès.

On peut aussi mettre en forme une valeur dans l’accolade. Par exemple :.2f affiche un décimal avec deux chiffres après la virgule.

moyenne = 14.567
print(f"Moyenne : {moyenne:.2f}")
Moyenne : 14.57

Rappel de la Séance 0 : l’opérateur + ne « colle » que du texte. Coller un nombre à du texte avec + provoque une TypeError. La f-string règle le problème en insérant la valeur entre accolades, comme dans f"Age : {age}".

À vous. Créez cfa = 1500, puis affichez avec une f-string le message : « Le repas coûte 1500 FCFA. » en insérant la variable (sans réécrire le nombre à la main).

# À vous : avec cfa = 1500, affichez avec une f-string  "Le repas coûte 1500 FCFA."  en insérant la variable

4. Les chaînes de caractères

Une chaîne (str) est une séquence de caractères. len() donne sa longueur. On accède à un caractère par sa position entre crochets : la position commence à 0, et -1 désigne le dernier.

ville = "Saint-Louis"
print("longueur :", len(ville))
print("premier  :", ville[0])
print("dernier  :", ville[-1])
longueur : 11
premier  : S
dernier  : s

À vous. Avec mot = "Sénégal", affichez sa longueur, son premier caractère, puis son dernier caractère.

# À vous : avec mot = "Sénégal", affichez sa longueur, son premier caractère et son dernier

On extrait un morceau par découpage (slicing) : [debut:fin] prend les caractères de debut jusqu’à fin exclu. On peut omettre l’un des deux bornes.

ville = "Saint-Louis"
print(ville[0:5])
print(ville[6:])
print(ville[:5])
Saint
Louis
Saint

À vous. Avec code = "DK-2024", extrayez d’abord "DK", puis "2024", par découpage.

# À vous : avec code = "DK-2024", extrayez "DK" puis "2024" par découpage

Les chaînes offrent des méthodes (des outils attachés à la valeur, appelés avec un point). Les plus utiles : .strip() enlève les espaces aux bords, .upper() / .lower() changent la casse, .replace(a, b) remplace.

phrase = "  Bonjour Dakar  "
print(phrase.strip())
print(phrase.strip().upper())
print(phrase.strip().lower())
print(phrase.strip().replace("Dakar", "Thiès"))
Bonjour Dakar
BONJOUR DAKAR
bonjour dakar
Bonjour Thiès

Important : une méthode de chaîne renvoie une nouvelle chaîne ; l’originale ne change pas (on dit qu’une chaîne est immuable).

mot = "dakar"
print(mot.upper())
print(mot)
DAKAR
dakar

Enfin, .split(sep) découpe une chaîne en une liste de morceaux, selon un séparateur. C’est très utilisé pour lire des données.

villes = "Dakar,Thiès,Kaolack".split(",")
print(villes)
print("nombre de villes :", len(villes))
['Dakar', 'Thiès', 'Kaolack']
nombre de villes : 3

À vous. Avec noms = "Fatou;Amadou;Cheikh", séparez les prénoms (séparateur ;) avec .split, puis affichez la liste obtenue.

# À vous : avec noms = "Fatou;Amadou;Cheikh", séparez les prénoms avec .split puis affichez la liste

Récapitulatif

  • Une variable (=) attache une valeur à un nom ; chaque valeur a un type (str, int, float, bool), révélé par type().
  • Les opérations : arithmétique (+ - * / // % **), comparaisons et booléens (and/or/not) produisent True/False.
  • Les f-strings (f"... {variable} ...") affichent proprement texte et valeurs ; :.2f met en forme.
  • Une chaîne est une séquence : len, indexation [i], découpage [a:b], méthodes .strip/.upper/.lower/.replace/.split ; elle est immuable.

Prochaine séance — S2 : les structures de données (listes, tuples, dictionnaires, ensembles).

Retour au sommet