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 :

Aide python mini projet ISN


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Aide python mini projet ISN
    Bonjour, bonsoir,

    Je suis actuellement dans une impasse, mes camarades et moi-même sommes entrain de préparer un mini projet pour l'ISN.
    Nous voulons programmer sur python mais malheureusement on y arrive pas vraiment.
    Voilà les critères et le but de ce mini projet :
    Mot de passe plus que sécurisé !
    Notre mini projet à pour but d’aider les utilisateurs à trouver un mot de passe sécurisé.
    Pour cela nous devons créer un programme capable d’évaluer la sécurité de notre mot de passe choisi en fonction de critères défini.
    Les différents critères sont :
    - Mot de passe trop court (moins de 6 caractères)
    - Mot de passe identique
    - Mot de passe avec une majuscule
    - Mot de passe contenant au moins 2 chiffres

    Nous voulons écrire tout cela sur python et ensuite créer une interface graphique avec Tkinter.
    Si c'est possible de nous aider à faire la base je vous en serais reconnaissant.

    En attente d'une réponse de votre part.
    Merci d'avance pour votre aide, cordialement.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    Donc le mdp doit faire au moins 6 caractères dont au moins 2 chiffres et au moins 1 majuscule.
    Je pense que les méthodes de str devraient suffire.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Les méthodes de str ? Désolé j'y connais rien du tout, je débute.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    Un mdp c'est une chaîne de caractères (string) à laquelle on peut appliquer des méthodes, cad des petits programmes pour les manipuler.

    Mais je suppose que vous devez faire avec les cours, qu'avez vous appris jusqu'ici ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Merci de ton aide, pour l'instant nous avons simplement fait des activités.

    Nous avons vu quelques fonctionnalité "basique" et c'est pour cela que nous cherchons de l'aide pour constituer au moins la base et savoir comment nous orienter

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    Ok, il il n'y a pas de contrainte alors ...
    Et bien, coder c'est comme traduire dans une autre langue.
    Admettons que le mdp soit foo12F, comment feriez vous en français pour vérifier qu'il correspond aux critères ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    En français on devrait regarder le nombre de caractères les majuscules et les chiffres.
    Dans l'exemple le mot de passe serait alors "valide".

    La traduction dans un language informatique serait donc d'y inserer des conditions avec deux sorties "Oui" ou "Non" selon chacun de nos critères predefinis.

    Mais c'est theorique. Comment pouvons nous reussir a traduire cela.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    oui!! en résumé, on a 3 critères et il faut répondre 'oui' aux 3 pour valider le mdp.

    critere1 = la longueur du mdp est supérieur ou égale à 6
    critere2 = le mdp contient au moins 1 majuscule
    critere3 = le mdp contient au moins 2 caractères numériques

    maintenant, comment feriez vous en français pour vérifier qu'une chaîne de caractères, donc une suite de caractères, contient une majuscule ou un chiffre ?

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    bah je sais pas quoi repondre pour nous sa parait automatique car on reconnait les caracteres.
    Vous parlez de suite de caractere c'est pour ça que vous parliez de methode str ?
    Jai peu de temps pour faire des recherches et repondre etant en cours. Mais merci pour le temps que vous nous donnez pour nous aide.

  10. #10
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    on va laisser tomber les méthodes.

    avant vous ne saviez la lire et vous avez appris l'alphabet,
    maintenant vous reconnaissez un mot à ce qu'il est composé de lettre, et vous reconnaissez une lettre à ce qu'elle appartient à l'alphabet.
    De même vous reconnaissez un chiffre parce qu'il appartient à "l'alphabet numérique".

    3 est un chiffre parce qu'il se trouve dans l'alphabet (0,1,2,3,4,5,6,7,8,9).

    en python, pour savoir si qqchose appartient à un ensemble, on utilise le mot réservé "in".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> 3 in (0,1,2,3,4,5,6,7,8,9)
    True
    >>> 55 in (0,1,2,3,4,5,6,7,8,9)
    False
     
    >>> 'a' in 'abc'
    True
    >>> 'f' in 'abc'
    False
    ainsi vous savez à présent, normalement, déterminer si un caractère est un chiffre ou une majuscule.

    Lorsque vous lisez un mot, vous parcourez chaque caractère pour le déchiffrer.
    De la même manière, il faut parcourir le mdp pour déterminer chaque caractère.
    Connaissez vous la boucle 'for' ?

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    En resumé pour savoir si le caractere est un chiffre une miniscule ou une majuscule, il suffit de donner une certaine "base de donnée" au code pour qu'il sache si la variable proposée est comprise ou non dans la reference definie auparavant.

    Pour la boucle for je ne sais pas a quoi cela correspond, étant vraiment debutant. Je sais simplement qu'en general une boucle est faite pour repartir a une etape precedente jusqu'a ce qu'une condition soit validée ? Je me trompe peut etre

  12. #12
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    en gros c'est ça.

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in 'bonjour':
        print(i)
    ce qui donne:
    la chaîne 'bonjour' est parcourue élément par élément, l'élément étant "placé" dans la variable i. le print() affiche cette variable.

    ainsi tu peux parcourir le mdp pour tester chaque caractère. Reste à savoir comment s'y prendre pour justement prendre en compte le résultat des tests relatifs au critères.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Si comme avant, on defini les "Bases de données" pour chaque type de caracteres {0,1,2,3,4,5,6,7,8,9} par exemple, on peut alors faire
    (Avec i = {0,1,2,3,4,5,6,7,8,9})


    For i in 'foo12F'

    Pour rechercher et comptabiliser les chiffres ? Mais dans ce cas on aurait pas la fonction print ensuite car on ne cherche pas à afficher cette information. Mais peut etre justement une fonction qui comptabilise le resultat du test pour valider le critère ?

    C'est plus ou moins la dernière phrase de votre dernier message mais je suis pas sur d'avoir compris car pour vous i est une variable correspondant à la minuscule ? Sinon pourquoi le print affiche tous les caractères du mot testé ?

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Ce que vous racontez n'est pas facile a comprendre.
    Postez du code, ce sera moins ambigu.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> for c in 'foo12F':
    ...     if c.isdigit(): print (c,'digit')
    ...     elif c.isupper(): print (c, 'upper')
    ...     elif c.islower(): print (c, 'lower')
    ...
    ('f', 'lower')
    ('o', 'lower')
    ('o', 'lower')
    ('1', 'digit')
    ('2', 'digit')
    ('F', 'upper')
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    bien.
    dans for i in 'foo12F', i prend successivement les valeur 'f','o','o','1','2','F'.
    Et effectivement, comptabiliser le nombre de chiffre est une bonne idée. Pour cela il nous faut une variable pour mémoriser ce compte.

    par exemple `chiffre` pour compter les chiffres.
    à chaque fois que l'on rencontrera un caractère numérique, on ajoutera 1 à cette variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    chiffre = 0
    for i in 'foo12F':
        if i in '0123456789':
            chiffre = chiffre + 1
     
    print(chiffre)
    explication:
    ligne 1: au début chiffre vaut zéro puisqu'on n'a pas encore commencé à compter.
    ligne 2: ensuite on scanne le mdp,
    ligne 3: et pour chaque élément on teste s'il est un caractère numérique(SI i DANS '0123456789')
    ligne4: si oui, on ajoute 1 à la variable `chiffre`

    reste à tester la majuscule et la longueur.


    -------------------------------------------------------------
    une autre façon d'écrire le code précédent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chiffre = 0
    for i in 'foo12F':
        chiffre += i in '0123456789'

  16. #16
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Ce que vous racontez n'est pas facile a comprendre.
    Postez du code, ce sera moins ambigu.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> for c in 'foo12F':
    ...     if c.isdigit(): print (c,'digit')
    ...     elif c.isupper(): print (c, 'upper')
    ...     elif c.islower(): print (c, 'lower')
    ...
    ('f', 'lower')
    ('o', 'lower')
    ('o', 'lower')
    ('1', 'digit')
    ('2', 'digit')
    ('F', 'upper')
    - W
    c'est un débutant from scratch, je voulais l'amener à raisonner, je ne pense pas que d'attaquer directement avec des méthodes l'aidera beaucoup.

  17. #17
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par josmiley Voir le message
    c'est un débutant from scratch, je voulais l'amener à raisonner, je ne pense pas que d'attaquer directement avec des méthodes l'aidera beaucoup.
    Ah ben, s'ils doivent faire une interface avec tkinter, il faudra bien qu'ils fassent avec ces notations étranges sans les avoir complètement assimilées.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  18. #18
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Effectivement, la méthode de josmiley m'aide beaucoup car j'evite de simplement avoir un resultat betement sans comprendre la demarche. Mais toute aide est bien sur la bienvenu !

    Pour revenir au sujet je comprend doucement la méthode à suivre. i etant la variable qui dans l'exemple verifie le mdp. En prenant donc "minuscule" à la place des chiffres et donc en lui donnant {a,b,c...,z} on obtiendrai egalement le resultat ? Puis a refaire pour la majuscule.

    Au final une fois cette étape terminée, il suffira de prendre chacun des variables obtenu et les comparer au critère voulu ?

    if chiffre < 2
    Print (n\'Le mot de passe ne contient pas assez de chiffres')

    Par exemple.
    Sachant que si c'est cette methode a appliquer pour finaliser, je devrais savoir le faire sans soucis.

  19. #19
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    Les minuscules ne sont pas à vérifier, ce n'est pas un des critères demandé.
    Sinon le raisonnement est bon.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Oui effectivement ! Autant pour moi, c'etait plutot le nombre de caractères totals qui sera une condition à remplir.
    Eh bien merci beaucoup je devrais m'en sortir avec tout ça.
    Il restera plus qu'a tester tout ça.

    Merci beaucoup pour votre aide j'ai pu vraiment comprendre toute la demarche (j'éspere !)

    Bonne soirée !

Discussions similaires

  1. Besion d'aide sur un projet sous Python
    Par anass_59 dans le forum Général Python
    Réponses: 11
    Dernier message: 20/05/2009, 17h16
  2. aide sur un mini projet
    Par thedon dans le forum C++
    Réponses: 0
    Dernier message: 03/01/2009, 01h42

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