# data[].attributes.attachment_link.readable_text
#-------------------------------------------------------------------------------
# Name:        module1
# Purpose:
#
# Author:      proni
#
# Created:     22/06/2020
# Copyright:   (c) proni 2020
# Licence:     <your licence>
#-------------------------------------------------------------------------------

# Les imports
from random import *
import csv
import matplotlib.pyplot as plt

# Cr��ation du fichier sous forme de liste
# Le fichier est cr���� ligne par ligne
# Ne pas oublier de prendre en compte les cases vides
entetes = ["Meilleures ventes de la soci��t�� 'Pentathlon'",'','','','','','']
liste_vente = []
liste_vente.append(entetes)
ligne_vide = ['','','','','','','']
liste_vente.append(ligne_vide)
liste_vente.append(["",'2013','2014','2015','2016','2017','2018'])
liste_vente.append(ligne_vide)

# Insertion des lignes des produits
liste_produits=['V��lo VTT','Planche de surf','Chaussures de courses','Raquette de badminton','Ballon de volley']

for i in range(5):
    ma_liste = []

    ma_liste.append(liste_produits[i])
    for j in range(6):
        ma_liste.append(str(randint(500,1000)))
    liste_vente.append(ma_liste)

#Visualisation de la liste
print(liste_vente)

#cr��ation du fichier ventes.csv
f = open('ventes.csv', 'w')

# On cr���� le fichier ligne par ligne avec "," comme s��parateur
for valeur in liste_vente:
     ligne = ",".join(valeur) + "\n"
     f.write(ligne)

f.close()


# Lecture du fichier ventes.csv
liste_recup = []
f = open ("ventes.csv","r")
for l in range(9):
    lignes = f.readline()
    ligne_nouv = lignes.split(",")
    if l>3:
        liste_recup.append(ligne_nouv)
f.close()

print(liste_recup)

for valeur in liste_recup:
    del valeur[0]

print(liste_recup)

#transformation des donn��es en int
liste_int = []
for valeur in range(5):
    liste_tampon=[]
    for i in range(6):
        liste_tampon.append(int(liste_recup[valeur][i]))
    liste_int.append(liste_tampon)

print(liste_int)


#cr��ation des listes de produits
V��lo_VTT = liste_int[0]
Planche_de_surf = liste_int[1]
Chaussure_de_courses =liste_int[2]
Raquette_de_Badminton = liste_int[3]
Ballon_de_volley = liste_int[4]
print(V��lo_VTT)


# Affichage du fichier ventes.csv
plt.xlabel('ann��e 2013 �� 2018')
plt.ylabel('vente')
plt.title('Vente PENTATHLON')

plt.plot(V��lo_VTT, label='V��lo VTT') # ou plt.plot(liste_int[0])
plt.plot(Planche_de_surf, label ='Planche de surf')
plt.plot(Chaussure_de_courses, label =' Chaussure de courses')
plt.plot(Raquette_de_Badminton, label ='Raquette de Badminton')
plt.plot(Ballon_de_volley, label = 'Ballon de volley')

plt.legend()
plt.grid()
plt.show()

# data[].attributes.attachment_link.readable_text
# Cr���� par Admin, le 29/05/2026 en Python 3.7
# Les imports
from random import *
import csv
import matplotlib.pyplot as plt

# Cr��ation du fichier sous forme de liste
# Le fichier est cr���� ligne par ligne
# Ne pas oublier de prendre en compte les cases vides
entetes = ["Meilleures ventes de la soci��t�� 'Pentathlon'",'','','','','','']
liste_vente = []
liste_vente.append(entetes)
ligne_vide = ['','','','','','','']
liste_vente.append(ligne_vide)
liste_vente.append(["",'2013','2014','2015','2016','2017','2018'])
liste_vente.append(ligne_vide)

# Insertion des lignes des produits
liste_produits=['V��lo VTT','Planche de surf','Chaussures de courses','Raquette de badminton','Ballon de volley']

for i in range(5):
    ma_liste = []

    ma_liste.append(liste_produits[i])
    for j in range(6):
        ma_liste.append(str(randint(500,1000)))
    liste_vente.append(ma_liste)

#Visualisation de la liste
print(liste_vente)

# data[].attributes.attachment_link.readable_text
# Cr���� par LYCEE ACAJOU 2, le 29/05/2026 en Python 3.7
# Les imports
from random import *
import csv
import matplotlib.pyplot as plt

# Cr��ation du fichier sous forme de liste
# Le fichier est cr���� ligne par ligne
# Ne pas oublier de prendre en compte les cases vides
entetes = ["Meilleures ventes de la soci��t�� 'Pentathlon'",'','','','','','']
liste_vente = []

# data[].attributes.attachment_link.readable_text
# Cr���� par Admin, le 28/05/2026 en Python 3.7
# Lecture du fichier ventes.csv
liste_recup = []
f = open ("ventes.csv","r")
for l in range(9):
    lignes = f.readline()
    ligne_nouv = lignes.split(",")
    if l>3:
        liste_recup.append(ligne_nouv)
f.close()

print(liste_recup)

for valeur in liste_recup:
    del valeur[0]

print(liste_recup)

# data[].attributes.attachment_link.readable_text
���import PIL.Image
import piexif

def les_metad_modif():
    """ cette fonction renvoie les metadonn��es d'une image
    et les m��thadonn��es modifi��es"""

img = PIL.Image.open('butterfly.jpg')
exif_data = img.getexif()
print(exif_data)
exif_data[36867]=("2025:03:31 12:10:35")
exif_data[37385]=(16,2)
exif_data[271]=("CANON RENARD")
exif_data[272]=("CANON TR200")
boum=exif_data
print(exif_data)

img.save('new_file3.jpg', "jpeg", exif_data=boum)
exif_dict = piexif.load(img.info["exif"])


w,h = img.size


exif_dict["0th"][piexif.ImageIFD.YResolution] = (h, 1)
exif_dict["GPS"][piexif.GPSIFD.GPSDateStamp] = ("2020:05:31 12:11:35")
exif_dict["GPS"][piexif.GPSIFD.GPSVersionID]= (2,0,0,0)
exif_dict["GPS"][piexif.GPSIFD.GPSMapDatum] = "canon"
exif_dict["GPS"][piexif.GPSIFD.GPSLatitudeRef] = "S"
exif_dict["GPS"][piexif.GPSIFD.GPSAltitude] = (20,1)
exif_bytes = piexif.dump(exif_dict)
img.save('new_file2.jpg', "jpeg", exif_data=exif_bytes)
print(exif_dict["GPS"])

# data[].attributes.attachment_link.readable_text
# -*- coding: utf-8 -*-
"""
Created on Fri Apr 19 14:30:51 2019

@author: M KACIMI
"""

import PIL.Image
img = PIL.Image.open('butterfly.jpg')
exif_data = img._getexif()
print(exif_data)

# data[].attributes.attachment_link.readable_text
# Cr���� par USER, le 29/07/2021 en Python 3.7
from tkinter import *
import random

def tiremot():
    """
    Renvoie un mot de la liste mots.txt
    """
    fi= open('liste.txt','r')
    num = random.randint(1,881)
    i = 0
    while i < num :
        mot = fi.readline()
        i = i + 1
    fi.close()
    mot=mot[:-1]

    return mot

def affichemot(mot,lettres):
    r=""
    for i in range(len(mot)) :
        a=lettres.upper()
        b=mot[i].upper()
        if lettres.upper().count(mot.upper()[i])>0 : #on regarde si la lettre correspond avec une ou plusieurs lettres du mot
            r=r+mot.upper()[i]+" "
        else :
            r=r+"_ "
    return r

def debut():
    """ Fonction qui initialise les valeurs"""
    global mot,lettres,compt, photo
    mot=tiremot()
    photo = PhotoImage(file="bonhomme1.gif")
    Fond.itemconfig(img, image=photo)
    lettres=mot[0]
    compt=1
    print(lettres)
    AfficheMot.config(text=affichemot(mot,lettres),fg='white')


