Tu ouvres le fichier avec open mais celui-ci n'est jamais fermé. Il serait préférable d'utiliser un bloc with pour cela : with open('indentation.txt', 'r') as fichier:
.read() va charger la totalité du fichier en mémoire, et ensuite tu appliques un splitpour le découper en lignes. C'est coûteux. Les fichiers sont directement itérables sur leurs lignes, donc tu pourrais simplement écrire for ligne in fichier:
Ta boucle ‘or intérieur ne s'arrête pas aux premiers espaces de la ligne mais les compte tous, il ne s'agit donc pas de mesurer l'indentation.
Tu concatènes tous les résultats dans une seule chaîne de caractères result sans séparation, il n'est alors plus possible de savoir quelle ligne correspond à quoi. Par exemple, si sur un fichier de 3 lignes tu obtiens '1234', peux-tu dire comment étaient indentées les différentes lignes ?
''' Mesurer l'indentaton dans le fichier indentation.txt '''
results = ''
with open('indentation.txt', 'r') as file:
for ligne in file:
i = 0
for char in ligne:
if char == ' ':
i += 1
else:
break
results += f'{str(i)} '
print(results)
merci beaucoup , voila un code qui semble prendre en compte tes conseils
Ah, l'espace ne m'avait pas sauté aux yeux, désolé.
Mais je trouve quand même étrange de renvoyer le résultat sous forme d'une chaîne de caractères. Pourquoi pas simplement une liste de nombres ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.