You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 
 

4.7 KiB

% Programmation avec Python (chapitre 4) % Dimitri Merejkowsky

\center \huge Tout depuis le début

Variables

>>> a = 3
>>> b = 4
>>> a + b
7

Maths

>>> 10 / 3
3.3333333333333335  # flottant!
>>> 10 // 3
3  # division entière - quotient
>>> 10 % 3
1  # division entière - reste

Comparaisons

>>> a = 3
>>> b = 4
>>> a == b
False
>>> a < b
True

Chaînes de caractères

>>> prénom = "Alice"
>>> message = "Bonjour, " + prénom
>>> message
"Bonjour, Alice"

input()

Lire une entrée utilisateur

prénom = input("Entrez votre prénom: ")

Conversions

score = 42
message = "Votre score est de: " + str(42)
réponse = input("Entrez votre age")
age = int(response)

Blocs - if

if a == 3:
    print("a égale 3")
else:
    print("a est différent de 3")

Blocs - while

i = 0
while i < 3:
    print(i)
    i =  i +1

Blocs - break

i = 0
while True:
    print(i)
    i = i + 1
    if i > 3:
        break

Fonctions

def additionne(x, y):
    return x + y

>>> additionne(3, 5)
8

Variables globales

# salutation est une variable globale
salutation = "Bonjour "

def dire_bonjour(prénom):
    print(salutation + prénom)

dire_bonjour("Dimitri")

Variables locales

def dire_bonjour(prénom):
    # prénom est une variable locale
    print("Bonjour " + prénom)

dire_bonjour("Dimitri")
print(prénom)

Variables locales (2)

def dire_bonjour(prénom):
    print("Bonjour " + prénom)

prénom = "Dimitri"
dire_bonjour(prénom)

Argument par défaut

def dire_bonjour(prénom, enthousiaste=False):
    message = "Bonjour " + prénom
    if enthousiaste:
        message += "!"
    print(message)
>>> dire_bonjour("John", enthousiaste=True)
Bonjour John!

>>> dire_bonjour("John")
Bonjour John

print

a = 3
print("la valeur de a est", a, "!")
la valeur de a est 3 !
print("un message " , end="")
print("sur une seule ligne ", end="")
print("mais en plusieurs bouts")
un message sur une seule ligne mais en plusieurs bouts

Listes

une_liste_vide = []
deux_éléments = [1, 2]

Itérer sur une liste

for nom in ["Alice", "Bob", "Charlie"]:
    print(nom)

Indexer une liste

>>> joueurs = ["Alice", "Bob", "Charlie"]
>>> joueurs[0]
"Alice"
>>> joueurs[1]
"Bob"
>>> joueurs[2]
"Charlie"

Modifier une liste

>>> joueurs = ["Alice", "Bob", "Charlie"]
>>> joueurs[1] = "John"
>>> joueurs
["Alice", "John", "Charlie"]

Test d’appartenance

>>> joueurs = ["Alice", "Bob", "Charlie"]
>>> "Alice" in joueurs
True
>>> "Eve" in joueurs
False

Dictionnaires

un_dictionnaire_vide = {}
une_clé_une_valeur = { "la_terre_est_plate": False }
scores = { "Alice": 20, "Bob": 14 }

Indéxer un dictionnaire

>>> scores = { "Alice": 20, "Bob": 14 }
>>> scores["Alice"]
20
>>> scores["Bob"]
14

Modifier un dictionnaire

>>> scores = { "Alice": 20, "Bob": 14 }

# mise à jour
>>> scores["Alice"] = 30
>>> scores
{ "Alice": 30, "Bob": 14 }

# insertion
>>> scores["Charlie"] = 23
>>> scores
{ "Alice": 30, "Bob": 14, "Charlie": 23 }

Test d’appartenance

>>> scores = { "Alice": 20, "Bob": 14 }
>>> "Alice" in scores
True
>>> "Eve" in scores
False

Itérer sur les clés d’un dictionnaire

scores = { "Alice": 20, "Bob": 14 }
for nom in scores:
    score = scores[nom]
    print(nom, "a un score de", score)

\center \huge Atelier

Consignes

  • Demander une longueur à l’utilisateur
  • Afficher un sapin avec la bonne taille (ici, 7):

\vfill

   #
  ###
 #####
#######
   #
   #

À faire chez vous

Préparation:

  • Aller sur:

    • git.e2li.org/
    • dmerejkowsky/cours-python /
    • tree /
    • saison-2/sources/sapin
  • Récupérer sapin_a.py et sapin_b.py

  • Choisir celui que vous préférez comme point de départ.

Premier exercice

  • Ajouter import shutil en haut du fichier
  • Utiliser la fonction shutil.get_terminal_size() pour dessiner un saping qui prend toute la place disponible

Deuxième exercice

Ajouter import random en haut du fichier

Utiliser la fonction random.randint(0, n) qui renvoie un entier entre 0 et n-1 pour remplacer certains des # par des . ou des O de façon à obtenir un sapin décoré:

                #
               ##.
              ####.
             ###.O##
            ####OO#.#
           ##O####O###
          #.########.##
         ##..##O.#######
        ########.######.O
                #
                #

Envoyez votre code et/ou vos questions par mail à dimitri@e2li.org

Bonne chance!