def propose():
    global mot,lettres,compt, photo
    if compt<8 :
        avant=affichemot(mot,lettres)
        lettres=lettres+E.get().upper()
        apres=affichemot(mot,lettres)
        if avant==apres :
            compt=compt+1
            nom="bonhomme"+str(compt)+".gif"
            photo= PhotoImage(file=nom)
            Fond.itemconfig(img, image=photo)
            R=str(8-compt)
            if R=='0' :
                AfficheCoups.config(text="Perdu, appuyez sur nouvelle partie")
                AfficheMot.config(fg="red",text=affichemot(mot,mot))
                B.config(text="Rejouer")
            elif R=='1' :
                AfficheCoups.config(text="Il ne vous reste qu'un essai !")
            else :
                AfficheCoups.config(text="Il vous reste "+R+" essais")
        else :
            AfficheMot.config(text=apres)
            if apres==affichemot(mot,mot) :
                AfficheCoups.config(text="BrAvO !")
                B.config(text="Rejouer")
                compt=10
        E.focus()
        E.delete(0,END)
    else :
        debut()
        B.config(text="Proposer")

fenetre=Tk()
fenetre.title("Jeu du pendu")
fenetre.geometry("800x400")
# Le canvas de fond
Fond=Canvas(fenetre,width=800,height=400,bg="#3E3F3F")
Fond.place(x=0,y=0)
# Le label pour l'affichage du mot �� trouver
AfficheMot=Label(fenetre,fg="#FFFFFF", bg="#3E3F3F",width=17,font="Helvetica 30 bold italic")
AfficheMot.place(x=8,y=50)
# Label avec les informations
AfficheCoups=Label(fenetre,fg="#4BF7F5",bg="#3E3F3F",width=40,font="Arial 10", text="proposez une lettre")
AfficheCoups.place(x=30,y=360)

E=Entry(fenetre,width=10,bg="white", fg="black")
E.place(x=100,y=250)
B=Button(fenetre,width=10,text="Proposer",command=propose)
B.place(x=200,y=250)
photo = PhotoImage(file="bonhomme1.gif")
img=Fond.create_image(600, 200, image=photo)

debut()

fenetre.mainloop()


# data[].attributes.attachment_link.readable_text
# Cr���� par Admin, le 23/05/2025 en Python 3.7
def propose():
    global mot,lettres,compt, photo
    if compt<8 :
        avant=affichemot(mot,lettres)
        lettres=lettres+E.get().upper()
        apres=affichemot(mot,lettres)
        if avant==apres :
            compt=compt+1
            nom="bonhomme"+str(compt)+".gif"
            photo= PhotoImage(file=nom)
            Fond.itemconfig(img, image=photo)
            R=str(8-compt)
            if R=='0' :
                AfficheCoups.config(text="Perdu, appuyez sur nouvelle partie")
                AfficheMot.config(fg="red",text=affichemot(mot,mot))
                B.config(text="Rejouer")
            elif R=='1' :
                AfficheCoups.config(text="Il ne vous reste qu'un essai !")
            else :
                AfficheCoups.config(text="Il vous reste "+R+" essais")
        else :
            AfficheMot.config(text=apres)
            if apres==affichemot(mot,mot) :
                AfficheCoups.config(text="BrAvO !")
                B.config(text="Rejouer")
                compt=10
        E.focus()
        E.delete(0,END)
    else :
        debut()
        B.config(text="Proposer")

# data[].attributes.attachment_link.readable_text
# Cr���� par Admin, le 20/05/2026 en Python 3.7
import random

def tiremot():
    """
    Renvoie un mot de la liste mots.txt
    Attention le mot retourn�� doit ��tre emput�� duretour chariot de fin
    """
    global mot
    fi= open('liste.txt','r')
    num = random.randint(1,881)
    i = 0
    while i < num :
        mot = fi.readline()
        i = i + 1
    fi.close()
    mot=mot[:-1] # On enl��ve le retour chariot
    return mot
tiremot()

