Quelques bases sur Python

Effectuer des tests

Nous allons voir ici comment effectuer des tests.

A chaque étape, vous pourrez tester des codes et vous entraîner.

Cette application est en construction, il est probable que des problèmes surviennent.

Prérequis :

Si, Sinon : if et else

Commençons par un exemple de demande de mot de passe :

Exemple :

proposition = input("Entrez le mot de passe : ")
if proposition == "1234":
    print("Vous pouvez entrer")
else:
    print("Vous ne pouvez pas entrer")
Entrez le mot de passe : 5678
Vous ne pouvez pas entrer



  • Pour tester une égalité il faut ==
  • La fin d'un test se termine toujours par :
  • Les conséquences d'un test doivent être indentées c'est à dire décalées vers la droite avec 4 espaces ou la touche Tabulation :

Vous avez surement remarqué les guillements autour de "1234". En effet, la fonction input() prend et renvoie une chaîne de caractères : un string.

Si l'on souhaite travailler avec des nombres entiers, il faut ajouter une autre fonction : int(). Ce n'est pas à connaître par coeur mais cela va nous permettre de continuer notre cours.

Un exemple de demande de mot de passe avec des nombres entiers :

Exemple :

proposition = int(input("Entrez le mot de passe : "))
if proposition == 1234:
    print("Vous pouvez entrer")
else:
    print("Vous ne pouvez pas entrer")
Entrez le mot de passe : 1234
Vous pouvez entrer



Vous l'avez peut-être remarqué ? Dans l'exemple précédent, si l'utilisateur entre des lettres (abc par exemple), la machine va renvoyer un message d'erreur : ValueError: invalid literal for int() with base 10: 'abc'

La machine essaye de convertir abc en un nombre entier à l'aide de la fonction int() mais cela ne passe pas.

Nous allons travailler sur les nombres entiers...

Le fait que le mot de passe soit affiché dans le code c'est un peu trop facile non ?

Tests et nombres aléatoires : random

Nous allons importer et utiliser des nombres entiers aléatoires pour générer un mot de passe :

Exemple :

import random
mdp = random.randint(0, 10)
proposition = int(input("Entrez le mot de passe : "))
if proposition == mdp:
    print("Vous pouvez entrer")
else:
    print("Vous ne pouvez pas entrer")
Entrez le mot de passe : 2
Vous pouvez entrer

Entrez le mot de passe : 2
Vous ne pouvez pas entrer


A chaque exécution du programme, la machine génère un nombre entier aléatoire entre 0 et 10. Ce nombre est stocké dans une variable que l'on appelée ici mdp.

Exercice :

Tester, corriger et compléter un programme pour permettre à un lièvre et une tortue de se battre aux dés.

  • La tortue et le lièvre lance chacun un dé à 6 faces numérotées de 1 à 6.
  • Celui ou celle qui obtient le plus grand nombre gagne.
  • En cas d'égalité il n'y a pas de gagnant.

Tests et opérations

Il est possible d'utiliser des opérations comme : +, -, *, /, ** dans les tests :

Exemple de calcul mental :

import random
nombre1 = random.randint(0, 10)
print("3 * ", nombre1, "= ?")
proposition = int(input("Votre réponse : "))
if proposition == 3*nombre1:
    print("GG")
else:
    print("Il faut revoir sa table de 3 !")
3 *  5 = ?
Votre réponse : 15
GG

3 *  3 = ?
Votre réponse : 10
Il faut revoir sa table de 3 !

Exercice :

Améliorer le test de calcul mental pour demander le produit de deux nombres aléatoires.

  • Il y a déjà nombre1 donc on peut créer nombre2...
  • Attention aux guillemets lorsque l'on affiche l'opération (même si ce n'est pas le plus important).

Exercice : Mini Craps !

Votre mission : Créer un jeu, le mini Craps. Voici les règles :

  • Un joueur lance deux dés à six faces
  • Si la somme des dés fait 7, il gagne 5 bonbons.
  • Sinon, il perd 1 bonbon.
  • Attention ! Il faut bien utiliser deux dés

Fusionner des tests : and et or

Il est possible de fusionner des tests à l'aide des mots clés and et or.

Exemple :

import random
de1 = random.randint(0, 6)
de2 = random.randint(0, 6)
print("Dé numéro 1 :", de1)
print("Dé numéro 2 :", de2)
if de1 == 6 or de2 == 6:
    print("Vous avez obtenu au moins un 6")
if de1 == 6 and de2 == 6:
    print("Paire de 6 ! Bravo !")

Dé numéro 1 : 5
Dé numéro 2 : 4


Dé numéro 1 : 2
Dé numéro 2 : 6
Vous avez obtenu au moins un 6

Exercice : Avec 3 dés !

Votre mission : Créer un jeu dont les règles sont les suivantes :

  • Un joueur lance trois dés à six faces
  • S'il obtient trois dés identiques, il gagne 30 bonbons.
  • S'il obtient deux dés identiques, il gagne 10 bonbons.
  • S'il obtient un triple 6, il gagne 100 bonbons.
  • Dans tous les autres cas, il perd 1 bonbon.
  • ("Si a est différent de b alors..." se traduit en Python par if a != b:)

Vous pouvez maintenant étudier le cours suivant : Cours 5 : Boucle while
Cours1 : Déplacer la tortue Cours2 : Répéter Cours3 : Procédures Cours4 : On mélange tout