Interaction simple

En guise de premier exemple, nous allons concevoir un script qui calcule l'Indice de Masse Corporelle (IMC) d'un individu à partir d'informations qu'il aura saisies au clavier.

L'IMC est calculé à partir du rapport du poids (en kg) et du carré de la taille (en m).

Saisie clavier

La fonction input() retourne, sous la forme d'une chaîne de caractères, le texte saisi au clavier.

# input.py
firstname = input('Quel est votre prénom ? ')
print('Bonjour', firstname, '!')

Le script ci-dessus produit le résultat suivant :

Quel est votre prénom ? Olivier
Bonjour Olivier !

Affichage

Comme illustré dans l'exemple précédent, la fonction print() permet d'afficher du texte ou des valeurs de variables dans le terminal. Vous pouvez aussi utiliser des caractères spéciaux au sein des chaînes de caractères que vous désirez afficher.

Caractère Description
\n Retour à la ligne
\t Tabulation
\' Apostrophe, pour ne pas la confondre avec celles utilisées pour délimiter la chaîne de caractères

Calcul de l'Indice de Masse Corporelle (IMC)


################################################
#                                              #
# Calcul de l'indice de masse corporelle (IMC) #
#                                              #
################################################


Votre poids (en kg) ? 84
Votre taille (en m) ? 1.86

IMC = 24.28

Exercice

Écrivez un script Python imc.py qui calcule l'IMC. Vous créerez deux variables de type décimal weight et height pour stocker les valeurs saisies par l'utilisateur.

Correction
# Calcul de l'indice de masse corporelle
# IMC = poids/hauteur^2

print('\n\n################################################')
print('#                                              #')
print('# Calcul de l\'indice de masse corporelle (IMC) #')
print('#                                              #')
print('################################################\n')

weight = float(input('Votre poids (en kg) ? '))
height = float(input('Votre taille (en m) ? '))

imc = weight / ( height * height )
print('\nIMC =', imc)

On désire enrichir ce premier script en affichant, en plus de la valeur de l'IMC, un commentaire basé sur les intervalles ci-dessous :

Intervalle Diagnostic
IMC ≤ 16.5 Dénutrition ou anoréxie
16.5 < IMC ≤ 18.5 Maigreur
18.5 < IMC ≤ 25 Corpulence normale
25 < IMC ≤ 30 Surpoids
30 < IMC ≤ 35 Obésité modérée
35 < IMC ≤ 40 Obésité sévère
IMC > 40 Obésité morbide

################################################
#                                              #
# Calcul de l'indice de masse corporelle (IMC) #
#                                              #
################################################


Votre poids (en kg) ? 84
Votre taille (en m) ? 1.86

IMC = 24.28
corpulence normale

Exercice

Modifiez le script Python imc.py afin de tester la valeur de l'IMC pour afficher le commentaire approprié.

Correction
# Calcul de l'indice de masse corporelle
# IMC = poids/hauteur^2

print('\n\n################################################')
print('#                                              #')
print('# Calcul de l\'indice de masse corporelle (IMC) #')
print('#                                              #')
print('################################################\n')

weight = float(input('Votre poids (en kg) ? '))
height = float(input('Votre taille (en m) ? '))

imc = weight / ( height * height )
print('\nIMC =', imc)

if imc<=16.5:
    interpretation = 'dénutrition ou anoréxie'
elif imc<=18.5:
    interpretation = 'maigreur'
elif imc<=25:
    interpretation = 'corpulence normale'
elif imc<=30:
    interpretation = 'surpoids'
elif imc<=35:
    interpretation = 'obésité modérée'
elif imc<=40:
    interpretation = 'obésité sévère'
else:
    interpretation = 'obésité morbide'

print(interpretation) 

Pour finir, on souhaite ajouter une dernière modification au script imc.py : le script interroge l'utilisateur s'il désire effectuer un nouveau calcul d'IMC avec d'autres valeurs. Tant que l'utilisateur ne répond pas non, le script boucle.


################################################
#                                              #
# Calcul de l'indice de masse corporelle (IMC) #
#                                              #
################################################


Votre poids (en kg) ? 84
Votre taille (en m) ? 1.86

IMC = 24.28
corpulence normale

Voulez-vous continuer [O/N] ?

Exercice

Apportez une dernière modification au script en proposant de continuer le calcul de l'IMC à l'aide de la clause while.

Correction
# Calcul de l'indice de masse corporelle v2
# IMC = poids/hauteur^2


while True: # condition toujours vraie => boucle infinie
    print('\n\n################################################')
    print('#                                              #')
    print('# Calcul de l\'indice de masse corporelle (IMC) #')
    print('#                                              #')
    print('################################################\n\n')

    weight = float(input('Votre poids (en kg) ? '))
    height = float(input('Votre taille (en m) ? '))
    
    imc = weight / ( height * height )
    print('\nIMC =', imc)
    
    if imc<=16.5:
        interpretation = 'dénutrition ou anoréxie'
    elif imc<=18.5:
        interpretation = 'maigreur'
    elif imc<=25:
        interpretation = 'corpulence normale'
    elif imc<=30:
        interpretation = 'surpoids'
    elif imc<=35:
        interpretation = 'obésité modérée'
    elif imc<=40:
        interpretation = 'obésité sévère'
    else:
        interpretation = 'obésité morbide'
    
    print(interpretation + '\n')

    answer = input('Voulez vous continuer [O/N] ?')
    if (answer == 'n' or answer == 'N'):
        break
      
print('Au revoir.')

Félicitations, vous avez réalisé vos premiers scripts Python reposant sur une interaction simple (saisie clavier) avec l'utilisateur. Prêt à découvrir les techniques de chargement de fichiers de données ?