CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PYTH] mon menu n'est pas fixe

maldoon
maldoon
Niveau 44
01 juillet 2021 à 18:18:26

Bonsoir

Mon problème est surement simple à résoudre mais j'y parvient pas, mon menu comporte 3 choix
- 1 backup
- 2 restore
- quitter

Sauf que quand je revient sur mon "menu" j'ai plus 1,2,3 MAIS 4,5,6 ainsi de suite... comment corriger ceci afin d'avoir toujours 1-2-3 et non 4,5,6 car après ça augmente 7,8,9 puis 10,11,22.... merci :hap:

print(" \n ce script permet de faire deux choses, la sauvegarde de son site web, la restauration de ton site web ;) ")

L1= ["Sauvegarde du site web", "Restauration du site" , "Quitter le script"]

nbr= 1

# j ai ajoute la ligne suivante
continu = 'm'
# j ai ajoute le while a la ligne suivante
while continu == 'm':
    for decision in L1:
        print(nbr,"-> ", decision,)
        nbr+=1

    print("\n" "Quels est ton choix""\n")
    choix: int = int(input("choix : "))

    if choix >0 and choix<=len(L1):
        print("Vous avez choisi : ", L1[choix-1])


    else:

        print("Ce choix là est IMPOSSIBLE")

     # j ai ajoute la ligne ci-dessous
    continu = input("\nVoulez-vous revenir sur le menu principal (M = Menu , p = partir) ?" )

https://image.noelshack.com/fichiers/2021/26/4/1625156361-bugnbr.png

Message édité le 01 juillet 2021 à 18:19:26 par maldoon
Azerban
Azerban
Niveau 16
01 juillet 2021 à 19:08:56

Tu peux utiliser enumerate pour parcourir une liste et avoir à la fois l'index et l'élément de la liste :

# https://www.jeuxvideo.com/forums/42-47-66993549-1-0-1-0-pyth-mon-menu-n-est-pas-fixe.htm
# aide_menu.py

print(" \n ce script permet de faire deux choses, la sauvegarde de son site web, la restauration de ton site web ;) ")

L1 = ["Sauvegarde du site web", "Restauration du site" , "Quitter le script"]

# j ai ajoute la ligne suivante
continu = 'm'
# j ai ajoute le while a la ligne suivante
while continu == 'm':
    for index, decision in enumerate(L1, start=1):
        print(f"[{index}] - {decision}")

    print("\n" "Quels est ton choix""\n")
    choix: int = int(input("choix : "))

    if 0 < choix <= len(L1):
        print("Vous avez choisi : ", L1[choix-1])

    else:
        print("Ce choix là est IMPOSSIBLE")

    # j ai ajoute la ligne ci-dessous
    continu = input("\nVoulez-vous revenir sur le menu principal (M = Menu , p = partir) ? ").lower()

Mais ce n'est pas vraiment la meilleur manière de faire un menu. En général on fait plutôt un dictionnaire avec le numéro en clé et la fonction en valeur et on regarde dans la boucle si la clé demandée est dans les clés du dictionnaire. On peut faire aussi un if/elif/else.

Et bientôt on aura le match/case avec Python 3.10 en octobre :bave:

Azerban
Azerban
Niveau 16
01 juillet 2021 à 19:17:43

Sinon tu peux aussi mettre ton nbr dans la boucle while :

...

while continu == 'm':
    nbr = 1
    for decision in L1:
        print(nbr,"-> ", decision,)
        nbr+=1
...

Quand on revient au début de la boucle nbr est réinitialisé à 1.

maldoon
maldoon
Niveau 44
01 juillet 2021 à 19:35:44

Le 01 juillet 2021 à 19:17:43 :
Sinon tu peux aussi mettre ton nbr dans la boucle while :

...

while continu == 'm':
    nbr = 1
    for decision in L1:
        print(nbr,"-> ", decision,)
        nbr+=1
...

Quand on revient au début de la boucle nbr est réinitialisé à 1.

Ptin c'est ça que je cherche maintenant que tu le dit oui c'est logique... mais merci pour enumerate :oui: :coeur:

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment