Types et variables

Author

Ludovic Deneuville

Avant de commencer

  • Téléchargez ce notebook Jupyter
  • Connectez-vous au Jupyter ENSAI avec id et mot de passe
    • ou une autre plate-forme (SSPCloud, Jupyter Lab, Google Colab, Kaggle…)
  • Importez le fichier .ipynb

Introduction

Dans ce notebook, nous allons découvrir les types de base en python :

  • numériques
    • int : entiers
    • float : décimaux
  • chaines de caractères : str
  • booléens : bool

1 Affectation de variables

# Créer la variable a et lui affecter la valeur 8
a = 8

# Créer la variable b et lui affecter la chaîne de caractère "texte"
b = "texte"

# Créer la variable c et lui affecter le booléen True
c = True
# Afficher le contenu de a
a

Remarque : Un notebook n’affiche que la dernière valeur qui lui est demandé.
Pour réaliser plusieurs affichages, il faut utiliser la méthode print

print(a+1)
print(b)
print(c)

Python est langage typé dynamiquement.
Cela siginifie qu’il est possible de modifier le type d’une variable sans contrainte.
Si la variable a contient du texte, il est possible de lui affecter ensuite un entier.

print(a)
a = "abcd"
print(a)
a = False
print(a)

Astuce : Pour afficher toutes les variables créées et leurs valeurs, vous pouvez utiliser la commande %whos

%whos

2 Nombres

La fonction type permet de connaitre le type

a = 8
type(a)
b = 33.5
type(b)
float('inf')

2.1 Convertions

Les fonctions float et int peuvent être utilisées pour passer d’un type à l’autre.

# Conversion en float
float(a)
# Conversion en int (partie entière)
int(b)
# Notation scientifique
2.1e3

2.2 Opérations arithmétiques de base

# Addition
1 + 1
# Soustraction
6 - 2
# Multiplication
3 * 4
# Division
11 / 5
# Division euclidienne : quotient
11 // 5
# Division euclidienne : reste (modulo)
11 % 5
# Puissance
2 ** 10
# Racine carrée
36 ** 0.5

3 Chaînes de charactères

Les chaînes de caractères (strings) sont utilisées pour stocker de l’information textuelle.

Un string se définit en mettant l’information entre apostrophes ' ou entre guillemets ".

3.1 Définition

a = 'une chaine de caractères définie avec des apostrophes'
a
b = "une chaine de caractères définie avec des guillemets"
b
# Pour inclure une apostrophe à l'intérieur de la chaine
"j'inclus l'apostrophe"
# Pour inclure des guillemets à l'intérieur de la chaine
'les "guillemets" sont là'

3.2 Métodes utiles

Voici un aperçu de quelques méthodes utiles. De nombreuses autres existent (voir documentation officielle)

# Longueur d'une chaîne (nombre de caractères)
len("J'ai 18 caractères")
# Concaténation
"I am" + "your father"
" ".join(["I am", "your father"])
# Concaténation avec un nombre
annee = 2
"je suis en " + annee + "ème année"

Problème, il faut au préalable convertir le nombre en chaîne de caractères.
La méthode str fait le travail.

# Concaténation avec un nombre - après convertion du nombre en string
annee = 2
"je suis en " + str(annee) + "ème année"
# Répétition
"hop " * 5
# Mettre en majuscules
"C'est OK".upper()
# Mettre en minuscules
"C'est OK".lower()
# Compter le nombre d'occurences
"Mangez cinq fruits et légumes par jour".count("a")
# Créer une liste de mots
"Mangez cinq fruits et légumes par jour".split()
# Séparer les mots selon un caractère spécifique
"un-deux-trois-soleil".split("-")
# Utiliser les strings comme templates
"mon numéro est : {}".format("06 12 34 56 78")
# Commence par ?
"vélo".startswith("vé")
# Se termine par ?
"vélo".endswith("lo")

3.3 Extraire des sous-chaînes

Une chaîne de caractères est considérée en Python comme une liste de caractères.
Il est donc possible d’extraire différents éléments de cette liste

# Premier élémént
"c'est de toute beauté"[0]
# Deuxième élémént
"c'est de toute beauté"[1]
# Dernier élémént
"c'est de toute beauté"[-1]
# À partir d'un certain caractère
"c'est de toute beauté"[6:]
# Jusqu'à un certain caractère
"c'est de toute beauté"[:8]
# Extraire une sous-chaîne
"c'est de toute beauté"[9:14]
# Extraire tous les 2 caractères, à partir de la 4 ème position
"c'est de toute beauté"[4::2]
# Inverser une chaîne
"c'est de toute beauté"[::-1]

Caractères spéciaux

Pour insérer des caractères spéciaux au sein d’une chaîne de caractère, il faut utiliser le caractère d’échappement \.

Caractère Description
\ Caractère d’échappement
\’ Apostrophe
\” Guillemets doubles
\n Retour à la ligne
\t Tabulation horizontale
\r Retour chariot
c = "une chaîne\nsur 2 lignes"
print(c)
# Définir une chaîne de caractères sur plusieurs lignes
d = """une autre \"possibilité\" pour
avoir une chaîne sur 2 lignes"""
print(d)

4 Boléens

Les Booléens ne peuvent prendre que deux valeurs : True et False
Attention à bien respecter la notation avec la première lettre en majuscule et les autres en minuscule.

type(True)

4.1 Opérateurs de comparaison

Opérateur Signification
== Egal à
!= Non égal à
< Strictement inférieur à
> Strictement supérieur à
<= Inférieur ou égal à
>= Supérieur ou égal à
8 > 5
1+1 == 2
[1, 2, 3] == [1, 2, 3]
"girafe" != "gnou"
# Enchainement d'opérateurs
1 < 2 == 2 >= 1 != 2

4.2 Opérateurs and, or, not

a = True
b = False

a and b
a or b
not a
(a or b) and (a and not b)

5 Exercices

5.1 Exercice 1

Calculer la somme des longueurs des trois chaînes de caractères suivantes :

  • “une première chaîne”
  • “et une deuxième”
  • “jamais deux sans trois”
# Tapez votre réponse dans cette cellule

5.2 Exercice 2

Quel est le type adapté pour définir un code postal ?

Essayer de définir les codes postaux suivants au format int et au format string :

  • 92120
  • 02350

Que concluez-vous ?

# Tapez votre réponse dans cette cellule

5.3 Exercice 3

Compter le nombre de fois où la lettre e est présente dans la chaîne suivante : Je compte le nombre de e dans cette chaîne de caractères

# Tapez votre réponse dans cette cellule

5.4 Exercice 4

Repérer la première position où la lettre e est présente dans la chaîne suivante : “Je fais un comptage des e.”

Indice : on peut utiliser la méthode built-in find.

# Tapez votre réponse dans cette cellule

5.5 Exercice 5

Supprimer les espaces superflus au début et à la fin de la chaîne suivante :

Indice : on peut utiliser la méthode built-in strip.

# Tapez votre réponse dans cette cellule
a = "    Un string très mal formatté.         "

5.6 Exercice 6

Réaliser la suite d’opérations suivantes à l’aide des opérateurs d’incrémentation, et imprimer la valeur finale :

  • initialiser une variable à 1
  • lui soustraire 5
  • la multiplier par 4
  • lui ajouter 22
# Tapez votre réponse dans cette cellule

5.7 Exercice 7

Considérons les deux séquences suivantes :

  • “nous sommes en”
  • “2022”

Trouvez à partir du tutoriel deux manières différentes de les utiliser pour composer la séquence “nous sommes en 2022”.

# Tapez votre réponse dans cette cellule