# data[].attributes.attachment_link.readable_text
absolu
ancien
claire
commun
divers
double
droite
enorme
entier
etroit
facile
faible
fidele
gauche
humain
humide
malade
ouvert
pareil
pauvre
precis
propre
public
rapide
second
secret
simple
social
sombre
tendre
triste
unique
vivant
voisin
autant
autour
certes
debout
dehors
demain
depuis
dessus
devant
encore
jamais
plutôt
tantôt
chaque
quatre
quinze
trente
aupres
contre
depuis
devant
durant
jusque
malgre
auquel
chacun
lequel
accent
accord
action
animal
argent
aspect
auteur
avance
avenir
beaute
besoin
billet
bouche
bureau
centre
cercle
chaîne
chaise
chance
charge
chasse
chemin
cheval
cheveu
classe
colere
combat
compte
couche
course
danger
defaut
dehors
demain
depart
desert
detail
devoir
droite
effort
empire
enfant
ennemi
entree
epaule
epoque
erreur
espace
espece
espoir
esprit
etoile
faveur
figure
flamme
garcon
gauche
gloire
goutte
groupe
guerre
hasard
jardin
lettre
madame
maison
maître
manier
marche
marche
membre
mesure
metier
milieu
minute
moitie
moment
nation
nature
nombre
oeuvre
oiseau
palais
papier
paquet
parent
parole
partie
patron
pauvre
paysan
pensee
peuple
phrase
pierre
plaine
plante
poesie
pointe
police
preuve
priere
prince
prison
projet
propos
public
raison
regard
retour
rideau
rocher
saison
savoir
secret
siecle
soiree
soldat
soleil
sommet
source
succes
taille
temoin
tresor
valeur
veille
ventre
verite
visage
vision
visite
voisin
voyage
agiter
amener
amuser
animer
avouer
battre
briser
bruler
cacher
calmer
casser
causer
cesser
couler
couper
courir
couter
croire
danser
devoir
donner
dormir
douter
ecrire
elever
entrer
etaler
eviter
exiger
fermer
fonder
forcer
former
gagner
garder
lisser
livrer
lutter
manger
marier
mentir
mettre
monter
mourir
naître
nommer
offrir
ouvrir
parler
partir
passer
pendre
penser
perdre
placer
plaire
porter
preter
rendre
rester
reunir
revoir
rompre
rouler
saisir
saluer
sauter
sauver
savoir
sentir
serrer
servir
signer
songer
sonner
sortir
suivre
tendre
tenter
tomber
tracer
valoir
vendre
verser
anglais
capable
certain
complet
content
curieux
dernier
eternel
etrange
general
heureux
immense
inconnu
inutile
mauvais
moindre
naturel
nerveux
nouveau
premier
present
profond
sauvage
serieux
suivant
violent
visible
bientôt
combien
comment
d'abord
ensuite
environ
parfois
partout
presque
quelque
soudain
souvent
surtout
comment
lorsque
puisque
certain
quelque
afin de
pendant
quant à
absence
affaire
anglais
arriere
arrivee
article
bonheur
branche
cabinet
cerveau
chaleur
chambre
chemise
chiffre
colline
conseil
couleur
courage
courant
crainte
cuisine
demande
dernier
docteur
douceur
douleur
element
emotion
endroit
energie
enfance
etendue
exemple
famille
fatigue
fenetre
feuille
fortune
general
hauteur
honneur
horizon
instant
interet
journal
journee
justice
liberte
lumiere
machine
maladie
malheur
mariage
matiere
medecin
memoire
million
morceau
musique
nouveau
oreille
ouvrage
passage
passion
paysage
plaisir
planche
portier
pouvoir
premier
present
qualite
rapport
realite
reponse
respect
science
seconde
secours
semaine
sentier
service
silence
societe
sommeil
sourire
systeme
tempete
terrain
terreur
theatre
travail
travers
victime
village
voiture
volonte
abattre
accuser
acheter
achever
ajouter
allumer
appeler
appuyer
arreter
arriver
asseoir
assurer
attirer
avancer
baisser
briller
changer
chanter
charger
chasser
choisir
compter
confier
coucher
couvrir
creuser
croiser
decider
decrire
degager
deposer
desirer
devenir
deviner
diriger
dominer
dresser
ecarter
eclater
ecouter
ecraser
effacer
emmener
engager
enlever
envoyer
esperer
essayer
essuyer
etablir
etendre
etonner
etudier
exister
exposer
falloir
figurer
frapper
glisser
grandir
habiter
hesiter
ignorer
imposer
inviter
joindre
manquer
marcher
marquer
menacer
meriter
montrer
nourrir
obliger
obtenir
occuper
oublier
pencher
pleurer
plonger
pousser
pouvoir
prendre
presser
prevoir
prouver
quitter
ramener
reculer
reduire
refuser
rejeter
relever
remplir
rentrer
repeter
reposer
retenir
retirer
reussir
reveler
revenir
risquer
sembler
separer
sourire
suffire
toucher
tourner
traîner
traiter
tromper
trouver
vaincre
veiller
vouloir
voyager
etranger
francais
immobile
meilleur
nombreux
possible
precieux
prochain
puissant
terrible
ailleurs
aussitôt
beaucoup
ensemble
pourquoi
pourtant
toujours
vraiment
pourquoi
d'autres
quarante
derriere
d'autres
personne
angoisse
attitude
autorite
aventure
bataille
camarade
campagne
dimanche
discours
distance
ensemble
escalier
etranger
fauteuil
fonction
francais
francois
habitant
habitude
histoire
instinct
jeunesse
marchand
mensonge
ministre
monsieur
montagne
occasion
officier
paupiere
personne
poitrine
position
presence
principe
probleme
quartier
question
relation
religion
resultat
seigneur
solitude
souvenir
vetement
violence
accepter
accorder
admettre
adresser
affirmer
annoncer
apporter
arracher
assister
attacher
attaquer
attendre
caresser
chercher
composer
conclure
conduire
contenir
convenir
craindre
dechirer
declarer
defendre
demander
demeurer
depasser
designer
dessiner
detacher
detruire
discuter
disposer
echapper
eclairer
eloigner
empecher
employer
emporter
endormir
enfermer
enfoncer
entendre
entourer
eprouver
eteindre
etouffer
examiner
executer
exprimer
fatiguer
franchir
habiller
imaginer
importer
indiquer
inspirer
inventer
observer
paraître
partager
parvenir
penetrer
plaindre
posseder
preceder
preferer
preparer
prevenir
produire
profiter
promener
proposer
proteger
raconter
ramasser
rappeler
rassurer
recevoir
reclamer
regarder
remettre
remonter
renoncer
repandre
repondre
reserver
resister
resoudre
respirer
retomber
souffler
souffrir
soulever
soutenir
souvenir
supposer
terminer
trembler
troubler
dangereux
different
difficile
important
interieur
militaire
politique
semblable
superieur
troisieme
veritable
autrefois
autrement
cependant
davantage
desormais
doucement
egalement
lentement
longtemps
seulement
tellement
parce que
plusieurs
cinquante
quelqu'un
apparence
attention
caractere
compagnie
compagnon
condition
confiance
contraire
curiosite
desespoir
direction
evenement
existence
intention
interieur
lendemain
mouvement
naissance
politique
poussiere
president
printemps
puissance
recherche
reflexion
rencontre
sentiment
situation
spectacle
vieillard
accomplir
accrocher
apprendre
approcher
atteindre
commander
commencer
condamner
confondre
connaître
consentir
consulter
contenter
continuer
decouvrir
descendre
embrasser
entraîner
expliquer
inquieter
installer
maintenir
parcourir
permettre
presenter
pretendre
promettre
prononcer
rapporter
reflechir
regretter
rejoindre
remarquer
remercier
remplacer
renverser
repousser
reprendre
respecter
retourner
retrouver
reveiller
signifier
souhaiter
soumettre
supporter
traverser
impossible
magnifique
necessaire
silencieux
tranquille
absolument
maintenant
rapidement
simplement
tandis que
changement
conscience
discussion
experience
expression
importance
impression
inquietude
personnage
professeur
resistance
revolution
secretaire
souffrance
abandonner
apercevoir
apparaître
appartenir
comprendre
considerer
construire
distinguer
entretenir
envelopper
interesser
interroger
poursuivre
precipiter
recueillir
rencontrer
ressembler
satisfaire
surprendre
surveiller
travailler
particulier
aujourd'hui
brusquement
appartement
accompagner
disparaître
interrompre
recommencer
reconnaître
representer
transformer
certainement
completement
parfaitement
profondement
circonstance
commencement
connaissance
conversation
gouvernement
intelligence
naturellement
extraordinaire

# data[].attributes.attachment_link.readable_text
#-------------------------------------------------------------------------------
# Name:        module1
# Purpose:
#
# Author:      proni
#
# Created:     22/06/2020
# Copyright:   (c) proni 2020
# Licence:     <your licence>
#-------------------------------------------------------------------------------
from random import *
import csv
import matplotlib.pyplot as plt

entetes = ["Meilleures ventes de la soci��t�� 'Pentathlon'",'','','','','','']
liste_vente = []
liste_graphique =[]
liste_vente.append(entetes)
ligne_vide = ['','','','','','','']
liste_vente.append(ligne_vide)
liste_vente.append(["",'2013','2014','2015','2016','2017','2018'])
liste_vente.append(ligne_vide)

liste_produits=['V��lo VTT','Planche de surf','Chaussures de courses','Raquette de badminton','Ballon de volley']

for i in range(5):
    ma_liste = []

    ma_liste.append(liste_produits[i])
    for j in range(6):
        ma_liste.append(str(randint(500,1000)))
    liste_vente.append(ma_liste)
print(liste_vente)
f = open('ventes.csv', 'w')

for valeur in liste_vente:
     ligne = ",".join(valeur) + "\n"
     f.write(ligne)

f.close()
liste_recup = []
f = open ("ventes.csv","r")
for l in range(9):
    lignes = f.readline()
    ligne_nouv = lignes.split(",")
    if l>3:
        liste_recup.append(ligne_nouv)
f.close()

print(liste_recup)

for valeur in liste_recup:
    del valeur[0]

print(liste_recup)

liste_int = []
for valeur in range(5):
    liste_tampon=[]
    for i in range(6):
        liste_tampon.append(int(liste_recup[valeur][i]))
    liste_int.append(liste_tampon)

#print(liste_int)

V��lo_VTT = liste_int[0]
Planche_de_surf = liste_int[1]
Chaussure_de_courses =liste_int[2]
Raquette_de_Badminton = liste_int[3]
Ballon_de_volley = liste_int[4]

#print(V��lo_VTT)
plt.xlabel('ann��e 2013 �� 2018')
plt.ylabel('vente')
plt.title('Vente PENTATHLON')

plt.plot(V��lo_VTT, label='V��lo VTT') # ou plt.plot(liste_int[0])
plt.plot(Planche_de_surf, label ='Planche de surf')
plt.plot(Chaussure_de_courses, label =' Chaussure de courses')
plt.plot(Raquette_de_Badminton, label ='Raquette de Badminton')
plt.plot(Ballon_de_volley, label = 'Ballon de volley')

plt.legend()
plt.grid()
plt.show()

# data[].attributes.attachment_link.readable_text
���# Cr���� par proni, le 31/01/2020 en Python 3.4
from tkinter import *
import random


#D��finition des fonctions
def Pierre():
    resultat(1)


def Feuille():
    resultat(2)


def Ciseaux():
    resultat(3)


def resultat(joueur):
    if joueur != 1: P1.place_forget()
    if joueur != 2: F1.place_forget()
    if joueur != 3: C1.place_forget()

    if ordi != 1: P2.place_forget()
    if ordi != 2: F2.place_forget()
    if ordi != 3: C2.place_forget()

    if joueur == ordi :
        L.config(text="Egalit�� !")
    elif (joueur == 1 and ordi ==3) or (joueur == 2 and ordi ==1) or (joueur == 3 and ordi ==2) :
        L.config(text = "Vous avez gagn�� !")
    else :
        L.config(text = "PERDU")

fenetre = Tk()
fenetre.title("CHIFOUMI-feuille, papier, ciseaux")
fenetre.geometry('500x200')


