Mon programme python crash sans raison a un certain endroit

Résolu/Fermé
Frizti Messages postés 117 Date d'inscription mercredi 23 octobre 2019 Statut Membre Dernière intervention 25 février 2023 - Modifié le 1 janv. 2020 à 19:24
Frizti Messages postés 117 Date d'inscription mercredi 23 octobre 2019 Statut Membre Dernière intervention 25 février 2023 - 1 janv. 2020 à 19:37
Bonjour, je suis en train de bosser sur un petit programme de terminal qui permettrais de se connecter avec différents comptes utilisateur, mais au moment de créer un compte (pour l'instant pas automatique donc toute aide pour rendre cette fonction automatique sera bienvenue) une fois l'étape de création de compte passée, le programme crash, pouvez vous me dire pourquoi et comment régler le problème svp ?
#coding:utf-8
import sys
progLaunch = True
i_d = "Frizti"
m_d_p = "jamesbond33"
id2 = ""

print("connexion au terminal...")
print("La connection s'initialise...")
print("chargement...")
print("28%")
print("43%")
print("72%")
print("88%")
print("100%. Chargement terminé !")

user_id = input("Entrez votre identifiant (si vous n'avez pas de  compte, entrez '?') : ")
user_password = input("Entrez votre mot de passe (si vous n'avez pas de  compte, entrez '?') : ")

if user_id == i_d and user_password == m_d_p:
    print("Vous etes connecté, bienvenue", i_d)
"""la création de compte se fait ici (et ça crash seulement en passant par cette étape"""
elif user_id == "?" and user_password == "?":
    id2 = input("Veuillez entrer un pseudonyme : ")
    mdp2 = input("Veuillez entrer un mot de passe : ")
    input = ("Veuillez maintenant contacter un administrateur afin qu'il vous enregistre \nune fois cela fait, appuyez sur 'entrée' : ")
    print("Bienvenue dans le terminal {}, vous etes maintenant enregistré !".format(id2))
else:
    print("Mot de passe ou nom d'utilisateur incorrect, veuillez réessayer ultèrieurement")
    input("Appuyez sur 'entrée' pour quitter ")
    sys.exit(0)
       

print("Dévérouillage terminé")
#le crash débute ici
print("")
terLaunch = True
while terLaunch:
    choixMenu = input("> ")

    if choixMenu == "again":
        continue
    elif choixMenu == "quit":
        progLaunch = False
        terLaunch = False
    elif choixMenu == "hello":
        print("Bonjour :) !")
        continue
    elif choixMenu == "test":
        print("Analyse de 147 éléments en cours... Analyse terminée ! Aucun problème détecté .")
        continue
    elif choixMenu == "add-on":
        print("n/a aucun add-on installé pour l'instant")
        continue
    elif choixMenu == "help":
        print("Liste des commandes : \nagain : ne rien faire et recommencer \nquit : quitter \nhello : faire dire bonjour au programme \ntest : analyser le programme \nadd-on : consulter les add-ons installés et opérationels \nhelp : afficher ceci \ncalcul : utiliser la calculatrice")
    elif choixMenu == "calcul":
        chiffre1 = input("Entrez le premier chiffre a calculer : ")
        chiffre1 = int(chiffre1)
        chiffre2 = input("Entrez le second chiffre : ")
        chiffre2 = int(chiffre2)
        calcul1 = input("Comment voulez vous utiliser ces nombres ? (+ additionner, - soustraire, x multiplier, / diviser, % le reste d'une division) : ")
        print("Résultat :")
        if calcul1 == ("+"):
            chiffre1 = chiffre1 + chiffre2
        elif calcul1 == ("-"):
            chiffre1 = chiffre1 - chiffre2
        elif calcul1 == ("x"):
            chiffre1 = chiffre1 * chiffre2
        elif calcul1 == ("/"):
            chiffre1 = chiffre1 / chiffre2
        elif calcul1 == ("%"):
            chiffre1 = chiffre1 % chiffre2
        print(chiffre1)
    else:
        print("Commande introuvable")


input("Aurevoir...(appuyez sur entrée)")

ps : je suis sous python 3.5.2
A voir également:

2 réponses

Bonsoir,

En faisant
input = ("Veuillez maintenant contacter un administrateur afin qu'il vous enregistre \nune fois cela fait, appuyez sur 'entrée' : ")

Tu écrases la fonction input de python par une chaine de caractères, ce qui fait que ton programme plante lorsque tu veux utiliser input plus loin.
Solution : ne pas écraser les fonctions standard de python, i.e choisir un autre nom de variable que input.
0
Frizti Messages postés 117 Date d'inscription mercredi 23 octobre 2019 Statut Membre Dernière intervention 25 février 2023 18
1 janv. 2020 à 19:37
Ah oui, j'avais pas remarqué que j'avais mis input = ("") au lieu de input("") merci !
0