gymnase-tp

TP 32 : Aides au projet

Plusieurs conditions

Vous pouvez combiner plusieurs conditions booléennes avec les opérateurs logiques and et or.

note = float(input())
if note < 0 or note > 6:
    print("note invalide")

Négation d’une condition

L’opérateur not permet d’inverser la valeur de la condition (comme la porte logique).

pizza = input()
if not pizza == "Hawaï": # équivalent à 'if pizza != "Hawaï":'
    print("Commande acceptée")

Liste

Une liste en python est délimité par des [] et chaque élément est séparé par une ,.

# Définition d'une liste vide
liste = []

# Définition d'une liste avec une string
liste = ["bleu"]

# Définition d'une liste de plusieurs nombres
liste = [2, 4, 8]

# Accès au premier élément de la liste
print(liste[0])

# Combinaison de listes
oui = ["o", "oui"]
non = ["n", "non"]
reponses = oui + non
print(reponses) # ["o", "oui", "n", "non"]

Opérateurs d’une liste

On peut vérifier si un élément est contenu dans une liste avec l’opérateur in (ou not in pour pas contenu).

ingredient = input()
if ingredient not in ["mozzarella", "champignon", "jambon", "tomate", "ananas"]:
    print("Ingrédient inconnu")

Ignorer les majuscules

Pour ignorer les majuscules, on peut utiliser la fonction lower() qui transforme tous les caractères en minuscule.

reponse = input().lower() # "Oui" sera transformé en "oui"
if reponse in ["oui", "non"]:
    print("Réponse acceptée")

String multi-lignes

Il est aussi possible d’écrire les strings sur plusieurs lignes en délimitant avec """

a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)

Validation des réponses en boucle

Pour redemander une saisie à l’utilisateur continuellement jusqu’à ce qu’il entre une valeur valide, on peut utiliser une boucle while.

# S'assurer que la variable réponse est bien vide 
reponse = ""
# Tant que la réponse n'est pas valide, reposer la question
while reponse not in ["oui", "non"]:
    reponse = input("Oui ou non ?")
# La variable réponse contiendra forcément soit "oui", soit "non" à partir d'ici, à utiliser pour la suite
if reponse == "oui":
    print("Oui !")
elif reponse == "non":
    print("Non !")

Une autre manière (plus avancée) serait d’utiliser uniquement une fonction.

# Définition de la fonction
def oui_non():
    reponse = input("Oui ou non ?")
    if reponse in ["oui", "non"]:
        return reponse
    else:
        return oui_non()

# Appel de la fonction
oui_non()

On pourrait aller encore plus loin en mettant la question en argument pour pouvoir réutiliser la même fonction avec des questions différentes.

# Définition de la fonction
def oui_non(question):
    reponse = input(question)
    if reponse in ["oui", "non"]:
        # Retourne la valeur si valide
        return reponse
    else:
        # Redemande si pas valide
        return oui_non()

# Appel de la fonction
oui_non("Oui ou non ?")
# Nouvel appel de la fonction avec une autre question
oui_non("Non ou oui ?")

Retour à l’accueil