Aller au contenu

Le code de César⚓︎

Le codage de César transforme un message en changeant chaque lettre par une autre obtenue par décalage dans l'alphabet de la lettre d'origine. Par exemple, avec un décalage de 3, le 'A' se transforme en 'D', le 'B' en 'E', ..., le 'X' en 'A', le 'Y' en 'B' et le 'Z' en 'C'. Les autres caractères ('!', '?'...) ne sont pas codés et sont simplement recopiés tels quels dans le message codé.

La fonction position_alphabet prend en paramètre un caractère lettre et renvoie la position de lettre dans la chaine de caractères ALPHABET s'il s'y trouve.

Ecrire la fonction cesar qui prend en paramètres une chaîne de caractères message et un nombre entier decalage et renvoie le nouveau message codé avec le codage de César utilisant ce decalage.

Exemples

Python Console Session
>>> cesar('BONJOUR A TOUS. VIVE LA MATIERE NSI !', 4)
'FSRNSYV E XSYW. ZMZI PE QEXMIVI RWM !'
>>> cesar('GTSOTZW F YTZX. ANAJ QF RFYNJWJ SXN !', -5)
'BONJOUR A TOUS. VIVE LA MATIERE NSI !'
Astuce

👉 Rappel:
On rappelle que pour un entier n positif, n % 26 renvoie le reste dans la division de n par 26.
Voici quelques exemples :

Python Console Session
>>> 10 % 26
10
>>> 26 % 26
0
>>> 27 % 26
1
>>> 28 % 26
2
>>> 53 % 26
1
>>> 
Compléter ci-dessous

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013fd6nmi74=]3y_ 9pHu8ts5[/v1b(P)l;Ago%wEL-ahZB:+rTS2cek,050c0!0u0P0g0F0v0o0Z0F0P0v0v0j010u0g0q010406050v0s0f0f0P0V0m040X0J0F0s0`0J0e050y111315170 0q04051n1g1q0y1n0 0c0g0z0/0;0?0^0;0e0I0s0P0I0!0O0q0m0u0Q1e0o0Q0g0I0Q0F1S0Q0u0}050*0B0F0!1z0=0@011R1T1V1T0u1#1%1Z0u0V1o1N0/1a0v0q0P0e0^0Y011)1B010b0,0!0e0P0f0!1Z1~20251+281%2b2d0}0a0o0D0V0J0q0J0v0g1d0e0o0(1|0V0V0!0Z2y1g2g0e1o0y1N2L1^1`1_1!0c2i1C0g0e2a2v1Z1w1y0:1*2V2X0e0J2#1Z0q2E1o2J2L2=101 2z2%262+0V140F1Z0P1Q2E0b0^030n0n0Z2,0!1V2*0J0O0Y0O0A0}0A1g0P2?2_0~2^2h2{1+2}2 31330!350137393b3d2Y3g3g0}0Y3m3o203q2J2U013v0P301o320Q3436383a0(3F2+3H0l0}0l3L2I3p0 3P3t0^3S3U053W3Y3B3!3E2W3G3h0i0}0i3-1h3/3r2`1A3u0J2~3T3x3X3z3Z3D3$3 3(3h0w0}0w452=3:2_3Q3@4f3{3C3#3c4l3f3h0d0}0d4r473;4a3?4c3w3V3y3A4z3~3e3H0h0}0h4I3N4t3s4L3R4N4e4P4g4R3}4k4U3h0t0}0t4Z2K4#492(4(4d3^3`4h3|4j4B4:0O0p0}0p4^2L2/0!2L2#2O0c1`2T3=014A2!1x1o5c2;3p3.3N054A5r2h0g0c0^382J3H3j4P5z5B533%4D3i242m0!5I4A5K5E1Z0y3n483Q0#0}0(0b5t2K5X5k0L0}0o5%5x4{2|0b0}0Z0!0v155.5)4%0|040C5{4K4|0e0}2d0?1H0!614u5k5~0$5.5-622|5!2F3T686a4$4|5~0E0T5.0 465u3P5H015C2_3H235G5A6z5J4C6C5N2c5P6G5R6I3h6D3L0o6T6g6b4%64042E110F0*0u6f5|4|0J0}0j6)6h1+0v5F02030l0p0G6@6_0G6t6n2z6y6A203)3x726H553*0o5O5Q4T400O3*2L3n6U6V6o265Z040b4c6/6W635?150P2G0!2E7s7m1+0J5+042W7B5:3u655^5_1I703Q5~6s6v4_7P775D41766F4.547f427b6L7d4/7%5U7j7k6U6*7n0}0g5$7T047l7J0^6=0}6|6`0H816~7`7|3Q6,04026$0G6.867=7K040Z7w7y7A8f6:0^7E0}200c7I4v7v0V7x0u7z698n7t26898b0u8d8u5k7 8a6^6`0R847P6c0}7S4s7V7!0n7X0O4o6E7+7$4m8!6K2d8%5S4n7.7{7:8=8g3?7@0e1w5@8J4%898e2=878S5 8R6X0}2u2w2y0n3T0q0Q0P0B0)956p0}607`8@3R8w8y8A9i266q8}6+0}0U9v6i040(8j0;7O9m8o019u8C7C8p0}0K9z1+0f0g3J4H7`6u2@6x8X8Z4F8$6N7e8)4F7)8,9%7,9)8:8=8?9H6Y6!0s6$0P6(9K7}018 9P8^6Z5^9_6%a19 9xa76Y0H0N0D0r0H0S0M0W9s1+5~0xaka22W8{8B9X8Dal0}0k6 9G4u7W6B3h4W9$7#8.0O4W9+6MaG6PaI9:9;9n7o3c0vas5s9H7Rayat5y9ZaC0O4=aF787f4=aK8-aNa)6S9;7k9n9@a49`9|919na09}8va36#a6b05k899yb5968i8k8z8m8Vaza#5I8Z57a*6O5557a.9-8(5Lbka=6TaR0}2E0u0s0V1fb97ub2a59{aZ5s0y5w1r2:1g5f1g0u5hbQ2R2M9f1%5e5o6u0(0*0,0v04.