Fiche d’exercices : variables et types natifs

Cette fiche s’appuie sur le cours avancé ainsi que certaines notions du cours python débutant. Chaque exercice est court et peut se faire au stylo (en prédisant le résultat) avant vérification à l’IDE.


Exercice 1 — None

​
1def verifier_age(age):
2    if age >= 18:
3        return "majeur"
4    # pas d'instruction return si age < 18
5
6resultat = verifier_age(15)
7print(resultat)
8print(type(resultat))

Sans exécuter : que vont afficher les deux print ? Justifie en une phrase.


Exercice 2 — bool, un sous-type de int

Sans exécuter, donne la valeur de chacune des expressions suivantes :

True + True
False + 10
True == 1
True * 5

Exercice 3 — bibliothèque math

Calcule à la main (ou vérifie à l’IDE) :

import math
math.sqrt(16)
math.floor(7.9)
math.ceil(7.1)
math.pow(2, 10)

Indications : math.floor -> arrondit vers le bas (plancher). math.ceil arrondit vers le haut.


Exercice 4 — round

Donne le résultat de :

round(2.5)
round(3.5)
round(3.14159, 3)

Remarque : round(2.5) te surprendra peut-être — Python utilise l’arrondi “au pair le plus proche”, pas l’arrondi classique. Cherche pourquoi si le résultat ne correspond pas à ton intuition.


Exercice 5 — typage dynamique et affectation multiple

​
1a = 5
2print(type(a))
3a = "cinq"
4print(type(a))
5
6x, y = y, x = 1, 2
7print(x, y)
  1. Que produisent les deux premiers print ? Quelle notion du cours cela illustre-t-il ?
  2. La ligne x, y = y, x = 1, 2 est syntaxiquement valide : il s’agit d’une affectation chaînée (cible1 = cible2 = expression), combinée à l’affectation multiple vue dans le cours. Sans exécuter, prédis ce qu’affiche print(x, y). Indice : l’expression 1, 2 n’est évaluée qu’une seule fois, puis affectée à chaque cible.
  3. Ecris cette expression de manière plus conventionnelle, en 2 lignes.

Exercice 6 — références, id, is et ==

​
1a = "bonjour"
2b = "bonjour"
3c = a
4
5print(a == b)
6print(a is c)
  1. Prédis le résultat des deux print.
  2. Explique avec tes mots la différence entre == et is.
  3. Que donnent les tests id(a) == id(b), et id(a) == id(c) ? Expliquer.

Exercice 7 — méthodes de chaînes

Pour la chaîne phrase = " Les Chaines De Caracteres En Python ", écris (au stylo) le code Python qui permettrait de :

  1. supprimer les espaces inutiles au début et à la fin ;
  2. mettre toute la phrase en minuscules ;
  3. remplacer "python" par "NSI" ;
  4. découper la phrase nettoyée en une liste de mots (séparateur : l’espace) ;
  5. recoller cette liste de mots avec un tiret - comme séparateur.

Exercice 8 — f-strings

Réécris chacun des print suivants en utilisant une f-string :

​
1nom = "Turing"
2annee = 1912
3print("Nom : " + nom + ", né en " + str(annee))
4print("{} a {} ans".format(nom, 2024 - annee))

Exercice 9 — parser une chaîne

On dispose de la chaîne suivante, représentant une date au format ISO :

d = "2024-09-02"
  1. En utilisant le slicing d[a:b], extrais séparément l’année, le mois et le jour dans trois variables annee, mois, jour.
  2. Propose une seconde solution utilisant la méthode split.
  3. Laquelle des deux méthodes te semble la plus robuste si le format de date changeait (par exemple un jour à un seul chiffre) ? Justifie.

Suite

Cours
TP1 Types simples
Corrigé du TP1
TD1 Variables et types natifs
Corrigé du TD1