Python et la fonction len()

Fermé
Lacrem Messages postés 1 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 14 décembre 2015 - 14 déc. 2015 à 21:45
 Utilisateur anonyme - 14 déc. 2015 à 22:10
Bonjour, je voudrais savoir pourquoi la fonction len() ne renvoit pas le même résultat dans les deux cas suivants, en admettant que fichier.txt est composé de deux lignes:
ABCD
ABCD

1)
>>> a="ABCD"
>>> len(a)
4

2)
>>> f=open('fichier.txt', 'r')
>>> ligne=f.readline()
>>> len(ligne)
5


Dans les deux cas il y a bien 4 caractères dans "ABCD". Pourquoi la fonction len() en compte 5 lorsqu'elle cherche dans le fichier texte?
J'ai remarqué que si je laissais une seule ligne"ABCD" dans le fichier texte, la len(ligne) me compte bien 4 caractères. Pourquoi le fait de rajouter du contenu sur d'autres lignes modifie le résultat de len sur la première ligne?

Merci d'avance pour votre aide!
A voir également:

1 réponse

Bonjour

Sans doute parce que les lignes sont séparées par des caractères fin de ligne, que tu ne vois pas à l'écran mais qui font bel et bien partie de la chaîne lue par readline.

extrait du manuel Python :
f.readline() reads a single line from the file; a newline character (\n) is left at the end of the string, and is only omitted on the last line of the file if the file doesn’t end in a newline.
https://docs.python.org/2/tutorial/inputoutput.html
0