• Aucun résultat trouvé

TP : Codages des caractères, ascii, unicode, les chaines et l'accès aux fichiers

N/A
N/A
Protected

Academic year: 2022

Partager "TP : Codages des caractères, ascii, unicode, les chaines et l'accès aux fichiers"

Copied!
2
0
0

Texte intégral

(1)

Première NSI Mme Pierrot

Codage des caractères et accès aux fichiers

Thème :

accès aux fichiers pour le codage de César

Compétences à acquerir :

• Connaitre les principes de la représentation des lettres en machine,

• Savoir accéder à un fichier .txt à partir d’un programme en python.

Notions :

Codage des caractères alphanumériques, ASCII, utf-8,....etc.

Eléments d’information et exemples.

Sitographie :

Un petit topo sur ASCII et unicode : https://www.fil.univ-lille1.fr/~routier/isn/activites/activite3/codcar.html Unicode : https://home.unicode.org/ et https://en.wikipedia.org/wiki/List_of_Unicode_characters

Pour bosser son anglais : https://www.youtube.com/watch?v=MijmeoH9LT4 Slicing :

Indices des caractères d’une chaine

+---+---+---+---+---+---+

| M | u | r | i | e | l | +---+---+---+---+---+---+

0 1 2 3 4 5 6 -6 -5 -4 -3 -2 -1

Fonctions s’appliquant aux chaines de caractères : chaine.index(‘E’) len(chaine) chaine[2:4]

#(slicing)

chaine.count(‘E’)

Accès aux fichiers

with open("t.txt","rw",encoding="utf-8") as f : f.write ("Texte que j’ajoute")

for ligne in f : print(ligne)

# with open(...) as f :

# remplace

# f = open(...) suivi de f.close()

Travail à réaliser

Voila quelques commandes à tester dans la console python en cherchant toujours à comprendre la réponse obtenue :

# Aide pour le codage de César o=[0]*12

o

# Comprendre le modulo (7+22)%26

(25+22)%26 (1+22)%26 -15%26

# Les chaines de caractères

alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

alphabet.index('C') alphabet[6]

for lettre in alphabet :

if alphabet.index(lettre)%2 == 0 : print (lettre)

len(alphabet) t='PATATRAC' t.count('A')

# concaténation de deux chaînes de caractères chaine = t + 'ODILE'

print(chaine)

# += plus rapide --> un raccourci chaine += 'ETPAUL'

# slicing print(chaine) print(chaine[0]) print(chaine[1]) print(chaine[1:4]) print(chaine[2:]) print(chaine[-1]) print(chaine[-6:])

# Quelques codes unicode à tester '\u0025'

'\u0040' '\u0152' '\u037B' '\u0488' '\u04A8' '\u2182' '\u24f3'

# L’accès aux fichiers

# Quand on ouvre un fichier,

# on doit absoluement le refermer

# Ouverture en ecriture

f = open("mouton.txt", 'w', encoding = "utf-8") for i in range (100) :

f.write(f'Je vois sauter {i} moutons\n') f.close()

# Ouverture en lecture

f = open("mouton.txt", 'r', encoding = "utf-8") for ligne in f :

print(ligne) f.close()

# ou Pour éviter d’avoir à penser

# à refermer le fichier t = ""

with open("mouton.txt","r", encoding="utf-8") as txt : for ligne in txt :

for caractere in ligne : t += caractere print(tc)

(2)

Première NSI Mme Pierrot

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

"""

Squelette du projet « Codage de césar » Created on Mon Nov 9 11:37:40 2020

@author: marie

"""

def prend_texte():

"""

ouvre un fichier textecode.txt placé à coté du programme et prend l'ensemble des caractères qu'il contient et les mémorise dans une chaine de caractère tc et retourne cette chaine de caractère.

@author:

"""

tc = ""

with open("textecode.txt","r", encoding="utf-8") as txt : for ligne in txt :

for caractere in ligne : tc = tc + caractere return tc

def compte_lettre(texte):

"""

fonction qui compte le nombre d'ocurrence de chaque lettre de l'alphabet dans texte et renvoie une liste de ces occurences [nbre de A, nbre de B,...]

@author:

"""

# à compléter return occurrence def devine_cle(occ):

"""

En partant de l'hypothèse où "E" est la lettre la plus présente dans un texte écrit en français trouver la clé de César en comparant avec les occurrences de chaque lettre dans le texte codé.

@author:

"""

# à compléter return cle

def decode(texte, cle) : """

Avec le texte codé et la clé produit le texte décodé @author:

"""

# à compléter return txtdcd

def cree_fichier_texte_decode(t) : """

à compléter @author:

"""

# à compléter return

# Enfin le programme principal qui utilise les fonctions pour décoder les textes proposés

# à compléter

Références

Documents relatifs

The VARY translation routine builds from the input VARY sentence the required lists of symbols for generating the VARY coding and for providing the necessary

Lire dans le fichier courbe.txt 200 valeurs d’abscisse et ordonnée (rangées à raison d’une abscisse et d’une ordonnée, séparées par une es- pace, sur chaque ligne), les

écart-type : écrire une fonction EcartType1 qui prend comme para- mètre un tableau X et un entier n et renvoie l’écart-type des n premières valeurs du tableau4. calculs statistiques

(e) Écrire une fonction jeu() qui définit une chaine de caractères secrete en utili- sant la fonction combinaison_aleatoire , appelle la fonction saisie , affiche le nombre

Il est par contre possible de réaliser des conversions : on retiendra que la fonction str permet de convertir un objet en chaine de caractères et les fonctions float et int

Lecture et écriture dans des fichiers texte (ASCII)...

Création d’une image PGM On souhaite à présent modifier la fonction précédente pour qu’elle prenne en paramètre un tableau de données de type ​int qui correspondra aux

Pour tester votre fonction, on pourra utiliser les fichiers suivants : - data30.txt qui contient 30 valeurs entières séparées par un retour à la ligne, dont les valeurs vont de -5 à