IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème avec la fonction if et else


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème avec la fonction if et else
    Bonjour!

    Je suis débutante en python et je tente de résoudre un problème avec ce que j'a écrit. Quand j'exécute en python, on me dit toujours que j'ai une erreur avec mon "else" mais je ne comprend pas pourquoi...

    print ' ValiderPoint 1.0'
    xMax = input (" Entrez la valeur maximale de x :")
    yMax = input (" Entrez la valeur maximale de y :")


    print ' Entrez les coordonees du point '
    x = raw_input (" x: ")
    if (x > xMax and x < 0):
    print ' Erreur !!! x doit etre compris entre 0 et',xMax
    x= raw_input (" x:")

    else:

    y = raw_input (" y: ")


    if (y > yMax and y < 0):
    print ' Erreur !!! y doit etre compris entre 0 et',yMax
    y = raw_input (" y: ")

    else :

    print ' Le point est', (x,y)

    print ' Au revoir'
    [/SIZE]

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 824
    Points : 7 120
    Points
    7 120
    Par défaut
    Déjà il faut mettre votre code entre les balises adaptées. (bouton #)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    print ' ValiderPoint 1.0'
    xMax = int(raw_input (" Entrez la valeur maximale de x :"))
    yMax = int(raw_input (" Entrez la valeur maximale de y :"))
     
     
    print ' Entrez les coordonees du point '
    x = int(raw_input (" x: "))
    if (x > xMax and x < 0):
        print ' Erreur !!! x doit etre compris entre 0 et',xMax
    else:
        y = int(raw_input (" y: "))
     
    if (y > yMax and y < 0):
        print ' Erreur !!! y doit etre compris entre 0 et',yMax
    else :
        print ' Le point est', (x,y)
     
    print ' Au revoir'
    Quelques erreurs d'étourderie je suppose.

    Non testé!
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut Quelques infos en plus.
    Bonjour e4919milie,

    Pour compléter un peu la solution proposée par fred1599, et pour orienter ta réflexion, l'erreur que tu as commise est une chose bien courante lorsqu'on débute : le type de données employé.

    Dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xMax = input (" Entrez la valeur maximale de x :")
    yMax = input (" Entrez la valeur maximale de y :")
    Tu acceptes ce qui sera tapé au clavier mais sans t'assurer que ce sera un nombre alors que tu dois absolument en obtenir un. L'utilisateur peut fort bien vouloir tester ton application et taper n'importe quoi ;-0

    Fred1599 a opéré un "casting" (une modification de type) sur les données introduites par l'utilisateur avec l'instruction "int" devant les () :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xMax = int(raw_input (" Entrez la valeur maximale de x :"))
    yMax = int(raw_input (" Entrez la valeur maximale de y :"))
    Cela va "transformer" ce qui est tapé en un nombre de type "integer". Si un caractère a été tapé, c'est son code qui sera transcrit (le caractère A devenant le nombre 65 ... si j'ai bonne mémoire).

    Lors de l'écriture de ton code, dans Python, tu dois absolument utiliser les indentations (les tabulations en début de ligne de code) car c'est cela qui va indiquer à Python où se situent les boucles de code. C'est un impératif !
    Si tu as écrit ton code comme tu l'as transmis dans ta question, les erreurs sont normales pour Python qui ne s'y retrouve pas.

    A+

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut raw_input ou input ?
    Une petite question à fred1599 :

    J'ai lu quelque part que Python 3.x conseille fortement de ne plus utiliser raw_input :
    PEP 3111: raw_input() was renamed to input(). That is, the new input() function reads a line from sys.stdin and returns it with the trailing newline stripped. It raises EOFError if the input is terminated prematurely. To get the old behavior of input(), use eval(input()).
    Personnellement, j'ai rencontré quelques surprises lors de l'emploi de input() si l'utilisateur (moi ) utilise la touche "Enter" du pavé numérique au lieu de celle du clavier. Python voit la touche du pavé numérique comme une terminaison anormale de la chaîne et génère alors une erreur.

    Alors : raw_input ou input() ?

    A+

  5. #5
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 824
    Points : 7 120
    Points
    7 120
    Par défaut
    Lors de son test, son code est fonctionnel jusqu'au else, j'en ai donc déduis que la demoiselle en était encore à la version 2.x.

    Dans le cas où elle est en version 3.x, input remplace le raw_input de la version 2.x
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

Discussions similaires

  1. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33
  2. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 20h40
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo