Introduction à la programmation d’expériences

Séance 4 - boucles - chaînes de caractères - tableaux

Emmanuel Coquery

Page UE

Récapitulatif

  • expressions
  • types
  • instructions (affectation, print)
  • script
  • conditionnelles
  • boucles

Structures imbriquées

  • Il est possible d’imbriquer des structures de contrôle les unes dans les autres
  • On a déjà vu des imbrication avec des if
  • Il est possible d’imbriquer
    • des if dans des boucles
    • des boucles dans d’autres boucles
    • des boucles dans des if

Exercices

Écrire des programmes pour

  • Afficher les carrés d’entiers pairs entre 0 et 10.
  • Donner l’entier entre 0 et 20 dont le sinus a la plus grande valeur.
  • Calculer les $k$ premiers nombres premiers

Chaînes de caractères

Caractères: sous-chaînes et positions

Positions et sous-chaînes

Accéder à un morceau de chaîne

Exemple: "Gâteau au chocolat"

"Gâteau" est la sous-chaîne contenant les 6 premières lettres (on dit caractère)

Positions dans une chaîne

  • La première position est 0
  • La taille de la chaîne est donnée par la fonction len
  • La dernière position dans s est donc len(s)-1

Sous-chaînes

Opérateur [] extrait une sous-chaîne

  • s[d:f] est la sous-chaîne de s qui commence à la position d et fini à la position f-1
    (i.e. la position f exclue)

Exemple

In [1]: "abcdef"[2:4]
Out[1]: 'cd'
  • Essayer avec des positions négatives ou plus grandes que la longueur

Caractère à la position i

Opérateur [] sans :

  • s[i] est le caractère à la position i
  • valeur renvoyée comme une chaîne de taille 1

Exemple

In [2]: "abcdef"[2]
Out[2]: 'c'

Structures de données

Tableaux

Structure de données ?

  • Donnée complexe contenant des données plus simples
    • Exemple: une string contient des caractères
  • ⚠️ structure de donnée ≠ structure de contrôle ⚠️

Tableaux

  • Fonctionnement par position similaire aux string
  • Peut contenir tout type de données:
    • int, float, bool, string
    • d’autres tableaux
  • Opérateur [] similaire aux string
  • Type: list
  • Une case de tableau est ce qui contient la valeur à une position du tableau
    • Une case peut être vue comme une variable

Syntaxe des tableaux

  • Délimités par [ et ]
  • Valeurs contenues listées dans l’ordre des positions et séparées par ,

Exemples de tableaux

[] # tableau de taille 0
[1, 2, 3]
["a", "bcd", "", "fgh"]
[3.2, 3.14]
[True, False]

[ [1, 2], [7, 5], [] ]

Parcours de tableaux

On peut parcourir un tableau avec des boucles

for v in mon_tableau:
    print(v)

En utilisant les positions:

for pos in range(0,len(mon_tableau)):
    print(mon_tableau[pos])

append

Ajoute une case à la fin du tableau

t = ["ab", "cd"]
t.append("ef")
print(t)

Affectation de case

t = []
for i in range(0,3):
    t.append(i)
print(t)
for i in range(0,3):
    t[i] = i*i
print(t)
for i in range(0,3):
    t[i] = t[i]+i
print(t)

Live coding

  • Récupérer une série de nombres depuis un fichier dont le nom est saisi au clavier et les placer dans un tableau
  • Saisir un nombre k
  • Donner les k nombres les plus grands du tableau

Exercice

Saisir un nombre au clavier et afficher le triangle de Pascal avec ce nombre de lignes:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1