Python

Les nombres
Exercices pour débuter

Conseils

Même si ce site permet de tester de petits programmes en Python, il est fortement conseillé de sauvegarder ces programmes à l'aide d'un environnement de programmation en Python (Pyzo, Geany, etc...). Pour cela, il faut donner à chaque programme un nom explicite puis les «organiser» dans les répertoires adéquats.

On pourra commencer par créer un dossier [Entrees_sorties]. Ce dossier contiendra tous les programmes (scripts) rédigés à partir de cette page.

Ensuite, il faut prendre l'habitude d'insérer des commentaires (pertinents) dans son programme. En Python, ces commentaires sont précédés d'un dièse «#». Ils ne sont pas interprétés lors de l'exécution des instructions.

Remarque importante

Les programmes en Python rédigés avec ce site ne doivent pas comporter d'accents ! A cause d'un seul caractère accentué, le programme est susceptible de ne pas être exécuté correctement.
Il en sera de même pour les dossiers : pas de caractères accentués ou d'espaces. Ce problème d'encodage des caractères sera étudié plus tard au cours de l'année.

L'utilisateur entre une valeur. Dans l'exemple d'affichage ci-dessous, l'utilisateur a entré la valeur 19 après l'affichage du message.

Entrer un nombre : 19
Le carre du nombre 19 est 361

Écrire un programme qui affiche le carré du nombre fourni par l'utilisateur.


					
					
  • Une piste ?
  • Une autre piste ?
  • Encore une piste ?
  • Une solution ?
Le carré d'un nombre est égal à ce nombre multiplié par lui-même...
Ne pas oublier d'utiliser une variable à laquelle on affecte la valeur saisie par l'utilisateur.
Attention à la fonction input() qui renvoie une chaîne de caractère, pas un entier...
Il y a donc une transformation de type à effectuer.

n = int(input('Entrer un nombre :'))
print('Le carre du nombre {0} est {1}'.format(n, n**2))
	

L'utilisateur entre deux valeurs. Dans l'exemple d'affichage ci-dessous, l'utilisateur a entré la valeur 12 et 15 après les messages.

Entrer un nombre : 12
Entrer un autre nombre : 15
Leur somme est 27
Leur difference est -3
Leur produit est 180

Écrire le programme correspondant.


					
					
  • Une piste ?
  • Une autre piste ?
  • Encore une piste ?
  • Une solution ?
  • Une astuce ?
Les résultats affichés doivent s'adapter aux nombres saisis par l'utilisateur.
Ne pas oublier d'affecter les valeurs saisies par l'utilisateur à des variables.
Encore piégé par la fonction input() ?

a = int(input('Entrer un nombre : '))
b = int(input('Entrer un autre nombre : '))
print('Leur somme est {}'.format(a+b))
print('Leur difference est {}'.format(a-b))
print('Leur produit est {}'.format(a*b))
	

A la fin du programme, ajouter les instructions :


print('Ancienne valeur de a : {}'.format(a))
a += b
print('Nouvelle valeur de a : {}'.format(a))
	

L'instruction r += s permet d'incrémenter la variable r de la valeur s. Cette instruction est donc équivalente à r = r+s.

On retrouve le même comportement avec les autres opérations. Par exemple :


print('Ancienne valeur de a : {}'.format(a))
a -= b
print('Nouvelle valeur de a : {}'.format(a))
	

Traduire les instructions ci-contre en Python et implémenter le script dans un fichier.

Entrées Lire la valeur de r
pi prend la valeur 3.1416
Traitement s prend la valeur pi × r²
Sorties Afficher s
Afficher le type de s

Exécuter ce script en choisissant le nombre 100.
Recommencer en choisissant le nombre 10.
Les affichages obtenus sont-ils cohérents ?

  • Une piste ?
  • Une solution ?
  • Pourquoi ?
Les deux premières lignes se traduisent par une seule instruction.
Les deux dernières aussi...

r = int(input('Entrer un entier : '))
pi = 3.1416
s = pi * r **2
print('Valeur de s : {}'.format(s))
print('Type de s : {}'.format(type(s)))
						

Voici les affichages en choisissant le nombre 100 :

In [1]: (executing lines 1 to 5 of "Exercice02.py")
Entrer un entier : 100
Valeur de s : 31416.0
Type de s : <class 'float'>

Dans cet exemple, r est un entier, pi est un flottant donc s est un flottant par «multiplication des types». Le résultat correspond à ce qui était attendu.

Voici les affichages en choisissant le nombre 10 :

In [2]: (executing lines 1 to 5 of "Exercice02.py")
Entrer un entier : 10
Valeur de s : 314.15999999999997
Type de s : <class 'float'>

Dans cet exemple, r**2 donne 100. Le résultat attendu pour s devrait donc être 314.16. On n'obtient pas ce résultat à cause de la représentation des flottants dans la machine.

En conclusion, il faut être vraiment attentif avec l'utilisation des flottants car le calcul n'est pas effectué en valeur exacte....