Le programme me dit invalid syntax

Résolu/Fermé
Multi73 Messages postés 88 Date d'inscription dimanche 13 septembre 2020 Statut Membre Dernière intervention 4 mai 2022 - Modifié le 27 avril 2022 à 17:28
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 28 avril 2022 à 11:46
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()
A voir également:

4 réponses

yg_be Messages postés 23454 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 février 2025 Ambassadeur 1 564
27 avril 2022 à 15:25
bonjour,
peux-tu donner le texte complet du message d'erreur?
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 27 avril 2022 à 17:19
Bonjour,

Invalid syntax ligne 14 surement ...
0
yg_be Messages postés 23454 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 février 2025 1 564
27 avril 2022 à 17:44
chez moi la ligne 14 passe sans problème.
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168 > yg_be Messages postés 23454 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 février 2025
27 avril 2022 à 17:52
ah bon ?

même avec ascii écrit avec 2 a ?

all_chars = string.aascii_letters
0
yg_be Messages postés 23454 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 février 2025 1 564 > Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024
27 avril 2022 à 18:31
oui, grâce à la suite de l'instruction.
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168 > yg_be Messages postés 23454 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 février 2025
27 avril 2022 à 20:42
ah ?

on peut écrire ascii avec 2 a?
0
yg_be Messages postés 23454 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 février 2025 1 564 > Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024
27 avril 2022 à 23:08
import string
x = string.phil = "y"
print(string.phil)
0
mamiemando Messages postés 33506 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 31 janvier 2025 7 819
Modifié le 27 avril 2022 à 17:40
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
Multi73 Messages postés 88 Date d'inscription dimanche 13 septembre 2020 Statut Membre Dernière intervention 4 mai 2022 2
27 avril 2022 à 18:37
Ok merci !

0