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 :

[Python2.6] [entry] [def] Les comparaisons ne fonctionne pas


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 30
    Par défaut [Python2.6] [entry] [def] Les comparaisons ne fonctionne pas
    Bonjour,

    J'essaye d'appliquer des comparaisons pour la valeur de mon Entry mais peut importe le nombre entrée c'est le elif qui et validé ! Je n'arrive pas à identifier l'erreur. Je fais donc appel à vos connaissances expertes

    Par avance merci


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    # -*- coding: cp1252 -*-
    from Tkinter import *
    import os
    import paramiko
    import tkMessageBox
     
    os.chdir("C:/prog")
    fenetre = Tk()
    fenetre.geometry("800x600+300+0")
     
    menu1 = 0
    numero = 0
    numero1 = 0
     
    txt1 = Label(fenetre, text="Telephonie")
    txt1.pack()
    txt2 = Label(fenetre, text="Indiquer le numero de votre nouveau contact:")
    txt2.place(x=45, y=40)
     
    def verification():
        if Motdepasse.get() <= 1:
            # si le numero et inferieur ou egale a 1
            tkMessageBox.showinfo("Erreur", "Le numéro de telephone est invalide")
            print("if",Motdepasse.get())
        elif Motdepasse.get() >= 8:
            print("elif",Motdepasse.get())
        else:
            # sinon le numero est ok on l enregistre sur asterisk
            client = paramiko.SSHClient()
            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            client.connect('192.168.1.15', username='root', password='azerty')
            stdin, stdout, stderr = client.exec_command("mkdir test")
            stdin, stdout, stderr = client.exec_command("ls")
            for line in stdout.read().splitlines():
                print (line)
            stdin, stdout, stderr = client.exec_command("rm -r test")
            client.close()
            tkMessageBox.showinfo("Erreur", "Ajout au carnet d adresse effectué pour le numero")
            print("else",Motdepasse.get())
     
     
     
    # Création d'un widget Entry (champ de saisie)
    Motdepasse= StringVar()
    Champ = Entry(fenetre, textvariable= Motdepasse, bg ='bisque', fg='maroon').place(x=45, y=120)
     
     
     
    bouton1=Button(fenetre, text="Ajouter", command=verification).place(x=125, y=115)
     
     
     
     
     
    Resultat = StringVar()
    Label(fenetre,textvariable=Resultat).pack(padx=30,pady=10)
     
     
    fenetre.mainloop()

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    À mon avis ce serait plutôt len(Motdepasse.get()) <= 1 que tu veux faire.

    Sous Python 3 tu aurais eu une erreur.

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 30
    Par défaut
    Merci pour t'as réponse. Malheureusement cela ne fonctionne pas correctement non plus.
    Lorsque j'entre une valeur 5 c est le if qui se déclenche ! Avec la valeur 99 c'est le else...
    Après j'ai peut être mal utilisé len car je ne connais pas du tout son fonctionnement.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    # -*- coding: cp1252 -*-
    from Tkinter import *
    import os
    import paramiko
    import tkMessageBox
     
    os.chdir("C:/prog")
    fenetre = Tk()
    fenetre.geometry("800x600+300+0")
     
    menu1 = 0
    numero = 0
    numero1 = 0
     
    txt1 = Label(fenetre, text="Telephonie")
    txt1.pack()
    txt2 = Label(fenetre, text="Indiquer le numero de votre nouveau contact:")
    txt2.place(x=45, y=40)
     
    def verification():
        if len(Motdepasse.get()) <= 1:
            # si le numero et inferieur ou egale a 1
            tkMessageBox.showinfo("Erreur", "Le numéro de telephone est invalide")
            print("if",Motdepasse.get())
        elif len(Motdepasse.get()) >= 8:
            print("elif",Motdepasse.get())
        else:
            # sinon le numero est ok on l enregistre sur asterisk
            client = paramiko.SSHClient()
            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            client.connect('192.168.1.15', username='root', password='azerty')
            stdin, stdout, stderr = client.exec_command("mkdir test")
            stdin, stdout, stderr = client.exec_command("ls")
            for line in stdout.read().splitlines():
                print (line)
            stdin, stdout, stderr = client.exec_command("rm -r test")
            client.close()
            tkMessageBox.showinfo("Erreur", "Ajout au carnet d adresse effectué pour le numero")
            print("else",Motdepasse.get())
     
     
     
    # Création d'un widget Entry (champ de saisie)
    Motdepasse= StringVar()
    Champ = Entry(fenetre, textvariable= Motdepasse, bg ='bisque', fg='maroon').place(x=45, y=120)
     
     
     
    bouton1=Button(fenetre, text="Ajouter", command=verification).place(x=125, y=115)
     
     
     
     
     
    Resultat = StringVar()
    Label(fenetre,textvariable=Resultat).pack(padx=30,pady=10)

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Et bien, c'est bon alors, que voulais tu d'autre que ce résultat ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>> a = '5'
    >>> len(a) <= 1
    True

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 30
    Par défaut
    J'ai du louper quelque chose alors.

    Es que ce morceau de code veut dire ceci :
    Si Motdepasse.get et inférieur ou égale à 1 alors affichage de print if
    Sinon si Motdepasse.get et supérieure ou égale à 8 alors affichage de print elif
    Sinon (sous entendu si le nombre est compris entre 2 et 7) alors affichage de print else

    Si c est bien cela alors il y a bien un dysfonctionnement. En effet avec la valeur 2 j’obtiens le print if et avec la valeur 99 j’obtiens un print else

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if len(Motdepasse.get()) <= 1:
            print("if",Motdepasse.get())
        elif len(Motdepasse.get()) >= 8:
            print("elif",Motdepasse.get())
         else:
            print("else",Motdepasse.get())

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Analyse mon petit bout de code, en détail.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Flash 8]les liens ne fonctionnent pas ?
    Par benedict17 dans le forum Flash
    Réponses: 1
    Dernier message: 28/03/2008, 11h35
  2. Réponses: 3
    Dernier message: 05/02/2008, 10h03
  3. [2008] "Gérer les utilisateurs" ne fonctionne pas
    Par gifffftane dans le forum Mandriva / Mageia
    Réponses: 3
    Dernier message: 06/12/2007, 17h22
  4. les liens ne fonctionnent pas
    Par knopflerized dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 29/10/2007, 18h11
  5. Les EL ne fonctionnent pas !
    Par tequila13 dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 16/06/2007, 21h26

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