pierre= PhotoImage(file="pierre2.gif")
feuille= PhotoImage(file="feuille2.gif")
ciseaux= PhotoImage(file="ciseaux2.gif")


Label(fenetre, text="Votre choix !").place(x=10, y=10)
P1 = Button(fenetre, image=pierre, width=100, height=40, command=Pierre)
P1.place(x=50, y=30)
F1 = Button(fenetre, image=feuille, width=100, height=40, command=Feuille)
F1.place(x=200, y=30)
C1 = Button(fenetre, image=ciseaux, width=100, height=40, command=Ciseaux)
C1.place(x=350, y=30)


Label(fenetre, text="Choix de l'ordinateur !").place(x=10, y=80)
P2 = Button(fenetre, image=pierre, width=100, height=40)
P2.place(x=50, y=100)
F2 = Button(fenetre, image=feuille, width=100, height=40)
F2.place(x=200, y=100)
C2 = Button(fenetre, image=ciseaux, width=100, height=40)
C2.place(x=350, y=100)

ordi = random.randint(1,3)
#print(ordi)
L = Label(fenetre, text= "Faites votre choix !")
L.place(x=10, y=180)


fenetre.mainloop()







# data[].attributes.attachment_link.readable_text
���# Cr���� par proni, le 31/01/2020 en Python 3.4
from tkinter import *
import random

#D��finition des fonctions
def pierre():
    resultat(1)


def feuille():
    resultat(2)


def ciseaux():
    resultat(3)


def resultat(joueur):
    if joueur != 1: P1.place_forget()
    if joueur != 2: F1.place_forget()
    if joueur != 3: C1.place_forget()

    if ordi != 1: P2.place_forget()
    if ordi != 2: F2.place_forget()
    if ordi != 3: C2.place_forget()

    if joueur == ordi :
        L.config(text="Egalit�� !")
    elif (joueur == 1 and ordi ==3) or (joueur == 2 and ordi ==1) or (joueur == 3 and ordi ==2) :
        L.config(text = "Vous avez gagn�� !")
    else :
        L.config(text = "PERDU")

fenetre = Tk()
fenetre.title("CHIFOUMI-feuille, papier, ciseaux")
fenetre.geometry('500x200')

Label(fenetre, text="Votre choix !").place(x=10, y=10)
P1 = Button(fenetre, text = "Pierre", width=15, command=pierre)
P1.place(x=50, y=30)
F1 = Button(fenetre, text = "Feuille", width=15, command=feuille)
F1.place(x=200, y=30)
C1 = Button(fenetre, text = "Ciseaux", width=15, command=ciseaux)
C1.place(x=350, y=30)


Label(fenetre, text="Choix de l'ordinateur !").place(x=10, y=80)
P2 = Button(fenetre, text = "Pierre", width=15)
P2.place(x=50, y=100)
F2 = Button(fenetre, text = "Feuille", width=15)
F2.place(x=200, y=100)
C2 = Button(fenetre, text = "Ciseaux", width=15)
C2.place(x=350, y=100)
ordi = random.randint(1,3)
#print(ordi)
L = Label(fenetre, text= "Faites votre choix !")
L.place(x=10, y=180)


fenetre.mainloop()







# data[].attributes.attachment_link.readable_text
# Cr���� par Admin, le 29/05/2024 en Python 3.7
def dichotomie(liste, x):
    l_t = sorted(liste)
    print(l_t)
    g=0
    d = len(l_t)
    while g<=d:
        m=(g+d)//2
        if l_t[m] < x:
            g=m+1
        elif l_t[m] > x:
            d = m-1
        else:
            return True
    return False
liste=[12,5,6,4,11,7,23,5]
print(dichotomie(liste,8))


# data[].attributes.attachment_link.readable_text
#-------------------------------------------------------------------------------
# Name:        module1
# Purpose:
#
# Author:      proni
#
# Created:     07/06/2020
# Copyright:   (c) proni 2020
# Licence:     <your licence>
#-------------------------------------------------------------------------------
import random
from itertools import permutations


def somme_diagonale(tableau):
    som = 0
    for i in range(len(tableau)):
        som += tableau[i][i]
    return som

def somme_anti_diagonale(tableau):
    som = 0
    for i in range(len(tableau)):
        som += tableau[len(tableau)-1-i][i]
    return som


def affiche_tableau(tableau):
    for i in range(len(tableau)):
        for j in range(len(tableau)):
            print("{:>3d}".format(tableau[i][j]), end=" ")
        print("")
    print("")

def somme_ligne(tableau):
    s = len(tableau)*((len(tableau))**2 +1)/2
    som = [0]*len(tableau)
    for i in range(len(tableau)):
        for j in range(len(tableau)):
            som[i]+=tableau[i][j]
    for a in range(len(tableau)):
        if som[a] != s:
            return 0
    return som[0]

def somme_colonne(tableau):
    s = len(tableau)*((len(tableau))**2 +1)/2
    som = [0]*len(tableau)
    for j in range(len(tableau)):
        for i in range(len(tableau)):
            som[j]+=tableau[i][j]
    for a in range(len(tableau)):
        if som[a] != s:
            return 0
    return som[0]

def carre_magique(tableau):
    s = len(tableau)*((len(tableau))**2 +1)/2
    if (somme_diagonale(tableau) == s and somme_anti_diagonale(tableau)==s and somme_colonne(tableau) == s and somme_ligne(tableau) == s):
        print ("c'est un carr�� magique dont la somme est : ", s,"\n")
        affiche_tableau(tableau)
        return True
    else:
        return False

tableau = [[1,14,15,4],[7,9,6,12],[10,8,11,5],[16,3,2,13]]
affiche_tableau(tableau)
#print(*permutations([1,2,3,4,5,6]))

#a = carre_magique(tableau)
#print(a)


def creer_tab(dim):
    chiffres = list(range(1,1+dim*dim))
    tab = [[0]*dim for k in range(dim)]
    for i in range(dim):
            for j in range (dim):
                b = random.choice(chiffres)
                tab[i][j]=b
                chiffres.remove(b)
    return tab

def creer_tab2(dim):
    chiffres = list(range(1,1+dim*dim))
    random.shuffle(chiffres)
    tab = [[0]*dim for k in range(dim)]
    for i in range(dim):
            for j in range (dim):
                tab[i][j]=chiffres[(dim*i) + j]
    return tab

def trouve_carre_magique(dim):
    comp = 0
    chiffres = list(range(1,1+(dim*dim)))
    b=[0]*(dim*dim)
    tab = [[0]*dim for k in range(dim)]
    p = permutations(chiffres)
    for j in list(p):
        for i in range(len(chiffres)):
            b[i] = j[i]
        for k in range(dim):
            for l in range (dim):
                tab[k][l]=b[(dim*k) + l]
        comp +=1
#        carre_magique(tab)
        if carre_magique(tab) == True:
            print("Trouv�� en ", comp," essais \n")
#            return #pour un seul tableau

def trouve_carre_magique2(dim):
    comp = 0
    #tab =creer_tab(dim)
    tab =creer_tab2(dim)
    a=False
    while a == False:
        comp += 1
        a = carre_magique(creer_tab(dim))
        #a = carre_magique(creer_tab2(dim))
        if a == True:
            print("Trouv�� en ", comp," essais \n")
            return




#trouve_carre_magique(3)

#trouve_carre_magique2(3)


# data[].attributes.attachment_link.readable_text
# Cr���� par Admin, le 06/01/2021 en Python 3.7

from math import *
l3=[100,25,15,40]
l4=[20,9,4,7]

def moyenne(liste):
    c=0
    for i in range(len(liste)):
        c+=liste[i]
    return c/len(liste)

def mediane(liste):
    sliste = sorted(liste)
    a=int((len(sliste)-1)/2)
    return sliste[a]

# data[].attributes.attachment_link.readable_text
# Cr���� par Admin, le 11/02/2026 en Python 3.7
import matplotlib.pyplot as plt
import numpy as np
from math import *

xk= np.linspace(0, 90, 901) # 901 points d���abscisse entre 0 et 2

