Les programmes ci-dessous ne sont pas à réaliser le jour de la formation (sauf s'il vous reste du temps bien évidemment). Ils sont là pour vous donner d'autres idées d'exercices (ou vous entraîner si besoin).
Les fichiers - Exercices supplémentaires
Les programmes ci-dessous ne sont pas à réaliser le jour de la formation (sauf s'il vous reste du temps bien évidemment). Ils sont là pour vous donner d'autres idées d'exercices (ou vous entraîner si besoin).
Le fichier materiel.txt
a été établi par un responsable informatique qui a établi une liste des
ordinateurs présents dans chaque salle. Chaque ligne du fichier est écrite
uniquement en lettres minuscules sous la forme :
constructeur année_d_achat quantité caractéristiques
Chaque modèle d'ordinateur peut avoir plusieurs caractéristiques, séparées par un espace comme les autres informations de la ligne.
nb_materiel.txt
sera donc constitué de lignes sous la forme :
constructeur1 quantité1 constructeur2 quantité2 constructeur3 quantité3 etc...
Linux
. Modifier le programme précédent
afin d'obtenir le fichier materiel_linux.txt
qui sera
constitué, uniquement pour le matériel tournant sous Linux
,
de lignes de la forme :
constructeur1 quantité1 constructeur2 quantité2 constructeur3 quantité3 etc...
On considère la chaîne de caractère :
texte = "Bonjour, comment ça va ?"
Que renvoie la console Python après l'instruction :
print(texte.split(" "))
##----- Ouverture des fichiers -----##
fsource = open('materiel.txt', 'r')
fsortie = open('nb_materiel.txt', 'w')
##----- Variables et constantes -----##
liste_constructeurs = []
liste_quantite = []
##----- Programme principal -----##
for ligne in fsource:
liste = ligne.split(" ") # Ligne transformée en liste de mots
if liste[0] not in liste_constructeurs:
liste_constructeurs.append(liste[0])
liste_quantite.append(int(liste[2])) # Quantité transformée en entier
else:
indice = liste_constructeurs.index(liste[0])
liste_quantite[indice] += int(liste[2])
for i in range(len(liste_constructeurs)):
fsortie.write(liste_constructeurs[i])
fsortie.write(" ")
fsortie.write(str(liste_quantite[i])) # Retour à la chaîne de caractères
fsortie.write("\n")
##----- Fermeture des fichiers -----##
fsource.close()
fsortie.close()
Seule la ligne 13
a été ajoutée, suivie des
indentations nécessaires et d'un renommage du fichier à
obtenir.
##----- Ouverture des fichiers -----##
fsource = open('materiel.txt', 'r')
fsortie = open('materiel_linux.txt', 'w')
##----- Variables et constantes -----##
liste_constructeurs = []
liste_quantite = []
##----- Programme principal -----##
for ligne in fsource:
liste = ligne.split(" ") # Ligne transformée en liste de mots
if 'linux' in liste:
if liste[0] not in liste_constructeurs:
liste_constructeurs.append(liste[0])
liste_quantite.append(int(liste[2])) # Quantité transformée en entier
else:
indice = liste_constructeurs.index(liste[0])
liste_quantite[indice] += int(liste[2])
for i in range(len(liste_constructeurs)):
fsortie.write(liste_constructeurs[i])
fsortie.write(" ")
fsortie.write(str(liste_quantite[i]))
fsortie.write("\n")
##----- Fermeture des fichiers -----##
fsource.close()
fsortie.close()
Concevoir un programme qui permet de générer de manière automatique
10
fichiers .html
.
Ces fichiers seront nommés automatiquement page_X.html
où
X
correspond au numéro de la page. Ces pages sont destinées
à devenir un diaporama donc elles doivent toutes faire appel à un même
fichier css_diaporama.css
téléchargeable en
cliquant
ici et à placer dans le répertoire courant des fichiers créés par le programme.
De plus, chaque page n
doit contenir un lien vers la page
suivante n+1
et vers la page précédente n-1
.
Attention, la page 9
doit être reliée
à la page 0
et vice-versa.
Il faut étudier le fichier .css
afin de définir correctement
les balises nécessaires.
On présente ci-dessous l'aspect final de la page 5
ouverte dans un navigateur :
Un papier et un crayon permettront de détailler les balises nécessaires à la conception des pages. Écrire ensuite ces balises dans chaque fichier.
n = 10 # Nombre de fichiers
for i in range(n):
f = open('page_{}.html'.format(i), 'w')
f.write(' \n')
f.write(' \n')
f.write(' \n')
f.write(' \n')
f.write(' Diaporama \n')
f.write(' \n')
f.write(' \n')
f.write(' \n')
f.write(' Diaporama - Page {} \n'.format(i))
f.write(' \n')
f.write('Un paragraphe de blabla
\n')
f.write(' \n')
if i != 0:
preced = i-1
else:
preced = 9
suivant = (i+1)%10
f.write(' \n')
f.write(' \n')
f.write(' \n')
f.close()
Seule la ligne 13
a été ajoutée, suivie des
indentations nécessaires et d'un renommage du fichier à
obtenir.
##----- Ouverture des fichiers -----##
fsource = open('materiel.txt', 'r')
fsortie = open('materiel_linux.txt', 'w')
##----- Variables et constantes -----##
liste_constructeurs = []
liste_quantite = []
##----- Programme principal -----##
for ligne in fsource:
liste = ligne.split(" ") # Ligne transformée en liste de mots
if 'linux' in liste:
if liste[0] not in liste_constructeurs:
liste_constructeurs.append(liste[0])
liste_quantite.append(int(liste[2])) # Quantité transformée en entier
else:
indice = liste_constructeurs.index(liste[0])
liste_quantite[indice] += int(liste[2])
for i in range(len(liste_constructeurs)):
fsortie.write(liste_constructeurs[i])
fsortie.write(" ")
fsortie.write(str(liste_quantite[i]))
fsortie.write("\n")
##----- Fermeture des fichiers -----##
fsource.close()
fsortie.close()