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 :

réinitialisation de liste selon conditions


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 44
    Points : 18
    Points
    18
    Par défaut réinitialisation de liste selon conditions
    Bonjour, pour un projet de lycée je dois préparer un programme qui crée un mot de passe aléatoire selon les critères demandés, tout se passe bien mais je fais face actuellement à un problème, c'est a dire que je n'arrive pas a faire en sorte que mon mot de passe respecte à 100% les conditions, je peux faire en sorte qu'il n'ai pas de lettre/chiffres si demandé mais je n'arrive pas à faire en sorte qu'il est toujours des chiffres ou lettre si l'utilisateur en veux... Mon mot de passe est sous forme de liste et j'aimerais savoir comment faire en sorte de dire que si par exemple la liste ne contient pas de chiffre alors le programme se relance jusqu'à ce que le mot de passe en ai. Et aussi j'aimerais savoir comme faire apparaître une liste sous forme de caractères à la suite, par exemple si ma liste est [0,7,Y,u,P] qu'elle soit afficher comme ça : 07YuP
    Merci d'avance! Je précise que c'est du python niveau débutant alors il faut que je reste sur des façon de faire pas trop compliquée
    GénérateurMDP.py

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Redelta Voir le message
    je peux faire en sorte qu'il n'ai pas de lettre/chiffres si demandé mais je n'arrive pas à faire en sorte qu'il est toujours des chiffres ou lettre si l'utilisateur en veux...
    Dans votre code, vous construisez une liste2 en y ajoutant chiffre, minuscule ou majuscule piochés aléatoirement.
    Donc vous savez qu'en prenant les trois premiers caractères puis n'importe quoi après et en mélangeant le tout (avec random.shuffle) vous aurez un mot de passe qui convient.


    Citation Envoyé par Redelta Voir le message
    Mon mot de passe est sous forme de liste et j'aimerais savoir comment faire en sorte de dire que si par exemple la liste ne contient pas de chiffre alors le programme se relance jusqu'à ce que le mot de passe en ai.
    Il faut parcourir les éléments de la liste et s'assurer qu'au moins un satisfait la condition. Et tant que le mot de passe n'est pas bon, c'est encore une boucle while... que vous n'allez pas intégrer à generemdp mais isoler dans une fonction qui appelle generemdp avec les critères en paramètres et qui s'assure que son retour est "bon".


    Citation Envoyé par Redelta Voir le message
    Et aussi j'aimerais savoir comme faire apparaître une liste sous forme de caractères à la suite, par exemple si ma liste est [0,7,Y,u,P] qu'elle soit afficher comme ça : 07YuP
    Il faut utiliser ''.join(['0','7','Y','u','P'] ou écrire une fonction équivalente qui récupère la liste en entrée et qui retourne une chaîne de caractères construite dans une boucle qui ajoute chaque élément de la liste à une chaîne de caractère (initialisée à "").


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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 44
    Points : 18
    Points
    18
    Par défaut
    Merci pour votre aide ça me dirige un peu, mais je ne comprend pas la partie "Il faut parcourir les éléments de la liste et s'assurer qu'au moins un satisfait la condition. Et tant que le mot de passe n'est pas bon, c'est encore une boucle while... que vous n'allez pas intégrer à generemdp mais isoler dans une fonction qui appelle generemdp avec les critères en paramètres et qui s'assure que son retour est "bon"."
    Comment fait on pour parcourir les éléments de la liste justement ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Redelta Voir le message
    Comment fait on pour parcourir les éléments de la liste justement ?
    Ah ben, çà dépend de ce qu'on peut utiliser...
    Dans votre code, vous savez utiliser un index pour atteindre les différents éléments de la liste, vous savez aussi récupérer la longueur de la liste et faire des boucles while....
    Donc vous devriez savoir faire une construction du style: on initialise un index à 0, puis tant que l'index est inférieur à la longueur de la liste, on récupère l'élément avec cet index, on teste la condition et on sort via un "break" ou bien on incrémente l'index pour passer au suivant...
    Vous avez bien sûr des constructions plus avancées avec "for...else" ou même "any" et des tas de tuto. à disposition qui vous expliquent comment çà fonctionne.

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

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 44
    Points : 18
    Points
    18
    Par défaut
    Super! Merci beaucoup pour votre aide c'est presque finis maintenant! Mais pour l'affichage je fais encore face a un problème, le ''.join(liste3) ne marche pas si l'utilisateur veut des chiffres puisqu'ils me disent que le .join ne reconnais que des instances de type str or les chiffres font office de int... J'avais pensé a convertir les chiffres en str mais étant donné que la liste qu'on me donne n'est pas prédéfinie mais aléatoire je peux pas vraiment savoir quel caractère est un chiffre et le remplacer...

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 44
    Points : 18
    Points
    18
    Par défaut
    C'est bon finalement, j'ai réussis a le faire, j'ai utiliser liste3=[str(item) for item in liste3] pour transformer tous mes éléments de ma liste en str et j'avais plus qu'à faire le .join
    Merci beaucoup pour votre aide!

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Redelta Voir le message
    J'avais pensé a convertir les chiffres en str mais étant donné que la liste qu'on me donne n'est pas prédéfinie mais aléatoire je peux pas vraiment savoir quel caractère est un chiffre et le remplacer...
    Un chiffre n'est qu'un caractère parmi '0', '1',...'9'.
    Et comme vous voulez fabriquer avec une chaine de caractères, pourquoi prendre des "int"?

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

Discussions similaires

  1. [XL-2003] Ajout selon conditions liste déroulante et résultat
    Par iIncoming dans le forum Excel
    Réponses: 17
    Dernier message: 24/01/2013, 09h54
  2. [XL-2010] Création d'une liste selon conditions sur plusieurs feuilles
    Par jossuka dans le forum Excel
    Réponses: 2
    Dernier message: 29/10/2012, 09h59
  3. Liste déroulante qui s'affiche selon condition
    Par jackfred dans le forum Excel
    Réponses: 7
    Dernier message: 26/06/2007, 10h04
  4. [VB.NET] Changer de classe selon condition
    Par daner06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/10/2004, 10h04
  5. DLLs chargées selon condition
    Par Benjamin GAGNEUX dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 12/08/2004, 18h14

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