demande d'aide pour trouver erreur dans programme Python
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 37

demande d'aide pour trouver erreur dans programme Python



  1. #1
    nalicos

    demande d'aide pour trouver erreur dans programme Python


    ------

    Bonjour à tous. J'aurai besoin d'aide car j'ai écrit un programme en python mais impossible de le lancer. A chaque fois il me met qu'il y a une erreur mais je n'arrive pas à comprendre pourquoi. Pourriez vous m'aider?

    Code:
    # -*-coding:Latin-1-*
    import os
    from math import ceil
    from random import randrange
    
    argent = input("Combien voulez-vous utiliser d'argent? :")
    continuerPartie = True
    
    print("Installez-vous.")
    
    while continuerPartie:
    	try:
    		sommeMise = int(input("Quelle somme misez-vous?"))
    
    	except ValueError:
    		print("Vous n'avez pas saisi un chiffre ou un nombre !")
    
    		continue
    
    	try:
    		numeroMise  = int(input("sur quel numéro voulez-vous miser? Il doit être compris entre 0 et 49 inclus :")
    
            
    		
    
    if argent <= 0:
    	continuerPartie = False
    	print("Vous n'avez plus d'argent c'est la fin pour vous.")
    	
    elif sommeMise > argent:	
    	print("Vous ne pouvez pas miser plus que ce que vous avez. Vous n'avez que", argent, "$")
    	continue
    
    else:
    	if numeroMise >= 0 and numeroMise <= 49:
    		numeroGagnant = randrange(50)
    		if numeroGagnant = numeroMise:
    			argent += sommeMise * 3
    			print("Vous gagnez la manche. Vous triplez votre mise et vous avez", argent , "$ maintenant")
    
    		elif numeroGagnant % 2 == numeroMise % 2:
    			argent += ceil(sommeMise * 0.5)
    			print("Maintenant vous avez", argent ,"$")
    
    		else:
    			print("Une prochaine fois peut être.")
    
    
    quitter = input("Voulez vous rejouer ou quitter la partie? O / N :")
    if quitter == "O" or "o":
    	continuerPartie = False
    else:
    	continue
    
    os.system("pause")

    -----

  2. #2
    pm42

    Re : demande d'aide pour trouver erreur dans programme Python

    Ne pas nous donner l'erreur complique la tâche.
    Mais sinon, refermer les parenthèses dans
    Code:
    numeroMise  = int(input(...
    devrait aider.

    La plupart des outils modernes genre Pycharm, Spyder et autres signalent ce genre d'erreur.

  3. #3
    nalicos

    Re : demande d'aide pour trouver erreur dans programme Python

    Excusez moi
    Code:
    # -*-coding:Latin-1-*
    import os
    from math import ceil
    from random import randrange
    
    argent = input("Combien voulez-vous utiliser d'argent? :")
    continuerPartie = True
    
    print("Installez-vous.")
    
    while continuerPartie:
    	try:
    		sommeMise = int(input("Quelle somme misez-vous?"))
    
    	except ValueError:
    		print("Vous n'avez pas saisi un chiffre ou un nombre !")
    
    		continue
    
    	try:
    		numeroMise  = int(input("Sur quel numéro voulez-vous miser? Il doit être compris entre 0 et 49 inclus :"))
    
            except ValueError:
                    print("Vous n'avez pas saisi un chiffre ou un nombre !")
    		
    if sommeMise > argent:
            print("Vous ne pouvez pas miser plus que ce que vous avez. Vous n'avez que", argent, "$")
    
    else:
    	if numeroMise >= 0 and numeroMise <= 49:
    		numeroGagnant = randrange(50)
    		if numeroGagnant == numeroMise:
    			argent += sommeMise * 3
    			print("Vous gagnez la manche. Vous triplez votre mise et vous avez", argent , "$ maintenant")
    
    		elif numeroGagnant % 2 == numeroMise % 2:
    			argent += ceil(sommeMise * 0.5)
    			print("Maintenant vous avez", argent ,"$")
    
    		else:
    			print("Une prochaine fois peut être.")
    
    
    if argent <= 0:
    	continuerPartie = False
    	print("Vous n'avez plus d'argent c'est la fin pour vous.")
    quitter = input("Voulez vous rejouer ou quitter la partie? O / N :")
    if quitter == "O" or "o":
    	continuerPartie = False
    
    
    os.system("pause")
    Il mette comme erreur que l'indentation du deuxième except ValueError n'est pas bonne mais je ne comprend pas pourquoi

  4. #4
    pm42

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par nalicos Voir le message
    Il mette comme erreur que l'indentation du deuxième except ValueError n'est pas bonne mais je ne comprend pas pourquoi
    Moi non plus : cela marche très bien chez moi.

  5. A voir en vidéo sur Futura
  6. #5
    nalicos

    Re : demande d'aide pour trouver erreur dans programme Python

    Vous l'exécuter avec quoi?

  7. #6
    pm42

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par nalicos Voir le message
    Vous l'exécuter avec quoi?
    Je l'ai copié/collé dans PyCharm.

  8. #7
    nalicos

    Re : demande d'aide pour trouver erreur dans programme Python

    J'utilise Idle je pense que le problème viens de là non?

  9. #8
    pm42

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par nalicos Voir le message
    J'utilise Idle je pense que le problème viens de là non?
    Après vérification, le problème vient du fait que tu utilises parfois des tabs et parfois des espaces dans ton indentation. Le copier/coller dans PyCharm avait corrigé automatiquement.

  10. #9
    nalicos

    Re : demande d'aide pour trouver erreur dans programme Python

    Ah bon? Pourtant j'utilise que les tabs, mais défois il décalle tout.

  11. #10
    nalicos

    Re : demande d'aide pour trouver erreur dans programme Python

    C'est bon. Je l'ai passé par sublime test qui a modifié les tabs et maintenant ça marche merci. J'avais une autre question : comment on fais pour pouvoir utiliser des lettres dans une variable. Par exemple:
    Code:
    import os
    
    # -*-coding:Latin-1-*
    
    mdp = 567
    nomutilisateur = chien
    
    
    utilisateur = input("Qui êtes vous?")
    if utilisateur == nomutilisateur:
    	motdepasse = input("Quel est votre mot de passe?")
    	if motdepasse == mdp:
    		print("Bienvenue",utilisateur)
    	else:
    		print("Erreur")
    else:
    	print("Erreur")
    
    os.system("pause")
    Il affiche que chien n'est pas définit.

  12. #11
    pm42

    Re : demande d'aide pour trouver erreur dans programme Python

    Tu les mets entre guillemets.

  13. #12
    nalicos

    Re : demande d'aide pour trouver erreur dans programme Python

    quand je fais ça, il faut aussi que je mette les guillemets lors de l'exécution

  14. #13
    CM63

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par nalicos Voir le message
    quand je fais ça, il faut aussi que je mette les guillemets lors de l'exécution
    C'est une question? Il faut mettre:

    Code:
    nomutilisateur = "chien"
    mdp="567"
    ... c'est tout, qu'est-ce que tu nous parles d'execution?
    Dernière modification par CM63 ; 29/03/2020 à 13h45.

  15. #14
    CM63

    Re : demande d'aide pour trouver erreur dans programme Python

    D'autre part il ne faut par faire input, car input demande un nombre, pour demander une chaîne de caractères il faut faire raw_input.

  16. #15
    CM63

    Re : demande d'aide pour trouver erreur dans programme Python

    D'autre part os.system("pause") ne marche pas, je suppose que tu mets cela pour voir les sorties du programme, dans ce cas fait un autre raw_input.
    Autre chose, si tu mets:
    print("Bienvenue",utilisateur)
    il va imprimer une liste qui contient la chaîne "Bienvenue", puis le mot utilisateur c'est-à-dire "chien":
    ('Bienvenue', 'chien')

    Ce n'est pas ce que tu veux. Il faut donc concaténer "Bienvenue " avec le nom de l'utilisateur/

    Je te mets le programme ainsi modifié.
    Dernière modification par CM63 ; 29/03/2020 à 14h07.

  17. #16
    CM63

    Re : demande d'aide pour trouver erreur dans programme Python

    Code modifié :

    Code:
    import os
    
    mdp = "567"
    nomutilisateur = "chien"
    
    
    utilisateur = raw_input("Qui êtes vous?")
    if utilisateur == nomutilisateur:
        motdepasse = raw_input("Quel est votre mot de passe?")
        if motdepasse == mdp:
            print("Bienvenue "+utilisateur)
        else:
            print("Erreur")
    else:
        print("Erreur")
    
    var_bid = raw_input("Appuyez sur une touche puis return")

  18. #17
    umfred

    Re : demande d'aide pour trouver erreur dans programme Python

    précision sur la différence entre raw_input() et input():
    raw_input() renvoie systématiquement une chaine de caractère
    alors que input() essaie d'interpréter ce qui est taper et renvoie sous la forme interprétée (si on rentre un nombre entier, input() renverra un entier)

  19. #18
    nalicos

    Re : demande d'aide pour trouver erreur dans programme Python

    donc si je comprends bien le mieux est de noter raw_input() si on veut que l'utilisateur écrive du texte c'est bien ça ?

  20. #19
    nalicos

    Re : demande d'aide pour trouver erreur dans programme Python

    Mais par contre si je veux que mon mot de passe soit une suite de chiffre et de lettres je dois écrire quoi?

    Je vous remercie pour votre aide qui m'est précieuse car je débute en programmation !!

  21. #20
    umfred

    Re : demande d'aide pour trouver erreur dans programme Python

    tu as donné la réponse toi même: une suite de lettres et de chiffres, c'est une chaine de caractères, donc raw_input pour être certain de récupérer une chaine de caractères

  22. #21
    pm42

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par umfred Voir le message
    tu as donné la réponse toi même: une suite de lettres et de chiffres, c'est une chaine de caractères, donc raw_input pour être certain de récupérer une chaine de caractères
    Pour lire un mot de passe, il y a la fonction getpass dans le module getpass : il n'apparait pas en clair quand on le tape.
    Après, pour mettre des contraintes, c'est à la main.

  23. #22
    nalicos

    Re : demande d'aide pour trouver erreur dans programme Python

    Ah bah oui je suis bête quelle question. Donc input on le met pas souvent alors ?

    Mais comment on s'en sert de getpass?
    Dernière modification par nalicos ; 30/03/2020 à 15h10.

  24. #23
    pm42

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par nalicos Voir le message
    Mais comment on s'en sert de getpass?
    Comme pour tout le reste : en lisant la doc.

  25. #24
    umfred

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par pm42 Voir le message
    Pour lire un mot de passe, il y a la fonction getpass dans le module getpass : il n'apparait pas en clair quand on le tape.
    Après, pour mettre des contraintes, c'est à la main.
    a priori getpass() serait obsolete (mais toujours présente)

  26. #25
    umfred

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par nalicos Voir le message
    Ah bah oui je suis bête quelle question. Donc input on le met pas souvent alors ?

    Mais comment on s'en sert de getpass?
    ça dépend du contexte. si tu veux que l'utilisateur rentre un entier, tu fais comme précédemment (int(input())

  27. #26
    pm42

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par umfred Voir le message
    a priori getpass() serait obsolete (mais toujours présente)
    Tu as eu l'info où ? Je n'ai rien vu dans la doc de python 3.8 ni à l'usage donc j'ai du rater quelque chose.

  28. #27
    umfred

    Re : demande d'aide pour trouver erreur dans programme Python

    en python, c'est peut-être encore valide (je sais pas pourquoi je l'ai cherché en langage C où là elle est indiqué obsolète)

  29. #28
    CM63

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par nalicos Voir le message
    Mais par contre si je veux que mon mot de passe soit une suite de chiffre et de lettres je dois écrire quoi?

    Je vous remercie pour votre aide qui m'est précieuse car je débute en programmation !!
    raw_input()

  30. #29
    CM63

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par nalicos Voir le message
    Ah bah oui je suis bête quelle question. Donc input on le met pas souvent alors ?
    Uniquement quand la personne doit rentrer un nombre, mais cela ne va pas faire le contrôle, si la personne entre autre chose qu'un nombre, ça va mettre un message d'erreur incompréhensible (en général) par l'utilisateur. Donc il vaut toujours mieux utiliser raw_input et faire les teste soi-même, en envoyant des messages d'erreur explicites.
    Mais pour le mot de passe, il faut faire quelque chose de plus: il faut qu'on ne voit pas ce qu'on tape. Si getpass est dépasssé, il faut rechercher ce qu'on doit utiliser maintenant. Fais une recherche "mot de passe" "python" (c'est ce que je vais faire).
    Dernière modification par CM63 ; 30/03/2020 à 15h37.

  31. #30
    pm42

    Re : demande d'aide pour trouver erreur dans programme Python

    Citation Envoyé par umfred Voir le message
    en python, c'est peut-être encore valide (je sais pas pourquoi je l'ai cherché en langage C où là elle est indiqué obsolète)
    En C, c'est obsolète parce que susceptible de faire un dépassement mémoire utilisable comme faille de sécurité. En Python, il n'y a pas ce genre de problème. Ou moins.

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Python aide pour un petit programme
    Par Lionelno dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 09/01/2016, 16h34
  2. Réponses: 2
    Dernier message: 08/01/2015, 14h04
  3. Re : Aide pour trouver les erreurs dans mon programme pascal
    Par invite3d8723d1 dans le forum Programmation et langages, Algorithmique
    Réponses: 19
    Dernier message: 01/09/2012, 10h05
  4. Aide pour trouver les erreurs dans mon programme pascal
    Par dalfred dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 02/05/2012, 15h50
  5. Trouver l'erreur dans mon programme en BASIC:s
    Par alex934mas dans le forum Électronique
    Réponses: 4
    Dernier message: 12/04/2008, 10h03