def tir_parabolique(x,v,alpha):
    alpha = 2*pi*alpha/360
    g=9.81
    return -0.5*g*(x/(v*cos(alpha)))**2 + x*tan(alpha)

def liste_trajectoire(xmax,n,v,alpha):
    x=[i*xmax/n for i in range(n+1)] # n points d���abscisse entre 0 et xmax
    y =[tir_parabolique(u,v, alpha) for u in x]
    return x,y

x,y30 = liste_trajectoire(270,100,50,30)
x,y45= liste_trajectoire(270,100,50,45)
x,y60= liste_trajectoire(270,100,50,60)
plt.plot(x,y30,color="blue")
plt.plot(x,y45,color="red")
plt.plot(x,y60, color="green")
plt.grid()
plt.show()

# data[].attributes.attachment_link.readable_text
#-------------------------------------------------------------------------------
# Name:        module1
# Purpose:
#
# Author:      proni
#
# Created:     04/06/2020
# Copyright:   (c) proni 2020
# Licence:     <your licence>
#-------------------------------------------------------------------------------
def rotation(liste):
    li_rot = [liste[len(liste)-1]]
    for i in range(0, len(liste)-1):
        li_rot.append(liste[i])
    return li_rot


def inverser(liste):
    li_inv = liste.copy()
    li_inv.reverse()
    return li_inv

def inverser2(liste):
    li_inv2=[]
    for i in range(0,len(liste)):
        li_inv2.append(liste[len(liste)-1-i])
    return li_inv2

def supprimer_rang(liste,rang):
    li_sup = liste.copy()
    del li_sup[rang]
    return li_sup

def supprimer_rang1(liste,rang):
    li_sup = liste.copy()
    li_sup.pop(rang)
    return li_sup

def supprimer_element(liste,element):
    li_s_e = liste.copy()
    for i in range(liste.count(element)):
        li_s_e.remove(element)
    return li_s_e


l1 = [1,2,3,4,5,6,7]
print("liste ",l1)
print("rotation ",rotation(l1))
print("inversion ",inverser(l1))
print("inversion 2 ",inverser2(l1))
print("supprimer_rang(l1,2) ",supprimer_rang(l1,2))
print("supprimer_rang1(l1,2) ",supprimer_rang1(l1,2))

l2 = [8,7,4,6,5,4]
print("liste2 ", l2)
print("supprimer_element(l2,4) ",supprimer_element(l2,4))



# data[].attributes.body
pour new11

# data[].attributes.attachment_link.readable_text
body
{
	font-family:Verdana,"Arial Black", "sans-serif";
	background-color: green;
}

h2
{
	color:#26BEED;
}

h3
{
	color: rgb(38,190,237);
}
p em
{
	color: maroon;
	font-size:1.4em;
}
.imageflottante
{
float: left;
}


# data[].attributes.body
def codage_etoile():

phrase=input("Entrez une phrase a coder ")

sortie=""

for caractere in phrase:

sortie = sortie + caractere +"*"

return sortie

def decodage_etoile(phrase):

sortie=""

for i in range(len(phrase)):

if i%2==0:

sortie+=phrase[i]

return sortie

# data[].attributes.attachment_link.readable_text
# Cr���� par Admin, le 22/11/2023 en Python 3.7
import math

def fonction3(*args):
    """ Cette fonction calcule la moyenne d'un tuple."""
    a = 0
    for element in args:
        a += element
    return(a/len(args))

def fonction4(*args):
    """ Cette fonction calcule la Variance d'un tuple."""
    a = fonction3(*args)
    b = 0
    for element in args:
        b += (element-a)**2
    return(b/len(args))

def fonction5(*args):
    """ Cette fonction calcule l'��cart-type d'un tuple."""
    return(math.sqrt(fonction4(*args)))

print("La moyenne de (2,5,6,78,45) est : ",fonction3(2,5,6,78,45))
print("La Variance de (2,5,6,78,45) est : ",fonction4(2,5,6,78,45))
print("La l'Ecart-type de (2,5,6,78,45) est : ",fonction5(2,5,6,78,45))


# data[].attributes.attachment_link.readable_text
#-------------------------------------------------------------------------------
# Name:        module1
# Purpose:
#
# Author:      proni
#
# Created:     03/06/2020
# Copyright:   (c) proni 2020
# Licence:     <your licence>
#-------------------------------------------------------------------------------

from math import *
from collections import namedtuple

Point = namedtuple('point', 'x, y')

def distance(point1, point2):
    """ Cette fonction renvoie la distance entre deux points."""
    dist = sqrt((point1.x - point2.x)**2 + (point1.y - point2.y)**2)
    return dist

x1 = int(input("Entrer l'abscisse (x) de votre premier point"))
y1 = int(input("Entrer l'ordonn��e (y) de votre premier point"))
x2 = int(input("Entrer l'abscisse (x) de votre deuxi��me point"))
y2 = int(input("Entrer l'ordonn��e (y) de votre deuxi��me point"))

p1 = Point(x1,y1)
p2 = Point(x2,y2)

print("La distance entre ces deux points est : ",distance(p1, p2))

# data[].attributes.attachment_link.readable_text
# Cr���� par LYCEE ACAJOU 2, le 12/12/2025 en Python 3.7
def codage_etoile():
    phrase=input("Entrez une phrase a coder ")
    sortie=""
    for caractere in phrase:
        sortie = sortie + caractere +"*"
    return sortie

# data[].attributes.attachment_link.readable_text
#-------------------------------------------------------------------------------
# Name:        module1
# Purpose:
#
# Author:      proni
#
# Created:     02/06/2020
# Copyright:   (c) proni 2020
# Licence:     <your licence>
#-------------------------------------------------------------------------------

def affiche_conjugaison(verbe):
    """ Ce programme affiche le pr��sent de l'indicatif
        des verbes du premier groupe """
    if verbe == "aller":
        return "particulier"
    elif verbe[len(verbe)-2:] != "er":
        return "non"
    else :
        return verbe[:len(verbe)-2]

mot = input("entrer un verbe du premier groupe : ")

if affiche_conjugaison(mot) == "particulier":
    print("le verbe aller est un verbe particulier")
elif affiche_conjugaison(mot) == "non":
    print("Ce n'est pas un verbe du premier groupe")
else:
    terminaison = ["e","es", "e","ons", "ez","ent"]
    sujet = ["je", "tu", "il ou elle", "nous", "vous", "ils ou elles"]
    for i in range(6):
        print (sujet[i]," ",affiche_conjugaison(mot)+terminaison[i])


# data[].attributes.attachment_link.readable_text
# Cr���� par USER, le 06/11/2021 en Python 3.7
from tkinter import *
import time

def tricole(a):
    can1.create_rectangle(10+a, 20+a, 70+a, 140+a, outline ="blue", width = 1, fill="blue")#rectangle
    can1.create_rectangle(70+a, 20+a, 130+a, 140+a, outline ="white", width = 1,fill="white")#rectangle
    can1.create_rectangle(130+a, 20+a, 190+a, 140+a, outline ="red", width = 1, fill="red")#rectangle
    fenetre.update()

def arcenciel(a):
    can1.create_rectangle(310-a, 20+a, 490-a, 40+a, outline ="red", width = 1, fill="red")#rectangle
    can1.create_rectangle(310-a, 40+a, 490-a, 60+a, outline ="orange", width = 1,fill="orange")#rectangle
    can1.create_rectangle(310-a, 60+a, 490-a, 80+a, outline ="yellow", width = 1, fill="yellow")#rectangle
    can1.create_rectangle(310-a, 80+a, 490-a, 100+a, outline ="green", width = 1, fill="green")#rectangle
    can1.create_rectangle(310-a, 100+a, 490-a, 120+a, outline ="blue", width = 1,fill="blue")#rectangle
    can1.create_rectangle(310-a, 120+a, 490-a, 140+a, outline ="purple", width = 1, fill="purple")#rectangle
    fenetre.update()

