Exercices de base avec Python

jeudi 5 septembre 2013
par  Nathalie CARRIÉ

Correction d’exercices Python proposés par Gérard Swinnen dans son livre « Apprendre à programmer avec Python ». Ce livre est téléchargeable au format PDF ici.
La correction est proposée pour Python 2.7 et est évidemment non-exhaustive.

Python, les bases : lecture de code

  • Utilisation de l’opérateur modulo :
  • Donner le résultat obtenu à l’exécution de ce code Python :
  • Lire le code suivant : Le modifier pour tester un nombre réel quelconque.
  • Lecture et compréhension de code :

Python, les bases : écriture de code

Calcul simple avec des variables numériques

  • Écrire un programme qui calcule le volume d’un parallélépipède rectangle dont sont fournis au départ la largeur, la hauteur et la profondeur.
 # Ouvrir un terminal et taper la commande python
>>> # -*- coding: utf-8 -*-             # Cette première ligne est nécessaire dès l'utilisation de caractères accentués.
 
>>> l=input("Entrez la largeur : ")
>>> h=input("Entrez la hauteur : ")
>>> p=input("Entrez la profondeur : ")
>>> print("Volume du parallélépipède = "+str(l*h*p))

Sortie du code :

 # Ouvrir un terminal et se déplacer dans le répertoire où se trouve le programme Python que l'on a appelé pour l'exemple VolumeParallelepipedeRectangle.py.
> python './VolumeParallelepipedeRectangle.py'
Entrez la largeur : 7
Entrez la hauteur : 4
Entrez la profondeur : 8
Volume du parallélépipède = 224
>

Utilisations de la boucle for

Suite géométrique de raison 3

  • Écrire un programme qui affiche une suite de 12 nombres dont chaque terme soit égal au triple du terme précédent.
 
a=input("Entrez un nombre : ")
for i in range(12):
        print(i+1,a)
        a=a*3
 

Résultat du programme :

 # Ouvrir un terminal et se déplacer dans le répertoire où se trouve le programme Python que l'on a appelé pour l'exemple SuiteDe12Triples.py.
>python './SuiteDe12Triples.py'
Entrez un nombre : -2
(1, -2)
(2, -6)
(3, -18)
(4, -54)
(5, -162)
(6, -486)
(7, -1458)
(8, -4374)
(9, -13122)
(10, -39366)
(11, -118098)
(12, -354294)

Multiples de 7

  • Écrire un programme qui affiche les 20 premiers multiples de 7.
    # Dans un terminal python :
    >>>
    >>> for i in range(0,20):
    ...     print(7*i)
    ...
    0
    7
    14
    21
    28
    35
    42
    49
    56
    63
    70
    77
    84
    91
    98
    105
    112
    119
    126
    133
    >>>

Pour avoir les 20 premiers multiples de 7 non nuls, on fera :

>>>
>>> for i in range(1,21):
...     print(7*i)
...
7
14
21
28
35
42
49
56
63
70
77
84
91
98
105
112
119
126
133
931
>>>

On peut améliorer l’affichage du résultat en utilisant des chaînes de caractères et donc la fonction str() qui transforme un entier en string.

>>> for i in range(20):
...     print("  "+str(i)+"*7 = "+str(i*7))
...
>>>

Sortie du code :

 # Ouvrir un terminal et se déplacer dans le répertoire où se trouve le programme Python que l'on a appelé pour l'exemple MultiplesDe7.py.
 
> python './MultiplesDe7.py'
  0*7 = 0
  1*7 = 7
  2*7 = 14
  3*7 = 21
  4*7 = 28
  5*7 = 35
  6*7 = 42
  7*7 = 49
  8*7 = 56
  9*7 = 63
  10*7 = 70
  11*7 = 77
  12*7 = 84
  13*7 = 91
  14*7 = 98
  15*7 = 105
  16*7 = 112
  17*7 = 119
  18*7 = 126
  19*7 = 133
>
  • Écrire un programme qui affiche les 20 premiers termes de la table de multiplication par 7, en signalant au passage (à l’aide d’une astérisque) ceux qui sont des multiples de 3.
    chaine=""
    for i in range(20):
            multiple=(i+1)*7
            if multiple%3 == 0:
                    chaine+="  "+str(i+1)+"*7 = "+"*"+str((i+1)*7)+"\n"
            else:
                    chaine+="  "+str(i+1)+"*7 = "+str((i+1)*7)+"\n"
    print(chaine)
    >>>

