diff --git a/Activity_3_python/exercises_3/exercise_3_6.py b/Activity_3_python/exercises_3/exercise_3_6.py index ea37a93..b9c8fbc 100644 --- a/Activity_3_python/exercises_3/exercise_3_6.py +++ b/Activity_3_python/exercises_3/exercise_3_6.py @@ -2,7 +2,7 @@ # En cryptographie, le code de César est une technique de chiffrement élémentaire qui consiste à décaler une lettre de 3 rangs vers la droite : # Ecrire le script de ce codage. -# Ces scripts prennent en charge les majuscules et les minuscules. +# Ce script prend en charge les majuscules et les minuscules. from tkinter import * @@ -49,8 +49,12 @@ def decode(msg:str) -> str: return res def update_labels(*args): - code_label.config(text=f"Votre message coder : {code(msg.get())}") - decode_label.config(text=f"Votre message decoder : {decode(msg.get())}") + code_label.config(text=f"Votre message codé : {code(msg.get())}") + decode_label.config(text=f"Votre message décodé : {decode(msg.get())}") + +def copy_to_clipboard(text): + fen.clipboard_clear() + fen.clipboard_append(text) fen = Tk() fen.title("Code de César") @@ -65,11 +69,11 @@ Entry(fen, textvariable=msg).pack() code_label = Label(fen, text="") code_label.pack() -btn = Button(fen, text="Copier le message coder", command=lambda:fen.clipboard_append(code(msg.get()))).pack() +btn = Button(fen, text="Copier le message codé", command=lambda:copy_to_clipboard(code(msg.get()))).pack() decode_label = Label(fen, text="") decode_label.pack() -btn = Button(fen, text="Copier le message decoder", command=lambda:fen.clipboard_append(decode(msg.get()))).pack() +btn = Button(fen, text="Copier le message decodé", command=lambda:copy_to_clipboard(decode(msg.get()))).pack() update_labels() diff --git a/Activity_3_python/exercises_4/exercise_4_4.py b/Activity_3_python/exercises_4/exercise_4_4.py index f32dad7..a13fd3b 100644 --- a/Activity_3_python/exercises_4/exercise_4_4.py +++ b/Activity_3_python/exercises_4/exercise_4_4.py @@ -1,3 +1,11 @@ +# A l'aide de la fonction randint() du module random, écrire une fonction qui retourne un mot de passe de longueur N (chiffres, lettres minuscules ou majuscules). +# On donne : +# chaine = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' +# >>> print(password(10)) +# mHVeC5rs8P +# >>> print(password(6)) +# PYthoN + chaine = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' from random import randint, choice @@ -16,4 +24,35 @@ def password2(n:int) -> str: r += choice(chaine) return r -print(password2(10)) \ No newline at end of file +print(password2(10)) + +# Avec une interface graphique : + +from tkinter import * +from random import randint, choice + +def password(n:int) -> str: + r = '' + for i in range(n): + r += choice(chaine) + return r + +def update_label(*args): + label.config(text=f"Votre mot de passe : {password(n.get())}") + +fen = Tk() +fen.title("Mot de passe") +fen.geometry("400x200") + +n = IntVar() +n.set(8) + +Label(fen, text="Longueur du mot de passe :").pack() +Entry(fen, textvariable=n).pack() + +label = Label(fen, text=f"Votre mot de passe : {password(n.get())}") +label.pack() + +Button(fen, text="Générer", command=update_label).pack() + +fen.mainloop() \ No newline at end of file diff --git a/Activity_3_python/exercises_4/exercise_4_5.py b/Activity_3_python/exercises_4/exercise_4_5.py index cdb74b8..0c31e0f 100644 --- a/Activity_3_python/exercises_4/exercise_4_5.py +++ b/Activity_3_python/exercises_4/exercise_4_5.py @@ -1,3 +1,8 @@ +# Ecrire une fonction qui retourne une carte (au hasard) d'un jeu de Poker à 52 cartes. +# On utilisera la fonction choice() ou randint() du module random. +# On donne : +# ListeCarte = ['2s','2h','2d','2c','3s','3h','3d','3c','4s','4h','4d','4c','5s','5h','5d','5c', '6s','6h','6d','6c','7s','7h','7d','7c','8s','8h','8d','8c','9s','9h','9d','9c', 'Ts','Th','Td','Tc','Js','Jh','Jd','Jc','Qs','Qh','Qd','Qc','Ks','Kh','Kd','Kc','As','Ah','Ad','Ac'] + from random import choice ListeCarte = ['2s','2h','2d','2c','3s','3h','3d','3c','4s','4h','4d','4c','5s','5h','5d','5c', '6s','6h','6d','6c','7s','7h','7d','7c','8s','8h','8d','8c','9s','9h','9d','9c', 'Ts','Th','Td','Tc','Js','Jh','Jd','Jc','Qs','Qh','Qd','Qc','Ks','Kh','Kd','Kc','As','Ah','Ad','Ac'] @@ -5,4 +10,36 @@ ListeCarte = ['2s','2h','2d','2c','3s','3h','3d','3c','4s','4h','4d','4c','5s',' def tiragecarte(): return choice(ListeCarte) -print(tiragecarte()) \ No newline at end of file +print(tiragecarte()) + +# Avec une interface graphique (Tkinter et une API) : + +import requests +from tkinter import * +from PIL import Image, ImageTk + +def tiragecarte(): + response = requests.get("https://deckofcardsapi.com/api/deck/new/draw/?count=1") + if response.status_code == 200: + data = response.json() + return data['cards'][0]['image'] + return None + +def affichecarte(): + image_url = tiragecarte() + if image_url: + print(image_url) + img = Image.open(requests.get(image_url, stream=True).raw) + img = img.resize((100, 150), Image.ANTIALIAS) + photo = ImageTk.PhotoImage(img) + canvas.image = photo + canvas.create_image(50, 75, image=photo) + else: + print("Erreur lors du tirage de la carte") + +fenetre = Tk() +canvas = Canvas(fenetre, width=100, height=150, bg="ivory") +canvas.pack() +bouton = Button(fenetre, text="Tirer une carte", command=affichecarte) +bouton.pack() +fenetre.mainloop()