fin rot13

This commit is contained in:
Florent Madelaine 2022-10-26 11:21:06 +02:00
parent 724662f647
commit 6b739709df
2 changed files with 82 additions and 10 deletions

View File

@ -0,0 +1,57 @@
#! /usr/bin/python3
# -*- coding: utf-8 -*-
def carot13(c):
""" transforme le caractère c en un caractère rot13 de c i.e. 13 lettres plus loin"""
n=ord(c)-97 # transforme la lettre minuscule entre a et z en un entier entre 0 et 25
m=(n+13)%26 # phase de César je tourne la roue (avec des nombres de 0 à 25) d'un demi tour
rotc=chr(m+97) # traduction en charactère entre a et z
return rotc
def marot13(mot):
motEnRot=""
for c in mot:
# print("boucle : " + carot13(c))
# motEnRot = motEnRot + carot13(c)
motEnRot += carot13(c) # Même chose que ligne précédente
return motEnRot
### En trichant.
def rot13(phrase):
phraseEnRot=""
for c in phrase:
if (c != ' '):
phraseEnRot += carot13(c)
else :
phraseEnRot += ' '
return phraseEnRot
# test
print("test rot13")
print("abcdefghijklmnopqrstuvwxyz")
print(marot13("abcdefghijklmnopqrstuvwxyz"))
print(marot13(marot13("abcdefghijklmnopqrstuvwxyz")))
p="the lazy dog jumped over the quick brown fox"
print(rot13(p))
# Sans tricher.
#L="the lazy dog jumped over the quick brown fox".split()
#L = p.split() #ou comme ceci puisque le message p est défini ci-dessus.
#"XX".join(L)
#'theXXlazyXXdogXXjumpedXXoverXXtheXXquickXXbrownXXfox'
#" ".join(L)
#'the lazy dog jumped over the quick brown fox'
maListeDeMots=p.split()
maListeDeMotsEnRot13=[marot13(mot) for mot in maListeDeMots]
#print(maListeDeMotsEnRot13)
print(" ".join(maListeDeMotsEnRot13))
### En une seule fois.
MessageSecret="Having a lower tax, simpler, fairer, flatter tax system is something that can drive growth."
print(" ".join([marot13(mot) for mot in MessageSecret.split()]))

View File

@ -26,14 +26,14 @@ La page wikipedia commence par beaucoup de jargon.
Nous allons définir approximativement ces mots de jargon.
_ [interprété (vs compilé)](http://www.france-ioi.org/algo/course.php?idChapter=561&idCourse=2368)
_ impérative vs déclarative (au tableau)
_ structurée
_ multiplateforme
_ orientée objet
_ typage dynamique
_ ramasse-miettes
_ gestion d'exception
- [interprété (vs compilé)](http://www.france-ioi.org/algo/course.php?idChapter=561&idCourse=2368)
- impérative vs déclarative (au tableau)
- structurée
- multiplateforme
- orientée objet
- typage dynamique
- ramasse-miettes
- gestion d'exception
## Prise en main
@ -184,8 +184,8 @@ On peut ensuite appliquer la fonction inverse de ord qui s'appelle chr pour trou
### Fonction
Pour structurer notre programme et le rendre plus lisible ce qui évite les bugs et permet aux autres programmeurs de comprendre notre intention on va découper notre code en petite unité élémentaires qui
_ prennent des paramètres en entrées
_ retourne (pas toujours) une valeur
- prennent des paramètres en entrées
- retourne (pas toujours) une valeur
Ce sont les fonctions.
Par défaut en python il est recommandé de documenter la fonction directement dans le code.
@ -259,3 +259,18 @@ On recommande d'utiliser l'élégat mécanisme de **liste en compréhension** po
```python
[marot13(mot) for mot in maListeDeMots]
```
### Divers Python
Le tutoriel de W3 school contient les mots réservés de python.
[voir ici](https://www.w3schools.com/python/python_ref_keywords.asp)
Plus généralement ce tutoriel donne des exemples simples et progressifs de plusieurs concepts.
- [les variables](https://www.w3schools.com/python/python_variables.asp)
- [les boucles]()
- [les fonctions]()
```python
+= #
```