Sortie du code :

 # Ouvrir un terminal et se déplacer dans le répertoire où se trouve le programme Python que l'on a appelé pour l'exemple MultiplesDe7AvecMarquageSiMultipleDe3.py.
 
> python './MultiplesDe7AvecMarquageSiMultipleDe3.py'
  1*7 = 7
  2*7 = 14
  3*7 = *21
  4*7 = 28
  5*7 = 35
  6*7 = *42
  7*7 = 49
  8*7 = 56
  9*7 = *63
  10*7 = 70
  11*7 = 77
  12*7 = *84
  13*7 = 91
  14*7 = 98
  15*7 = *105
  16*7 = 112
  17*7 = 119
  18*7 = *126
  19*7 = 133
  20*7 = 140
>

Concaténation multiple d’une chaîne de caractères

  • Écrire un programme qui affiche la suite de symboles suivante :

*
**
***
****
*****
******
*******

 
a='*'
for i in range(7):
        print(a*(i+1))
 

Conversion de monnaies

 
s = 1
coeff=input("Entrez le cours du dollar canadien : ")
while s <= 16384:
        print(str(s)+" euro(s) = "+str(s*coeff)+" dollar(s) ")
        s = s *2

Résultat du programme :

 # Ouvrir un terminal et se déplacer dans le répertoire où se trouve le programme Python que l'on a appelé pour l'exemple EurosEnDollars.py.
> python './EurosEnDollars.py'
Entrez le cours du dollar canadien : 1.39
1 euro(s) = 1.39 dollar(s)
2 euro(s) = 2.78 dollar(s)
4 euro(s) = 5.56 dollar(s)
8 euro(s) = 11.12 dollar(s)
16 euro(s) = 22.24 dollar(s)
32 euro(s) = 44.48 dollar(s)
64 euro(s) = 88.96 dollar(s)
128 euro(s) = 177.92 dollar(s)
256 euro(s) = 355.84 dollar(s)
512 euro(s) = 711.68 dollar(s)
1024 euro(s) = 1423.36 dollar(s)
2048 euro(s) = 2846.72 dollar(s)
4096 euro(s) = 5693.44 dollar(s)
8192 euro(s) = 11386.88 dollar(s)
16384 euro(s) = 22773.76 dollar(s)
>

Conversion de secondes en années, mois, jours, heures, minutes, secondes

  • Écrire un programme qui convertisse un nombre entier de secondes fourni au départ en un nombre d’années, de mois, de jours, d’heures, de minutes et de secondes.

On utilisera les opérateurs // (division entière) et % (modulo).

# -*- coding:utf8 -*-
# Le nombre de secondes est fourni au départ :
# (un grand nombre s'impose !)
nsd = 12345678912
# Nombre de secondes dans une journée :
nspj = 3600 * 24
# Nombre de secondes dans un an (soit 365 jours -
# on ne tiendra pas compte des années bissextiles) :
nspa = nspj * 365
# Nombre de secondes dans un mois (en admettant
# pour chaque mois une durée identique de 30 jours) :
nspm = nspj * 30
# Nombre d'années contenues dans la durée fournie :
na = nsd // nspa
# division <entière>
nsr = nsd % nspa
# n. de sec. restantes
# Nombre de mois restants :
nmo = nsr // nspm
# division <entière>
nsr = nsr % nspm
# n. de sec. restantes
# Nombre de jours restants :
nj = nsr // nspj
# division <entière>
nsr = nsr % nspj
# n. de sec. restantes
# Nombre d'heures restantes :
nh = nsr // 3600
# division <entière>
nsr = nsr % 3600
# n. de sec. restantes
# Nombre de minutes restantes :
nmi = nsr // 60
# division <entière>
nsr = nsr % 60
# n. de sec. restantes
print("Nombre de secondes à convertir : "+str(nsd))
print("Cette durée correspond à "+str(na)+" années de 365 jours, plus "+str(nmo)+" mois de 30 jours, "+str(nj)+" jours, "+str(nh)+" heures, "+str(nmi)+" minutes et "+str(nsr)+ " secondes. ")

Résultat du programme avec vérification :

>python './SecondesEnAmjhms-Python2.py'
Nombre de secondes à convertir : 12345678912
Cette durée correspond à 391 années de 365 jours, plus 5 mois de 30 jours, 24 jours, 19 heures, 15 minutes et 12 secondes.
>

Exercices à faire

Exercices sur les chaînes de caractères

Exercices sur les listes


Commentaires

Annonces

Prochains rendez-vous de l’IREM

Séminaire EDIM-IREM

- Mercredi 8 février 2017, 14h-18h, campus du Tampon, amphi 120 B
- Mercredi 8 mars 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mercredi 12 avril 2017, 14h-18h, campus du Tampon
- Mercredi 3 mai 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mardi 13 juin 2017, 14h-18h, campus du Tampon
- Mercredi 14 juin 2017, 14h-18h, PTU, Saint-Denis, salle S23.6

Semaine des mathématiques

Du 23 mars au 4 avril 2017 dans l’académie de la Réunion.


Brèves

Travailler à plusieurs

lundi 19 décembre 2016

Les enseignements d’exploration au lycée imposent aux enseignants de travailler ensemble. Chantal Tuffery-Rochdi a analysé dans sa thèse les pratiques des enseignants de MPS (méthodes et pratiques scientifiques). Elle répond aux questions des Cahiers pédagogiques.

Un document sur Eduscol

mardi 19 mai 2015

Un document clarifiant bien la façon dont les mêmes concepts vivent en mathématiques et dans les sciences « exactes » les utilisant, publié par Eduscol en octobre 2014. Citons-les :
« Le document proposé ci-dessous s’adresse aux professeurs de mathématiques, physique-chimie et sciences de l’ingénieur intervenant dans le segment [Bac-3 ; Bac+3]. Il vise à les informer des différences de présentation et d’interprétation qui sont faites de certains concepts mathématiques dans les autres disciplines. Ces éclaircissements peuvent contribuer à harmoniser et à clarifier l’utilisation de ces notions auprès des élèves. »

Les métiers des mathématiques et de l’informatique

dimanche 22 mars 2015

Une brochure de l’ONISEP réalisée à l’initiative des cinq sociétés savantes, Femmes & Mathématiques, Société informatique de France, Société française de statistique, Société de mathématiques appliquées et industrielles, Société mathématique de France, représentant l’ensemble de la communauté française d’informatique et de mathématiques.

Histoire de la comptabilité

vendredi 28 décembre 2012

Sur ce site (en anglais) dédié à la comptabilité, on trouve des informations intéressantes sur l’histoire et les pratiques de ce domaine, qui peuvent être utiles aux professeurs enseignant des mathématiques financières (et aussi aux autres...).

La CGE et la réforme des lycées

lundi 16 janvier 2012

La Conférence des Grandes Écoles publie 19 préconisations pour la réforme du lycée.

Sur le Web : Les 19 préconisations

Pratique des mathématiques en série STD2A

lundi 16 janvier 2012

Le site de l’IGEN offre des recommandations et des ressources pour enseigner les mathématiques en série STD2A. Les thèmes abordés (couleurs et nuances de gris, arcs et architecture, jeux vidéos, photo et tableur, perspectives parallèles...) sont de nature à donner aussi des idées d’activités aux enseignants des autres séries !

En cheminant avec Kakeya

lundi 16 janvier 2012

Un livre (à télécharger) de Vincent Borelli et Jean-Luc Rullière qui présente le calcul intégral et la dérivation en s’appuyant sur la question de Kakeya. Pour les lycéens, les étudiants et tous les esprits curieux qui souhaitent voir les mathématiques sous un jour différent.

Sur le Web : Livre à télécharger

Bicentenaire Galois

lundi 12 septembre 2011

À l’occasion du bicentenaire de la naissance d’Évariste Galois (1811-2011), l’Institut Henri Poincaré et la Société mathématique de France organisent un ensemble de manifestations et proposent un site contenant diverses ressources documentaires susceptibles d’intéresser les enseignants.

Statistiques

Dernière mise à jour

jeudi 23 février 2017

Publication

732 Articles
Aucun album photo
125 Brèves
11 Sites Web
126 Auteurs

Visites

744 aujourd'hui
1056 hier
1929905 depuis le début
28 visiteurs actuellement connectés