def rvn(a):
    can1.create_polygon(160, 320-a, 260, 380-a, 340, 380-a, 340, 320-a, outline ="green", width = 1, fill="green")#polygone
    can1.create_polygon(160, 440-a, 260, 380-a, 340, 380-a, 340, 440-a, outline ="black", width = 1, fill="black")#polygone
    can1.create_polygon(160, 320-a, 260, 380-a, 160, 440-a, outline ="red", width = 1, fill="red")#polygone
    fenetre.update()

fenetre = Tk ()
fenetre.title("Ma premi��re fen��tre Tkinter en NSI.")
fenetre.geometry('500x550')
can1 =Canvas(fenetre, bg='light grey', height = 500, width = 500)
can1.pack()


bouton_quitter = Button(fenetre, text= "Quitter", command = fenetre.destroy)
bouton_quitter.pack()

time.sleep(1)
fenetre.update()

for a in range(150):
    tricole(a)
    arcenciel(a)
    rvn(a)
    #fenetre.update()
    time.sleep(0.1)
    can1.delete("all")

compt = 0

while 1:
    tricole(150)
    time.sleep(.8)
    arcenciel(150)
    time.sleep(.8)
    rvn(150)
    time.sleep(.8)

fenetre.mainloop()





























# data[].attributes.attachment_link.readable_text
# Cr���� par USER, le 06/11/2021 en Python 3.7
from tkinter import *
import time

def tricole():
    can1.create_rectangle(160, 170, 220, 290, outline ="blue", width = 1, fill="blue")#rectangle
    can1.create_rectangle(220, 170, 280, 290, outline ="white", width = 1,fill="white")#rectangle
    can1.create_rectangle(280, 170, 340, 290, outline ="red", width = 1, fill="red")#rectangle
    time.sleep(1)
    fenetre.update()

def arcenciel():
    can1.create_rectangle(160, 170, 340, 190, outline ="red", width = 1, fill="red")#rectangle
    can1.create_rectangle(160, 190, 340, 210, outline ="orange", width = 1,fill="orange")#rectangle
    can1.create_rectangle(160, 210, 340, 230, outline ="yellow", width = 1, fill="yellow")#rectangle
    can1.create_rectangle(160, 230, 340, 250, outline ="green", width = 1, fill="green")#rectangle
    can1.create_rectangle(160, 250, 340, 270, outline ="blue", width = 1,fill="blue")#rectangle
    can1.create_rectangle(160, 270, 340, 290, outline ="purple", width = 1, fill="purple")#rectangle
    time.sleep(1)
    fenetre.update()

def rvn():
    can1.create_polygon(160, 170, 260, 230, 340, 230, 340, 170, outline ="green", width = 1, fill="green")#polygone
    can1.create_polygon(160, 290, 260, 230, 340, 230, 340, 290, outline ="black", width = 1, fill="black")#polygone
    can1.create_polygon(160, 170, 260, 230, 160, 290, outline ="red", width = 1, fill="red")#polygone
    time.sleep(1)
    fenetre.update()

fenetre = Tk ()
fenetre.title("Ma fen��tre drapeaux2 Tkinter en NSI.")
fenetre.geometry('500x550')
can1 =Canvas(fenetre, bg='light grey', height = 500, width = 500)
can1.pack()


bouton_quitter = Button(fenetre, text= "Quitter", command = fenetre.destroy)
bouton_quitter.pack()

time.sleep(1)
fenetre.update()

while 1:

    tricole()
    arcenciel()
    rvn()




fenetre.mainloop()


# data[].attributes.attachment_link.readable_text
# Cr���� par USER, le 06/11/2021 en Python 3.7
from tkinter import *

fenetre = Tk ()
fenetre.title("Ma fen��tre  drapeaux Tkinter en NSI.")
fenetre.geometry('500x550')
can1 =Canvas(fenetre, bg='light grey', height = 500, width = 500)
can1.pack()

#drapeau Fran��ais
can1.create_rectangle(10, 20, 70, 140, outline ="blue", width = 1, fill="blue")#rectangle
can1.create_rectangle(70, 20, 130, 140, outline ="white", width = 1,fill="white")#rectangle
can1.create_rectangle(130, 20, 190, 140, outline ="red", width = 1, fill="red")#rectangle

#drapeau arc-en-ciel
can1.create_rectangle(310, 20, 490, 40, outline ="red", width = 1, fill="red")#rectangle
can1.create_rectangle(310, 40, 490, 60, outline ="orange", width = 1,fill="orange")#rectangle
can1.create_rectangle(310, 60, 490, 80, outline ="yellow", width = 1, fill="yellow")#rectangle
can1.create_rectangle(310, 80, 490, 100, outline ="green", width = 1, fill="green")#rectangle
can1.create_rectangle(310, 100, 490, 120, outline ="blue", width = 1,fill="blue")#rectangle
can1.create_rectangle(310, 120, 490, 140, outline ="purple", width = 1, fill="purple")#rectangle

#drapeau rvn
can1.create_polygon(160, 250, 260, 310, 340, 310, 340, 250, outline ="green", width = 1, fill="green")#polygone
can1.create_polygon(160, 370, 260, 310, 340, 310, 340, 370, outline ="black", width = 1, fill="black")#polygone
can1.create_polygon(160, 250, 260, 310, 160, 370, outline ="red", width = 1, fill="red")#polygone

bouton_quitter = Button(fenetre, text= "Quitter", command = fenetre.destroy)
bouton_quitter.pack()
fenetre.mainloop()


# data[].attributes.attachment_link.readable_text
���# importation du module math��matique
from math import *  # on importe tout

# entrez des valeurs a, b, c de l'��quation a*x�� + b*x + c
a=0
while a==0:
    a = float(input("entrez a non nul: "))
b = float(input("b : "))
c = float(input("c : "))

delta = b * b - 4 * a * c # calcul de delta

if delta > 0 :
    x1 = (-b + sqrt(delta))/(2 * a)
    x2 = (-b - sqrt(delta))/(2 * a)
    print("Les deux solution sont :")
    print("x1 =", x1,"     x2 =", x2)
    print("x1 = {:.3f}".format (x1))
    print("x2 = {:.3f}".format(x2))
elif delta == 0:
    x = (-b / (2 * a))
    print("Il y a une solution double :")
    print("x =",x)

else :
    print("Il n'y a pas de solution r��elle")





# data[].attributes.attachment_link.readable_text
���nb =0
phrase = input("entrez votre phrase")
l = input ("entrez votre lettre")

for i in range (len(phrase)):
    if phrase [i] == l:
        nb +=1

print("Dans le texte :", phrase, ". Il y a",nb, "fois la lettre:",l)



# data[].attributes.attachment_link.readable_text
���# initialisation
reste = 1

# boucle d'entr��e
while (reste % 10 != 0):
    reste = eval(input("Entrez la somme voulue en euros"))
    if reste % 10 != 0 :
        print ("vous devez entrer un multiple de 10 euros")

print("Je vous donne")

for b in (500, 200, 100, 50, 20, 10):
    n = reste // b
    if n != 0:
        print (n, "billets de", b,"���")
    reste = reste % b


# data[].attributes.attachment_link.readable_text
���# initialisation
reste = 1

# boucle d'entr��e
while (reste % 10 != 0):
    reste = eval(input("Entrez la somme voulue en euros"))
    if reste % 10 != 0 :
        print ("vous devez entrer un multiple de 10 euros")

print("Je vous donne")

n = reste // 500
if n != 0 :
    print(n, "billets de 500 ���")

reste = reste % 500
n = reste // 200
if n != 0 :
    print(n, "billets de 200 ���")

reste = reste % 200
n = reste // 100
if n != 0 :
    print(n, "billets de 100 ���")

reste = reste % 100
n = reste // 50
if n != 0 :
    print(n, "billets de 50 ���")

reste = reste % 50
n = reste // 20
if n != 0 :
    print(n, "billets de 20 ���")

reste = reste % 20
n = reste // 10
if n != 0 :
    print(n, "billets de 10 ���")


# data[].attributes.attachment_link.readable_text
���# initialisation
h = 400   # hauteur initiale
r = 0   # initialisation des rebonds �� 0

# boucle
while h>5 :
    #print ("hauteur", int(h), "pixels") # le nombre de pixels est obligatoirement entier
    h *= 0.9  # on peut ��crire h= h*0.9 c'est la d��cr��mentation de h
    r += 1  # on incr��mente les rebonds
    print("h = ", h)

# affichage
print ("La balle rebondit �� une hauteur de moins de 5 pixels")
print ("Elle a effectu��e",r,"rebonds")

# data[].attributes.attachment_link.readable_text
def inverse_chaine(chaine):
    '''Retourne la chaine invers��e'''
    resultat = ... 
    for caractere in chaine:
        resultat = ... 
    return resultat

def est_palindrome(chaine):
    '''Renvoie un bool��en indiquant si la chaine ch
    est un palindrome'''
    inverse = inverse_chaine(chaine)
    return ... 

def est_nbre_palindrome(nbre):
    '''Renvoie un bool��en indiquant si le nombre nbre 
    est un palindrome'''
    chaine = ... 
    return est_palindrome(chaine)

# data[].attributes.attachment_link.readable_text
# Cr���� par USER, le 29/07/2021 en Python 3.7
from tkinter import *
import random

def tiremot():
    """
    Renvoie un mot de la liste mots.txt
    """
    fi= open('liste.txt','r')
    num = random.randint(1,881)
    i = 0
    while i < num :
        mot = fi.readline()
        i = i + 1
    fi.close()
    return mot

def affichemot(mot,lettres):
    r=""
    for i in range(len(mot)) :
        if lettres.upper().count(mot.upper()[i])>0 :
            r=r+mot.upper()[i]+" "
        else :
            r=r+"_ "
    return r

def debut():
    """ Fonction qui initialise les valeurs"""
    global mot,lettres,compt, photo
    mot=tiremot()
    photo = PhotoImage(file="bonhomme1.gif")
    Fond.itemconfig(img, image=photo)
    lettres=mot[0]+mot[len(mot)-1]
    compt=1
    AfficheMot.config(text=affichemot(mot,lettres),fg='white')

def propose():
    global mot,lettres,compt, photo
    if len(E.get())!=1:
        AfficheCoups.config(text="Il faut choisir une lettre")
        return
    if compt<8 :
        avant=affichemot(mot,lettres)
        lettres=lettres+E.get().upper()
        apres=affichemot(mot,lettres)
        if avant==apres :
            compt=compt+1
            nom="bonhomme"+str(compt)+".gif"
            photo= PhotoImage(file=nom)
            Fond.itemconfig(img, image=photo)
            R=str(8-compt)
            if R=='0' :
                AfficheCoups.config(text="Perdu, appuyez sur nouvelle partie")
                AfficheMot.config(fg="red",text=affichemot(mot,mot))
                B.config(text="Rejouer")
            elif R=='1' :
                AfficheCoups.config(text="Il ne vous reste qu'un essai !")
            else :
                AfficheCoups.config(text="Il vous reste "+R+" essais")
        else :
            AfficheMot.config(text=apres)
            if apres==affichemot(mot,mot) :
                AfficheCoups.config(text="BrAvO !")
                B.config(text="Rejouer")
                compt=10
        E.focus()
        E.delete(0,END)
    else :
        debut()
        B.config(text="Proposer")

fenetre=Tk()
fenetre.title("Jeu du pendu")
fenetre.geometry("800x400")
# Le canvas de fond
Fond=Canvas(fenetre,width=800,height=400,bg="#3E3F3F")
Fond.place(x=0,y=0)
# Le label pour l'affichage du mot �� trouver
AfficheMot=Label(fenetre,fg="#FFFFFF", bg="#3E3F3F",width=17,font="Helvetica 30 bold italic")
AfficheMot.place(x=8,y=50)
# Label avec les informations
AfficheCoups=Label(fenetre,fg="#4BF7F5",bg="#3E3F3F",width=40,font="Arial 10", text="proposez une lettre")
AfficheCoups.place(x=30,y=360)

E=Entry(fenetre,width=10,bg="white", fg="black")
E.place(x=100,y=250)
B=Button(fenetre,width=10,text="Proposer",command=propose)
B.place(x=200,y=250)
photo = PhotoImage(file="bonhomme1.gif")
img=Fond.create_image(600, 200, image=photo)

debut()

fenetre.mainloop()


# data[].attributes.body
Il faut vous assurer que le fichier liste.txt soit bien enregistrer en UTF-8.

# data[].attributes.attachment_link.readable_text
# Cr���� par USER, le 29/07/2021 en Python 3.7
from tkinter import *
import random

def tiremot():
    """
    Renvoie un mot de la liste mots.txt
    """
    fi= open('liste.txt','r')
    num = random.randint(1,881)
    i = 0
    while i < num :
        mot = fi.readline()
        i = i + 1
    fi.close()
    return mot

def affichemot(mot,lettres):
    r=""
    for i in range(len(mot)) :
        if lettres.upper().count(mot.upper()[i])>0 :
            r=r+mot.upper()[i]+" "
        else :
            r=r+"_ "
    return r

def debut():
    """ Fonction qui initialise les valeurs"""
    global mot,lettres,compt, photo
    mot=tiremot()
    photo = PhotoImage(file="bonhomme1.gif")
    Fond.itemconfig(img, image=photo)
    lettres=mot[0]+mot[len(mot)-1]
    compt=1
    AfficheMot.config(text=affichemot(mot,lettres),fg='white')

def propose():
    global mot,lettres,compt, photo
    if compt<8 :
        avant=affichemot(mot,lettres)
        lettres=lettres+E.get().upper()
        apres=affichemot(mot,lettres)
        if avant==apres :
            compt=compt+1
            nom="bonhomme"+str(compt)+".gif"
            photo= PhotoImage(file=nom)
            Fond.itemconfig(img, image=photo)
            R=str(8-compt)
            if R=='0' :
                AfficheCoups.config(text="Perdu, appuyez sur nouvelle partie")
                AfficheMot.config(fg="red",text=affichemot(mot,mot))
                B.config(text="Rejouer")
            elif R=='1' :
                AfficheCoups.config(text="Il ne vous reste qu'un essai !")
            else :
                AfficheCoups.config(text="Il vous reste "+R+" essais")
        else :
            AfficheMot.config(text=apres)
            if apres==affichemot(mot,mot) :
                AfficheCoups.config(text="BrAvO !")
                B.config(text="Rejouer")
                compt=10
        E.focus()
        E.delete(0,END)
    else :
        debut()
        B.config(text="Proposer")

fenetre=Tk()
fenetre.title("Jeu du pendu")
fenetre.geometry("800x400")
# Le canvas de fond
Fond=Canvas(fenetre,width=800,height=400,bg="#3E3F3F")
Fond.place(x=0,y=0)
# Le label pour l'affichage du mot �� trouver
AfficheMot=Label(fenetre,fg="#FFFFFF", bg="#3E3F3F",width=17,font="Helvetica 30 bold italic")
AfficheMot.place(x=8,y=50)
# Label avec les informations
AfficheCoups=Label(fenetre,fg="#4BF7F5",bg="#3E3F3F",width=40,font="Arial 10", text="proposez une lettre")
AfficheCoups.place(x=30,y=360)

E=Entry(fenetre,width=10,bg="white", fg="black")
E.place(x=100,y=250)
B=Button(fenetre,width=10,text="Proposer",command=propose)
B.place(x=200,y=250)
photo = PhotoImage(file="bonhomme1.gif")
img=Fond.create_image(600, 200, image=photo)

debut()

fenetre.mainloop()


