Browse Source

Dossier Tkinter + eval 2

master
Fabien 'BioWolf' Z 2 months ago
parent
commit
1699f47aea
5 changed files with 257 additions and 0 deletions
  1. +58
    -0
      EVALS/EVAL2/question_5.py
  2. +56
    -0
      algorithmique_basique/signed_bytes.py
  3. +58
    -0
      tkinter/first.py
  4. +64
    -0
      tkinter/first_steps_into_GUI.py
  5. +21
    -0
      tkinter/intro_tkinter.py

+ 58
- 0
EVALS/EVAL2/question_5.py View File

@@ -0,0 +1,58 @@
def clettre(lettre):
base = [' ', "'", ',', "."]
changed = ['?', '!', '#', ","]

if 65 <= ord(lettre) < 88 or 97 <= ord(lettre) < 120:
return chr(ord(lettre)+3)
elif 88 <= ord(lettre) <= 90 or 120 <= ord(lettre) <= 122:
return chr(ord(lettre)-23)
elif lettre in base:
return changed[base.index(lettre)]


def cmot(mot):
final = []

for c in mot:
if erase_chars(c):
continue
res = clettre(c)
char = res if res else c
final.append(char)

return "".join(final)


def dmot(mot):
final = []

for c in mot:
res = dlettre(c)
char = res if res else c
final.append(char)

return "".join(final)


def dlettre(lettre):
changed = [' ', "'", ',', "."]
base = ['?', '!', '#', ","]

if 68 <= ord(lettre) < 91 or 100 <= ord(lettre) < 123:
return chr(ord(lettre) - 3)
elif 111 <= ord(lettre) <= 113 or 143 <= ord(lettre) <= 145:
return chr(ord(lettre) + 23)
elif lettre in base:
return changed[base.index(lettre)]


# Marche par système de test pour cmot
def erase_chars(char):
return char in [' ', ',', 'é', 'à']


print(cmot('A.,Z'))
print(dmot('D,C'))
print(dmot('ohvfdurwwhvvrqwfxlwhv'))
print(cmot("S'il reste du temps coder cette phrase!"))


+ 56
- 0
algorithmique_basique/signed_bytes.py View File

@@ -0,0 +1,56 @@
def bin_to_dec(n):
number = 0
a = len(str(n)) - 1

for i in str(n):
number += 2**a if i == "1" else 0
a -= 1

return number


def binaire(n):
if n >= 2 ** 8:
return False
else:
rep = []
while n >= 2:
rep = [n%2] + rep
n = n // 2
rep = [n] + rep
while len(rep) < 8:
rep = [0] + rep
return rep


def complement(n):

binary = binaire(abs(n))

if n >= 0:
for i in range(len(binary)):
binary[i] = str(binary[i])

return int("".join(binary))

elif n < 0:
new = []

for c in binary:
new.append("1" if c == 0 else "0")

# On obtient le complément en binaire et on
# le convertit en décimal
binary = int("".join(new))
dec = bin_to_dec(binary) + 1

# on redonne le décimal complémentaire, reconverti en binaire
res = binaire(dec)
for i in range(len(res)):
res[i] = str(res[i])

return "".join(res)


print(complement(75))
print(complement(-89))

+ 58
- 0
tkinter/first.py View File

@@ -0,0 +1,58 @@
# Petit exercice utilisant la bibliothèque graphique Tkinter
from tkinter import *
from random import randrange


# --- définition des fonctions gestionnaires d'événements : ---

def ligne():
# Tracé d'une ligne dans le canevas can1
global x1, y1, x2, y2, coul
can.create_line(x1, y1, x2, y2, width=2, fill=coul)
# modification des coordonnées pour la ligne suivante :
y1, y2 = y1 + 10, y2 - 10


def croix():
# Tracé d'une croix dans le canevas
global x3, y3, x4, y4, x5, y5, x6, y6
can.create_line(x3, y3, x4, y4, width=3, fill='red')
can.create_line(x5, y5, x6, y6, width=3, fill='red')


def couleur():
# "Changement aléatoire de la couleur du tracé"
global coul
pal = ['purple', 'cyan', 'maroon', 'green', 'red', 'blue', 'orange', 'yellow']
c = randrange(8) # => génère un nombre aléatoire de 0 à 7
coul = pal[c]


def carre():
global coul
can.create_rectangle(50, 50, 100, 70, width=6, fill=coul)


# ------ Programme principal -------
# les variables suivantes seront utilisées de manière globale :
x1, y1, x2, y2 = 10, 490, 490, 10 # coordonnées de la ligne
x3, y3, x4, y4 = 10, 250, 490, 250
x5, y5, x6, y6 = 250, 10, 250, 490
coul = 'dark green' # couleur de la ligne
# Création du widget principal ("maître") :
fen = Tk()
# création des widgets "esclaves" :
can = Canvas(fen, height=500, width=500, bg='dark grey')
can.pack(side=RIGHT)
bou1 = Button(fen, text='Quitter', command=fen.quit)
bou1.pack(side=BOTTOM)
bou2 = Button(fen, text='Tracer une ligne', command=ligne)
bou2.pack()
bou3 = Button(fen, text='Autre couleur', command=couleur)
bou3.pack()
bou4 = Button(fen, text='cible', command=croix)
bou4.pack()
bou5 = Button(fen, text='carre', command=carre)
bou5.pack()
fen.mainloop() # démarrage du réceptionnaire d'événements
fen.destroy() # destruction (fermeture) de la fenêtre

+ 64
- 0
tkinter/first_steps_into_GUI.py View File

@@ -0,0 +1,64 @@
from tkinter import *
from random import randrange


def croix1():
can.create_line(30, 10, 30, 50, width=2, fill='dark red')
can.create_line(10, 30, 50, 30, width=2, fill='dark red')


def croix2():
global w, h
a = 30
wm, hm = w / 2, h / 2
can.create_line(wm, hm + a, wm, hm - a, width=2, fill='dark red')
can.create_line(wm - a, hm, wm + a, hm, width=2, fill='dark red')


def couleur():
# "Changement aléatoire de la couleur du tracé"
global coul
pal = ['purple', 'cyan', 'maroon', 'green', 'red', 'blue', 'orange', 'yellow']
c = randrange(8) # => génère un nombre aléatoire de 0 à 7
coul = pal[c]


def rectangle():
global coul, w, h
can.create_rectangle(w - 60, h - 60, w - 10, h - 10, fill=coul, width=3)


win = Tk()
# Titre
win.title('Ceci est un titre')

# Définitions
w, h = 500, 500

coul = None
couleur()

can = Canvas(width=w, height=h, bg='light grey')

t = Label(win, text='The quick brown fox jumps over the lazy dog', bg='dark grey')

quitter = Button(win, text='Quitter', command=win.quit)
c1 = Button(win, text='Croix du haut', command=croix1)
c2 = Button(win, text='Croix du milieu', command=croix2)
rect = Button(win, text='Rectangle', command=rectangle)
color = Button(win, text='Couleur', command=couleur)

# Packs
t.pack()

can.pack(side=RIGHT)

quitter.pack()
c1.pack()
c2.pack()
rect.pack()
color.pack()

# Launch
win.mainloop()
win.destroy()

+ 21
- 0
tkinter/intro_tkinter.py View File

@@ -0,0 +1,21 @@
from tkinter import *

window = Tk()

window.title('premiers pas')

text = Label(window, text='Bonjour tout le monde !', bg='green', fg='red')
text.pack()

can = Canvas(window, height=500, width=500, bg='dark blue')
can.pack(side=RIGHT)

b1 = Button(window, text='Quitter', command=window.quit)
b1.pack(side=BOTTOM)

window.mainloop()

try:
window.destroy()
except TclError:
pass

Loading…
Cancel
Save