Skip to content

TD1. Premiers programmes

L'objectif de ce premier TD est d'être capable d'écrire et de comprendre entièrement les premiers programmes python que nous réaliserons en TP.

Exercice 1 : exécution pas à pas

On considère le programme suivant :

#!/usr/bin/env python3

a = 7

def f(a):
    b = 8
    a = a + b
    print(a)

a = 11
print(a)
f(a)
print(a)

Question 1

Exécuter le programme en modifiant sur un dessin l'état des différentes variables et en notant ce qui s'affiche sur la sortie standard.

Exercice 2 : types primitifs

On considère le programme suivant :

#!/usr/bin/env python3

a = "1"
b = "3"
print(a + b)

a = 1
b = 3
print(a + b)

a = "1"
b = 3
print(a + b)

t = (1, 3)
print(t[0] + t[1])

t = (1, "3")
print(t[0] + t[1])

Question 1

Exécuter le programme en modifiant sur un dessin l'état des différentes variables et en notant leur type ainsi que ce qui s'affiche sur la sortie standard.

Exercice 3 : mes propres types

On considère le programme suivant :

#!/usr/bin/env python3
"""Illustration des namedtuple"""

import collections

bob = ("Robert", 23)
bill = ("William", 47)

# affiche le prénom de bob et l'age de bill (beurk)
print(bob[0])
print(bill[1])

Personne = collections.namedtuple("Personne", "prenom age")

bob = Personne("Robert", 23)
bill = Personne("William", 47)

# affiche le prénom de bob et l'age de bill (plus lisible !)
print(bob.prenom)
print(bill.age)

bill.age = 43

Question 1

Exécuter le programme en modifiant sur un dessin l'état des différentes variables et en notant ce qui s'affiche sur la sortie standard.

Exercice 4 : et dans un autre langage, ça donne quoi ?

On considère le programme suivant :

#!/usr/bin/env ruby

a = 2010

def f(p)
  puts "bienvenue "
  return p + 10
end

puts "à l'Ensimag "

a = f(a)
puts "en " + String(a)
puts "(signé Yoda)"

Question 1

Exécuter le programme en modifiant sur un dessin l'état des différentes variables et en notant ce qui s'affiche sur la sortie standard.

Exercice 5 : et encore dans un autre langage, ça donne quoi ? (pour aller plus loin)

Question 1

Réécrire le programme de l'exercice précédent dans le langage impératif de votre choix (autre que Python et Ruby, en C par exemple).

Question 2

Identifier les différences fondamentales avec Python.