# data[].attributes.attachment_link.readable_text
absolu
ancien
claire
commun
divers
double
droite
enorme
entier
etroit
facile
faible
fidele
gauche
humain
humide
malade
ouvert
pareil
pauvre
precis
propre
public
rapide
second
secret
simple
social
sombre
tendre
triste
unique
vivant
voisin
autant
autour
certes
debout
dehors
demain
depuis
dessus
devant
encore
jamais
plutôt
tantôt
chaque
quatre
quinze
trente
aupres
contre
depuis
devant
durant
jusque
malgre
auquel
chacun
lequel
accent
accord
action
animal
argent
aspect
auteur
avance
avenir
beaute
besoin
billet
bouche
bureau
centre
cercle
chaîne
chaise
chance
charge
chasse
chemin
cheval
cheveu
classe
colere
combat
compte
couche
course
danger
defaut
dehors
demain
depart
desert
detail
devoir
droite
effort
empire
enfant
ennemi
entree
epaule
epoque
erreur
espace
espece
espoir
esprit
etoile
faveur
figure
flamme
garcon
gauche
gloire
goutte
groupe
guerre
hasard
jardin
lettre
madame
maison
maître
manier
marche
marche
membre
mesure
metier
milieu
minute
moitie
moment
nation
nature
nombre
oeuvre
oiseau
palais
papier
paquet
parent
parole
partie
patron
pauvre
paysan
pensee
peuple
phrase
pierre
plaine
plante
poesie
pointe
police
preuve
priere
prince
prison
projet
propos
public
raison
regard
retour
rideau
rocher
saison
savoir
secret
siecle
soiree
soldat
soleil
sommet
source
succes
taille
temoin
tresor
valeur
veille
ventre
verite
visage
vision
visite
voisin
voyage
agiter
amener
amuser
animer
avouer
battre
briser
bruler
cacher
calmer
casser
causer
cesser
couler
couper
courir
couter
croire
danser
devoir
donner
dormir
douter
ecrire
elever
entrer
etaler
eviter
exiger
fermer
fonder
forcer
former
gagner
garder
lisser
livrer
lutter
manger
marier
mentir
mettre
monter
mourir
naître
nommer
offrir
ouvrir
parler
partir
passer
pendre
penser
perdre
placer
plaire
porter
preter
rendre
rester
reunir
revoir
rompre
rouler
saisir
saluer
sauter
sauver
savoir
sentir
serrer
servir
signer
songer
sonner
sortir
suivre
tendre
tenter
tomber
tracer
valoir
vendre
verser
anglais
capable
certain
complet
content
curieux
dernier
eternel
etrange
general
heureux
immense
inconnu
inutile
mauvais
moindre
naturel
nerveux
nouveau
premier
present
profond
sauvage
serieux
suivant
violent
visible
bientôt
combien
comment
d'abord
ensuite
environ
parfois
partout
presque
quelque
soudain
souvent
surtout
comment
lorsque
puisque
certain
quelque
afin de
pendant
quant à
absence
affaire
anglais
arriere
arrivee
article
bonheur
branche
cabinet
cerveau
chaleur
chambre
chemise
chiffre
colline
conseil
couleur
courage
courant
crainte
cuisine
demande
dernier
docteur
douceur
douleur
element
emotion
endroit
energie
enfance
etendue
exemple
famille
fatigue
fenetre
feuille
fortune
general
hauteur
honneur
horizon
instant
interet
journal
journee
justice
liberte
lumiere
machine
maladie
malheur
mariage
matiere
medecin
memoire
million
morceau
musique
nouveau
oreille
ouvrage
passage
passion
paysage
plaisir
planche
portier
pouvoir
premier
present
qualite
rapport
realite
reponse
respect
science
seconde
secours
semaine
sentier
service
silence
societe
sommeil
sourire
systeme
tempete
terrain
terreur
theatre
travail
travers
victime
village
voiture
volonte
abattre
accuser
acheter
achever
ajouter
allumer
appeler
appuyer
arreter
arriver
asseoir
assurer
attirer
avancer
baisser
briller
changer
chanter
charger
chasser
choisir
compter
confier
coucher
couvrir
creuser
croiser
decider
decrire
degager
deposer
desirer
devenir
deviner
diriger
dominer
dresser
ecarter
eclater
ecouter
ecraser
effacer
emmener
engager
enlever
envoyer
esperer
essayer
essuyer
etablir
etendre
etonner
etudier
exister
exposer
falloir
figurer
frapper
glisser
grandir
habiter
hesiter
ignorer
imposer
inviter
joindre
manquer
marcher
marquer
menacer
meriter
montrer
nourrir
obliger
obtenir
occuper
oublier
pencher
pleurer
plonger
pousser
pouvoir
prendre
presser
prevoir
prouver
quitter
ramener
reculer
reduire
refuser
rejeter
relever
remplir
rentrer
repeter
reposer
retenir
retirer
reussir
reveler
revenir
risquer
sembler
separer
sourire
suffire
toucher
tourner
traîner
traiter
tromper
trouver
vaincre
veiller
vouloir
voyager
etranger
francais
immobile
meilleur
nombreux
possible
precieux
prochain
puissant
terrible
ailleurs
aussitôt
beaucoup
ensemble
pourquoi
pourtant
toujours
vraiment
pourquoi
d'autres
quarante
derriere
d'autres
personne
angoisse
attitude
autorite
aventure
bataille
camarade
campagne
dimanche
discours
distance
ensemble
escalier
etranger
fauteuil
fonction
francais
francois
habitant
habitude
histoire
instinct
jeunesse
marchand
mensonge
ministre
monsieur
montagne
occasion
officier
paupiere
personne
poitrine
position
presence
principe
probleme
quartier
question
relation
religion
resultat
seigneur
solitude
souvenir
vetement
violence
accepter
accorder
admettre
adresser
affirmer
annoncer
apporter
arracher
assister
attacher
attaquer
attendre
caresser
chercher
composer
conclure
conduire
contenir
convenir
craindre
dechirer
declarer
defendre
demander
demeurer
depasser
designer
dessiner
detacher
detruire
discuter
disposer
echapper
eclairer
eloigner
empecher
employer
emporter
endormir
enfermer
enfoncer
entendre
entourer
eprouver
eteindre
etouffer
examiner
executer
exprimer
fatiguer
franchir
habiller
imaginer
importer
indiquer
inspirer
inventer
observer
paraître
partager
parvenir
penetrer
plaindre
posseder
preceder
preferer
preparer
prevenir
produire
profiter
promener
proposer
proteger
raconter
ramasser
rappeler
rassurer
recevoir
reclamer
regarder
remettre
remonter
renoncer
repandre
repondre
reserver
resister
resoudre
respirer
retomber
souffler
souffrir
soulever
soutenir
souvenir
supposer
terminer
trembler
troubler
dangereux
different
difficile
important
interieur
militaire
politique
semblable
superieur
troisieme
veritable
autrefois
autrement
cependant
davantage
desormais
doucement
egalement
lentement
longtemps
seulement
tellement
parce que
plusieurs
cinquante
quelqu'un
apparence
attention
caractere
compagnie
compagnon
condition
confiance
contraire
curiosite
desespoir
direction
evenement
existence
intention
interieur
lendemain
mouvement
naissance
politique
poussiere
president
printemps
puissance
recherche
reflexion
rencontre
sentiment
situation
spectacle
vieillard
accomplir
accrocher
apprendre
approcher
atteindre
commander
commencer
condamner
confondre
connaître
consentir
consulter
contenter
continuer
decouvrir
descendre
embrasser
entraîner
expliquer
inquieter
installer
maintenir
parcourir
permettre
presenter
pretendre
promettre
prononcer
rapporter
reflechir
regretter
rejoindre
remarquer
remercier
remplacer
renverser
repousser
reprendre
respecter
retourner
retrouver
reveiller
signifier
souhaiter
soumettre
supporter
traverser
impossible
magnifique
necessaire
silencieux
tranquille
absolument
maintenant
rapidement
simplement
tandis que
changement
conscience
discussion
experience
expression
importance
impression
inquietude
personnage
professeur
resistance
revolution
secretaire
souffrance
abandonner
apercevoir
apparaître
appartenir
comprendre
considerer
construire
distinguer
entretenir
envelopper
interesser
interroger
poursuivre
precipiter
recueillir
rencontrer
ressembler
satisfaire
surprendre
surveiller
travailler
particulier
aujourd'hui
brusquement
appartement
accompagner
disparaître
interrompre
recommencer
reconnaître
representer
transformer
certainement
completement
parfaitement
profondement
circonstance
commencement
connaissance
conversation
gouvernement
intelligence
naturellement
extraordinaire
