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)


  1. Ecrire un script qui demande à l'utilisateur son prénom et qui affiche :
    Bonjour "prénom", je suis content de te revoir!
  2. 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.
  1. ...

  2. ...



  1. Écrivez un script qui compte le nombre d’occurrences du caractère « e » dans une chaîne.
  2. É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 »
  3. Écrivez un script qui recopie une chaîne (dans une nouvelle variable) en l’inversant. Ainsi par exemple, « zorglub » deviendra « bulgroz ».
  1. ...
  2. ...
  3. ...





MICRO PROJET
L'objectif est de décoder le message suivant :

"0100100101101100001000000111100100100000011000010010000000110001
0011000000100000011101000111100101110000011001010111001100100000
0110010001100101001000000111000001100101011100100111001101101111
0110111001101110011001010111001100101100001000000110001101100101
0111010101111000001000000111000101110101011010010010000001100011
0110111101101101011100000111001001100101011011100110111001100101
0110111001110100001000000110110001100101001000000110001001101001
0110111001100001011010010111001001100101001000000110010101110100
0010000001101100011001010111001100100000011000010111010101110100
01110010011001010111001100101110"

Questions :

  1. Affecter le code à dechiffrer dans une variable secret. de type string
  2. secret=...
    
  3. Combien y a t-il d'octets dans secret ? Compléter :
  4. NbBits=...
    NbOctets=...
    
    En utilisant int g=faire en sorte que NbOctets soit de type int.
  5. 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])
    
    
  6. 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)
         
    
  7. 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
    
  8. A l'aide de la fonction decode décoder tout le message.
  1. ...
  2. ...
  3. ...
  4. ...
  5. ...
  6. ...