Outils

Pour l'ensemble de ce travail, utilisez le logiciel Edupython.

Dans le cas où Edupython ne marcherait pas sur vos machines, vous pouvez réaliser l'ensemble des exercices ici :

Affectation en Python

En programmation, nous avons besoin de stocker des éléments , de les mettre en mémoire. Pour cela , on procède à l'affectation d'une variable par une donnée.

Dans un programme, une variable est un emplacement de la mémoire de l'ordinateur qui est repéré par un nom et possède une valeur qui peut évoluer au cours de l'exécution de ce programme.

On peut visualiser en première approximation une variable comme une boîte portant un nom et contenant une valeur :

La variable $x$ stocke ci-dessous la valeur 5.

Affecter une valeur à une variable revient à attribuer une valeur à une variable.

Au collège, vous utilisiez l'instruction ci-dessous : , où ici la variable s'appelle et la valeur y étant stockée est 0.

En Python, l' affectation se réalise avec l'opérateur =

le script :

ma_variable = 0
met en mémoire l'entier 0 dans la variable ma_variable,

x=5
met en mémoire l'entier 5 dans la variable x,

x="easy"
met en mémoire la chaine de caractères "easy" dans la variable x.

À la fin de ce script, que vaut la variable nommée a ?

a=1
b=-1
a=a*b
a=a+b
			

Un exercice de renforcement, reprenant les mêmes compétences est disponible directement en cliquant ci-dessous :

exercice de renforcement

Une valeur stockée dans une variable peut être de différents types. En seconde, cette valeur peut être :

On modélise sur Scratch un jeu simple. On possède une certaine somme d'argent initialement.
On lance un dé cubique. Si on fait 5 ou 6, on gagne la partie et donc de l'argent, sinon on perd.

Plus précisément, voici l'algorithme issu de Scratch ci-dessous :

Voici la liste des variables utilisées dans ce programme en Scratch :

Voci deux affichages obtenus à l'issue de deux simulations :

  1. Lister les variables du programme en précisant le type de celles-ci.

  2. Quelle est la somme d'argent possédée initialement ?

  3. Quelle somme d'argent gagne-t-on si on obtient 5 ou 6 ?

  4. Quelle somme d'argent perd-on si on obtient au plus 4 ?

Un exercice plus compliqué utilisant l'affectation :

Hervé Trézène aimerait avoir un algorithme permettant de permuter les nombres stockés dans deux variables $a$ et $b$. Pour simplifier, on suppose que la variable $a$ stocke le nombre 8, tandis que la variable $b$ stocke le nombre -3.

visualisation des boîtes
  1. Yves Aladaire propose l'algorithme suivant :

    # ceci est un commentaire (il commence par le symbole dièse #) : 
    # il n'est pas pris en compte par l'interpréteur, il n'est lu que par le programmeur et l'utilisateur : vous.
    # mémorisation des valeurs initiales :
    a=8
    b=-3
    # programme proposé par Yves pour la permutation du contenu :
    a=b
    b=a
                             
    1. Compléter sur une feuille la table d'exécution commencée ci-dessous, sans prendre en compte les lignes de commentaires :

      ligne numéro valeur stockée dans la variable $a$ valeur stockée dans la variable $b$
      4 8 rien
      ... ... ...
      ... ... ...
      ... ... ...
    2. Est-ce le programme proposé par Yves permet d'échanger les valeurs stockées dans les varaibles $a$ et de $b$ ?

  2. Amin Bhar propose l'algorithme suivant :

    # mémorisation des valeurs initiales :
    a=8
    b=-3
    # programme proposé par Roger pour la permutation du contenu :
    b=a
    a=b
                        
    1. Compléter sur une feuille la table d'exécution commencée ci-dessous, sans prendre en compte les lignes de commentaires :

      ligne numéro valeur stockée dans la variable $a$ valeur stockée dans la variable $b$
      ... ... ...
      ... ... ...
      ... ... ...
      ... ... ...
    2. Est-ce le programme proposé par Amine permet d'échanger les valeurs stockées dans les variables $a$ et de $b$ ?

  3. Proposer un programme qui permet d'échanger les valeurs stockées dans les variables $a$ et de $b$ ?

    Comme tel un Thésée vous êtes le héros de Trézène, Hervé veut vous remercier pour votre aide : il sert un verre d'eau et un verre de jus de fruit, un pour lui et un pour vous,... mais il se trompe de verre ! Comment permuter le contenu de ces deux verres sans changer de verre ?

Il est possible d'écrire un algorithme dans d'autres langages de programmation. Afin de ne pas se limiter à un langage particulier, il est possible d'écrire un algorithme en pseudo-code.

En pseudo-code, l'affectation est notée avec le symbole .

Le code de l'exercice précédent écrit en langage Python :

a=8
b=-3
b=a
a=b

Peut être écrit en pseudo-code en :

a ← 8 ; b ← -3 ; b ← a ; a ← b ;

Voici un code en langage Python :

x = int(input("choisir un nombre entier"))   # x stocke le nombre entier saisi par l'utilisateur
a = 3 - x 
a = 4 - 2 * x**2    # x**2 correspond au carré de x
print(a)            # permet d'afficher le nombre stocké finalement dans la variable a
            
  1. Sans lancer le script sur Edupython, exécuter à la main le script en :

    • prenant un nombre entier assez simple,

    • après chaque ligne, donner les nombres stockés dans chaque variable en complétant le tableau ci-dessous :

      Après la ligne valeur stockée dans la variable $x$ valeur stockée dans la variable $a$
      ... ... ...
      ... ... ...
      ... ... ...
      ... ... ...
  2. Faire de même avec un autre nombre enbtier simple.

  3. Vérifier les calculs précédents en utilisant Edupython.

  4. Est-ce que le script suivant avec une seule variable est équivalent au script initial ? Pourquoi ?

    x = int(input("choisir un nombre entier"))   # x stocke le nombre entier saisi par l'utilisateur
    x = 3 - x 
    x = 4 - 2 * x**2    # x**2 correspond au carré de x
    print(x)            # permet d'afficher le nombre stocké finalement dans la variable a
                

Voici un algorithme écrit en Scratch2 issu d'un sujet de brevet :

  1. Réécrire cet algorithme en langage Python en utilisant :

    • ne prenant en compte que les affectations sur fond orange,

    • les variables reponse, x, etape_1, etape_2 et resultat

    • comme début du script la ligne ci-dessous :

      reponse = float(input("Choisis un nombre."))

    • comme dernière ligne du script la ligne ci-dessous:

      print(resultat)

  2. Testez votre code en exécutant votre script (en cliquant sur la flèche verte) ; choisir comme nombre par exemple 7. Vérifiez que vous obtenez alors 26.

  3. Modifiez votre algorithme en remplaçant toutes les variables utilisées par la seule variable x.

  4. Est-ce que votre programme fonctionne encore ?

Affichage en python

Une chaîne de caractères correspond à un texte pouvant contenir différents symboles. En Python, une chaîne de caractères est le contenu délimité par "".

Pour afficher une chaine de caractères en Python on utilise la fonction print()

Testez sur Edupython ces différents scripts :

  1. print("Vivement les vacances !")
  2. prenom="Bob"
    print("Mon prénom est :",prenom)

Il est possible d'afficher différents éléments à la fois grâce à l'instruction print en les séparant d'une virgule , :

  1. un texte si l'élément est une chaîne de caractères,

  2. une valeur stockée dans un variable si l'élément est le nom de cette variable.

Réaliser un script qui utilise trois variables : prenom, nom et age et qui doit afficher :

"Bonjour je m'appelle Alphonse Dansletas, j'ai 358 ans. "

Dans le cas où vous vous appelleriez Alphonse Dansletas et que vous seriez âgé de 358 ans ; le nom, le prenom et l'âge de la personne devant être stocké dans la variable adéquate.

exercice de renforcement

Dialogue avec l'utilisateur

La fonction input permet d'ouvrir une boite de dialogue et de récupérer une information saisie par l'utilisateur.

L'information récupérée grâce à un input est une chaîne de caractères.

prenom=input("quel est ton prénom?")
print(prenom)
		

Ecrire un script en Python qui demande à l'utilisateur, son prénom, son nom et son âge et qui réalise un affichage comme dans l'exercice précédent.

exercice de renforcement

Comme l'information récupérée grâce à un input est une chaîne de caractères, il va falloir changer le type de la variable pour permettre d'effectuer des calculs avec.

Un boulanger désire un programme qui demande à l'utilisateur le nombre de baguettes qu'il désire, qui calcule le prix total (sachant qu'une baguette coûte 1.10 €) et qui affiche le prix que l'utilisateur doit payer.

  1. Testez le script suivant :

    nombre=input("Combien de baguettes désirez-vous ?")
    prix = nombre * 1.1
    print("Vous avez à payer",prix,"euros.")
  2. Quel message d'erreur obtenez-vous ?

  3. Testez le script suivant :

    nombre=int(input("Combien de baguettes désirez-vous ?"))
    prix = nombre * 1.1
    print("Vous avez à payer",prix,"euros.")
  4. Quelle est la différence avec le code précédent de cet exemple ?

L'instruction int permet de changer certaines chaînes de caractères en un nombre entier.

L'instruction float permet de changer certaines chaînes de caractères en un flottant, c'est-à-dire un "nombre à virgule".

Vous êtes chargé.e de mettre en place une borne automatique pour régler les droits d’entrée à un parc d’attraction.
Chaque adulte doit payer 21€ pour rentrer et chaque enfant doit payer 13€. Pour cette borne, vous devez programmer sur Python un algorithme qui renvoie le prix à payer en fonction du nombre d’adultes et d’enfants du groupe.
Sachant que la variable $A$ stocke le nombre d’adultes, $E$ le nombre d’enfants et $P$ le prix à payer, proposez un tel algorithme qui demande à l'utilisateur le nombre de personnes dans chacune des catégories et qui affiche le prix total à payer.

exercice de renforcement

L'Indice de Masse Corporelle (IMC) est un indicateur chiffré utilisé en médecine. L'IMC d'une personne est donné par la formule $ IMC= \frac{masse}{taille^2}$ où la masse est en kilos et la taille en mètres.

Proposez un algorithme qui demande à l'utilisateur sa taille et sa masse puis qui affiche l'IMC de la personne.

Pensez à écrire un texte clair à destination de l'utilisateur pour qu'il sache quoi saisir.

La surface $S$ en mètre carrés de la peau d'un adulte est donnée approximativement par la formule $ \dfrac{\sqrt{L\times M}}{6}$ où $L$ est la taille de l'individu en mètres et $M$ sa masse en kilogramme.

Vous devez créer ci-dessous un programme en Python.

Votre programme doit :

Exemple de trace d'exécution apparaissant dans la partie console :

Quelle est la taille en centimètres d'un adulte ? 180
Quelle est la masse en kilogrammes du même adulte ? 81.5
La surface corporelle d'un individu de 180 centimètres et de 81.5 kg est d'environ 2.0187 m^2.

Exercices de renforcement

Sur l'affectation

Quel nombre est stcokée dans la variable $a$ à la fin de ce script :

a=5
a=2*a
b=2*a
a=a*a 
a=a-b+1
			

Pour accéder au code de la correction : lien

Sur l'affichage

Réaliser un script qui contient trois variables : prenom, nom et num_tel et qui doit afficher :

"Bonjour, je veux joindre Mélusine Hamphaïte au 0665432100 "

Dans le cas où vous vouliez joindre votre amie Mélusine Hamphaïte dont vous connaissez le numéro.

Pour accéder au code de la correction : lien

Sur la saisie

Ecrire un script en Python qui demande à l'utilisateur, le prénom, le nom et le numéro de téléphone et qui réalise un affichage comme dans l'exercice ci-dessus.

Pour accéder au code de la correction : lien

Vous êtes chargé.e de mettre en place une billeterie à un concert.
Chaque adulte doit payer 10€ pour rentrer et chaque adolescent.e de 12 à 18 ans doit payer 8€ tandis que les enfants de moins de 12 ans peuvent rentrer gratuitement. Proposez un algorithme en Pyhton qui renvoie le prix à payer en fonction du nombre d’adultes et d'adolescent.e.s et d’enfants du groupe. Sachant que la variable $M$ stocke le nombre d’adultes majeur.e.s, $A$ le nombre d'adolescent.e.s, $E$ le nombre d’enfants et $prix$ le prix à payer, proposez un tel algorithme qui demande à l'utilisateur le nombre de personnes dans chacune des catégories et qui affiche le prix total à payer.

Pour accéder au code de la correction : lien

Licence Creative Commons
Les différents auteurs mettent l'ensemble du site à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International