Le programme me dit invalid syntax

Résolu
Multi73 Messages postés 95 Statut Membre -  
Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Le programme me dit invalid syntax mais je ne trouve pas l'erreur. Pouvez-vous me corriger l'erreur ?

Merci beaucoup de votre réponse !

import string
from random import randint, choice
#importer le module tkinter
from tkinter import*

# créer la page
fenetre = Tk()



def generate_password():
    password_min = 8
    password_max = 16
    all_chars = string.aascii_letters = string.punctuation = string.digits

    password ="".join(choice(all_chars) for x in range(randint(password_min, password_max)))
    entree.delete(0,END)
    entree.insert(0, password)


#personnalisation de la fenetre
fenetre.title("Generateur et crypteur de mots de passes")
fenetre.geometry("1600x900")
fenetre.iconbitmap("mot-de-passe.ico")
fenetre.config(background="#AEB404")

#creer la boite
boite = Frame(fenetre, bg="#AEB404")

#mettre du texte
titre_un = Label(boite, text='Bienvenue sur le générateur et crypteur de mots de passes', font=("Arial", 40), bg="#AEB404")
titre_un.pack()


#mettre un second texte
soustitre_un = Label(boite, text='Cliquez ci dessous pour générer un mots de passe', font=("Arial", 30), bg="#AEB404")
soustitre_un.pack()


#ajouter une image
largeur = 250
hauteur = 250
image = PhotoImage(file="mot-de-passe (1).png").zoom(15).subsample(32)
canvas = Canvas(boite, width=largeur, height=hauteur, bg="#AEB404", bd=0)
canvas.create_image(largeur/2, hauteur/2, image=image)
canvas.pack(expand=YES)


#ajouet un premier bouton
bouton = Button(boite, text="Generer un mots de passe", font=("Arial",25), bg="#F9815E", fg="blue", command=generate_password())
bouton.pack()

#mettre un champ d'entrée
entree = Entry(boite, font=("Arial", 30), bg="#AEB404")
entree.pack()


#ajouet un deuxieme bouton
sauvgarder = Button(boite, text="Sauvgarder le mots de passe", font=("Arial",25), bg="#F9815E", fg="blue")
sauvgarder.pack()


    

#afficher la boite
boite.pack(side=TOP)


#Afficher la page
fenetre.mainloop()

4 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    peux-tu donner le texte complet du message d'erreur?
    0
  2. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Bonjour,

    Invalid syntax ligne 14 surement ...
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      chez moi la ligne 14 passe sans problème.
      0
    2. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      ah bon ?

      même avec ascii écrit avec 2 a ?

      all_chars = string.aascii_letters
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention  
       
      oui, grâce à la suite de l'instruction.
      0
    4. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      ah ?

      on peut écrire ascii avec 2 a?
      0
    5. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention  
       
      import string
      x = string.phil = "y"
      print(string.phil)
      0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Bonjour,

    Après remise en forme (indentation, typo, et ajout du paramètre
    entree
    à
    generate_password
    + déplacement de la déclaration de
    entree
    ) voici à quoi ça pourrait ressembler (j'ai commenté les instructions avec les images car tu ne les as pas fournies) :

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    import string
    from random import randint, choice
    from tkinter import *
    
    # Créer la page
    fenetre = Tk()
    
    def generate_password(entree):
        password_min = 8
        password_max = 16
        all_chars = string.ascii_letters = string.punctuation = string.digits
        password = "".join(
            choice(all_chars)
            for x in range(randint(password_min, password_max))
        )
        entree.delete(0,END)
        entree.insert(0, password)
    
    # Personnalisation de la fenêtre
    fenetre.title("Générateur et crypteur de mots de passes")
    fenetre.geometry("1600x900")
    #fenetre.iconbitmap("mot-de-passe.ico")
    fenetre.config(background="#AEB404")
    
    # Créer la boite
    boite = Frame(fenetre, bg="#AEB404")
    
    # Mettre du texte
    titre_un = Label(
        boite,
        text="Bienvenue sur le générateur et crypteur de mot de passes",
        font=("Arial", 40),
        bg="#AEB404"
    )
    titre_un.pack()
    
    # Mettre un second texte
    soustitre_un = Label(
        boite,
        text="Cliquez ci-dessous pour générer un mot de passe",
        font=("Arial", 30),
        bg="#AEB404"
    )
    soustitre_un.pack()
    
    # Ajouter une image
    largeur = 250
    hauteur = 250
    #image = PhotoImage(file="mot-de-passe (1).png").zoom(15).subsample(32)
    canvas = Canvas(boite, width=largeur, height=hauteur, bg="#AEB404", bd=0)
    #canvas.create_image(largeur / 2, hauteur / 2, image=image)
    canvas.pack(expand=YES)
    
    # Mettre un champ d'entrée
    entree = Entry(boite, font=("Arial", 30), bg="#AEB404")
    entree.pack()
    
    # Ajouter un premier bouton
    bouton = Button(
        boite,
        text="Générer un mot de passe",
        font=("Arial", 25),
        bg="#F9815E",
        fg="blue",
        command=generate_password(entree)
    )
    bouton.pack()
    
    # Ajouter un deuxième bouton
    sauvegarder = Button(
        boite,
        text="Sauvegarder le mots de passe",
        font=("Arial", 25),
        bg="#F9815E",
        fg="blue"
    )
    sauvegarder.pack()
    
    # Afficher la boite
    boite.pack(side=TOP)
    
    # Afficher la page
    fenetre.mainloop()


    Ceci dit, même si la ligne
    all_chars = string.ascii_letters = string.punctuation = string.digits
    est syntaxiquement correcte, je doute qu'elle fasse ce que tu as prévu. Peut-être voulais-tu plutôt écrire :

    all_chars = set(string.ascii_letters) | set(string.punctuation) | set(string.digits)


    Bonne chance
    0
  4. Multi73 Messages postés 95 Statut Membre 2
     
    Ok merci !

    0