Python et les chaînes de caractères
Après avoir télécharger ce fichier html (chaine.html) , compléter-le. L'ensemble du code python devra être taper dans un fichier chaine.py)
Vous allez devoir restituer ces deux fichiers (chaine.html et chaine.py)
Le type string
Une donnée de type string peut se définir comme une suite de
caractères. Dans un script python, on peut délimiter une telle suite de caractères, soit par des
apostrophes (simple quotes), soit par des guillemets (double quotes). Exemples :
phrase1 = 'les oeufs durs.'
phrase2 = '"Oui", répondit-il,'
phrase3 = "j'aime bien"
print(phrase2, phrase3, phrase1)
Les 3 variables phrase1, phrase2, phrase3 sont des variables de
type string appelées chaines de caractères.
type(phrase1)
type(phrase2)
type(phrase3)
On peut accédé à un caractère bien déterminé d'une chaîne de caractère :
Tester le code ci-dessous :
chaine="Bonjour"
chaine[0]
chaine[1]
chaine[2]
chaine[3]
chaine[-1]
Tester le code ci-dessous et dire le rôle de in :
chaine="Bonjour"
'jour' in chaine
'o' in chaine
Attention : Les données informatiques
sont presque toujours numérotées à partir de zéro (et non à partir de un).
C’est le cas pour les caractères
d’une chaîne. (Le "B" est le caractère numéro 0)
len()
mot1="Coucou"
len(mot1)
len(mot2)
len prend en parametre une chaine de caractère est permet de ...
Tester et comprendre les deux codes ci-dessous :
chaine="Bonjour"
for caractere in chaine:
print(caractere)
chaine="Bonjour"
for i in range(len(chaine)):
print(chaine[i])
Ces deux codes permettent de ...
Tester et comprendre le code ci-dessous.
chaine="Bonjour"
tmp=""
for i in range(len(chaine)):
tmp=tmp+chaine[i]
print(tmp)
Compléter le code de façon à concaténer une lettre sur deux.
Par exemple : Bonjour devient Bnor
chaine="Bonjour"
tmp=""
for i in range(len(chaine)):
if
tmp=tmp+chaine[i]
...
Ces deux codes permettent de ...
Que permet de faire la fonction
mystère?
def mystere(chaine):
cpt=0
for i in range(chaine):
if i=="e":
cpt=cpt+1
Concaténation
Assembler plusieurs petites chaînes pour en construire de plus grandes. Cette opération s’appelle
la concaténation. Exemple :
Tester le code ci-dessous :
a = 'Petit'
b= 'poisson'
c= 'deviendra'
d = 'grand'
e = a + b + c + d
print(e)
Modifier les variables a, b, c, et d de facon à obtenir une "belle" phrase.
<
a =
b=
c=
d =
e =
print(e)
input()
Cette fonction provoque une interruption dans le programme courant.
L’utilisateur
est invité à entrer des caractères au clavier et à terminer avec .
Exemple :
prenom = input("Entrez votre prénom : ")
print("Bonjour, " + prenom)
- Ecrire un script qui demande à l'utilisateur son prénom et qui affiche :
Bonjour "prénom", je suis content de te revoir!
- Ecrire un script qui demande à l'utilisateur son nom, son prénom et son sexe qui affiche :
Bonjour "Monsieur ou madame"* "nom"*, votre prénom contient "x"* caractères.
* On ajustera selon les données fournies par l'utilisateur.
- Écrivez un script qui compte le nombre d’occurrences du caractère « e » dans une chaîne.
- Écrivez un script qui recopie une chaîne (dans une nouvelle variable), en insérant des
astérisques entre chaque caractère. Ainsi par exemple, « gaston » devra devenir « g*a*s*t*o*n »
- Écrivez un script qui recopie une chaîne (dans une nouvelle variable) en l’inversant.
Ainsi par exemple, « zorglub » deviendra « bulgroz ».
MICRO PROJET
L'objectif est de décoder le message suivant :
"0100100101101100001000000111100100100000011000010010000000110001
0011000000100000011101000111100101110000011001010111001100100000
0110010001100101001000000111000001100101011100100111001101101111
0110111001101110011001010111001100101100001000000110001101100101
0111010101111000001000000111000101110101011010010010000001100011
0110111101101101011100000111001001100101011011100110111001100101
0110111001110100001000000110110001100101001000000110001001101001
0110111001100001011010010111001001100101001000000110010101110100
0010000001101100011001010111001100100000011000010111010101110100
01110010011001010111001100101110"
Questions :
- Affecter le code à dechiffrer dans une variable secret. de type string
secret=...
- Combien y a t-il d'octets dans secret ? Compléter :
NbBits=...
NbOctets=...
En utilisant int g=faire en sorte que NbOctets soit de type int.
- Tester et expliquer le principe de chaine[... : ... ]
bidule="machin"
print(bidule[1:5])
print(secret[0:8])
print(secret[8:16])
print(secret[16:24])
- Demander à python d'afficher le secret comme suit (paquet de 8 bits):
01001001
01101100
00100000
01111001
00100000
...
00101110
for i in range(NbOctet):
octet=secret[... : ...]
print(octet)
- Tester la fonction ci-dessous (Vous expliquerez le rôle de chaque ligne) :
def decode(MonOctet):
#MonOctet est une chaine constitués de 8 bits
convertir=int(MonOctet,2)
caractere=chr(decode)
return caractere
- A l'aide de la fonction decode décoder tout le message.