CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Exercice Python

PillsDispenser
PillsDispenser
Niveau 67
16 février 2016 à 23:18:24

Bonjour,

Écrire une fonction qui retourne une phrase (donnée en argument) chiffrée selon le Code César avec la clé(donnée en argument).
- la phrase pourra comporter les types de caractère suivants : majuscules, minuscules, accents, caractères de ponctuation.
- Les minuscules et les lettres accentuées seront converties en majuscule correspondante (Exemple : E correspond à : e, é, ê, É, ...) pour être décalées dans l’alphabet latin.
- Le programme doit conserver les espaces entre les mots de la phrase ainsi que les caractères spéciaux tel que la ponctuation.
- Il doit pouvoir assumer toutes les tailles de phrases.
Votre script doit comporter en dernière ligne le code test suivant qui affiche le renvoi de votre fonction :
print(nom_de_votre_fontion("Science sans conscience n'est que ruine de l'âme.",3))

def cesarC(message, shift):
    message = message.lower()
    secret = ""
    for c in message:
        if c.isalpha():
            num = ord(c)
            num += shift
            if num > ord("z"):
                num -= 26
            elif num < ord("a"):
                num += 26
            secret += chr(num)
        else:
            secret += c
    return secret

def supprime_accent(chaine):
    accent = ['é', 'è', 'ê', 'à', 'ù', 'û', 'ç', 'ô', 'î', 'ï', 'â']
    sans_accent = ['e', 'e', 'e', 'a', 'u', 'u', 'c', 'o', 'i', 'i', 'a']

    for i in range(len(accent)):
        chaine = chaine.replace(accent[i], sans_accent[i])

    return chaine


def warppercesarC(mot, cle):
    mot = mot.lower()
    mot = supprime_accent(mot)
    mots = mot.split(" ")
    final = ""
    for mot in mots:
        final += " " + cesarC(mot, + cle)

    return final


print(warppercesarC("Science sans conscience n'est que ruine de l'âme.", 3))

Vous l'aurez fait comment ?

PillsDispenser
PillsDispenser
Niveau 67
17 février 2016 à 19:15:58

Bonjour,

Écrire une fonction qui déchiffre une phrase (donnée en argument) qui a été chiffrée par le programme précédent connaissant la clé (donnée en argument).
Votre script doit comporter en dernière ligne le code test suivant qui affiche le renvoi de votre fonction :
print(nom_de_votre_fontion("PAZZQL-YAU GZ BAUZF P'MBBGU, QF GZ XQHUQD, VQ EAGXQHQDMU XQ YAZPQ", 12))

def cesarC(message, shift):
    message = message.lower()
    secret = ""
    for c in message:
        if c.isalpha():
            num = ord(c)
            num += shift
            if num > ord("z"):
                num -= 26
            elif num < ord("a"):
                num += 26
            secret += chr(num)
        else:
            secret += c

    return secret

def supprime_accent(chaine):
    accent = ['é', 'è', 'ê', 'à', 'ù', 'û', 'ç', 'ô', 'î', 'ï', 'â']
    sans_accent = ['e', 'e', 'e', 'a', 'u', 'u', 'c', 'o', 'i', 'i', 'a']

    for i in range(len(accent)):
        chaine = chaine.replace(accent[i], sans_accent[i])

    return chaine


def warppercesarC(mot, cle):
    mot = mot.lower()
    mot = supprime_accent(mot)
    mots = mot.split(" ")
    final = ""
    for mot in mots:
        final += " " + cesarC(mot, - cle)

    return final


print(warppercesarC("PAZZQL-YAU GZ BAUZF P'MBBGU, QF GZ XQHUQD, VQ EAGXQHQDMU XQ YAZPQ", 12))

Écrire une fonction qui décrypte une phrase (donnée en argument) qui a été chiffrée par le programme précédant sans connaître la clé qui a été utilisée.
Pour réussir ce défi, voir l’article de Wikipédia sur l’analyse fréquentielle : https://goo.gl/9xYCjs
Votre script doit comporter en dernière ligne le code test suivant qui affiche le renvoi de votre fonction :
print(nom_de_votre_fontion ("BU KLZ ZLJYLAZ KB IVUOLBY LZA KL KLTHUKLY ILHBJVBW H ZVP-TLTL LA WLB HBE HBAYLZ."))

def cesarC(message, shift):
    message = message.lower()
    secret = ""
    for c in message:
        if c.isalpha():
            num = ord(c)
            num += shift
            if num > ord("z"):
                num -= 26
            elif num < ord("a"):
                num += 26
            secret += chr(num)
        else:
            secret += c
    return secret

def supprime_accent(chaine):
    accent = ['é', 'è', 'ê', 'à', 'ù', 'û', 'ç', 'ô', 'î', 'ï', 'â']
    sans_accent = ['e', 'e', 'e', 'a', 'u', 'u', 'c', 'o', 'i', 'i', 'a']

    for i in range(len(accent)):
        chaine = chaine.replace(accent[i], sans_accent[i])

    return chaine


def warppercesarC(mot, cle):
    mot = mot.lower()
    mot = supprime_accent(mot)
    mots = mot.split(" ")
    final = ""
    for mot in mots:
        final += " " + cesarC(mot, - cle)

    return final

message = "BU KLZ ZLJYLAZ KB IVUOLBY LZA KL KLTHUKLY ILHBJVBW H ZVP-TLTL LA WLB HBE HBAYLZ."

nombre = 0
possible = ""
Bcle = 0
for i in range(1, 26):
    Npossible = warppercesarC(message, i)
    Nnombre = Npossible.count("e")
    if Nnombre > nombre:
        nombre = Nnombre
        possible = Npossible
        print("[...] nouvelle possibilitée choisie : " + possible + "(score :" + str(nombre) + ")")
        Bcle = i

print("Meilleur possible (" + str(Bcle) + ") : ")
print(possible)
print("Avec un score de " + str(nombre))
Message édité le 17 février 2016 à 19:16:47 par PillsDispenser
PillsDispenser
PillsDispenser
Niveau 67
17 février 2016 à 20:40:27

Svp j'ai besoin d'aide.
Peut on mieux faire ?

Message édité le 17 février 2016 à 20:40:44 par PillsDispenser
PillsDispenser
PillsDispenser
Niveau 67
17 février 2016 à 21:05:52

Le 17 février 2016 à 20:51:14 bluepoint_ a écrit :
Mieux ? C'est à dire ?

Le 17 février 2016 à 20:51:14 bluepoint_ a écrit :
Mieux ? C'est à dire ?

D'une autre manière, plus court ?

PillsDispenser
PillsDispenser
Niveau 67
17 février 2016 à 21:27:08

Le 17 février 2016 à 21:17:59 bluepoint_ a écrit :
Bof oui peut-être, mais ça a l'air bien même si j'ai juste survolé, et le résultat est pas trop long, donc si ça marche c'est suffisant, non ?

C'est juste pour avoir un avis.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment