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 -
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 !
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
-
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? -
Bonjour,
Invalid syntax ligne 14 surement ... -
Bonjour,
Après remise en forme (indentation, typo, et ajout du paramètreentree
àgenerate_password
+ déplacement de la déclaration deentree
) 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 ligneall_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 -