Nombre de caractères sans les espaces dans un fichier
Résolu/Ferméarscy Messages postés 173 Date d'inscription dimanche 26 janvier 2014 Statut Membre Dernière intervention 5 octobre 2023 - 8 oct. 2022 à 19:02
- Compter le nombre de caractères python
- Caractères ascii - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
- Citizen code python avis - Accueil - Outils
- Exemple de mot de passe à 8 caractères - Guide
4 réponses
Modifié le 28 sept. 2022 à 11:13
Bonjour,
Ou alors, tu fais simplement comme ça:
nb_spaces = ligne.count(' ') nb_car += (len(ligne) - nb_spaces)
Modifié le 29 sept. 2022 à 14:21
Bonjour
Il faudrait préciser ce que tu entends par espace, car en python a.isspace() retourne True si a est un espace, une tabulation, ou un retour à la ligne.
S'il faut ignorer tous les caractères entrant dans cette catégorie :
def count_non_space_chars(s: str) -> int: return sum( 1 for a in s if not a.isspace() )
Si on ne veut ignorer que les caractères ' ' :
def count_non_space_chars(s: str) -> int: return sum( 1 for a in s if a != ' ' )
Une fois ce choix fait, pour utiliser la fonction sur un fichier, disons /etc/motd :
filename = "/etc/motd" with open(filename, "r") as f: print(count_non_space_chars(f.read()))
Bonne chance
28 sept. 2022 à 19:08
ou alors comme ça:
nb_spaces = ligne.count(chr(9)) + ligne.count(chr(32)) nb_car += (len(ligne) - nb_spaces)
Modifié le 27 sept. 2022 à 17:20
Bonjour,
Au lieu de poster une image, il vaut mieux afficher ton code ici
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Visuellement, ça doit ressembler à ça:
for k in range(10): print(k)
A part ça, il existe une méthode Python applicable aux string permettant de compter les occurrences
d'un caractère donné (ici l'espace, donc)
Et ensuite, on fait ça:
nb_car += (len(ligne) - nb_d_espaces_de_la_ligne)
27 sept. 2022 à 17:37
pouvez vous m'aider a le modifier ? je ne comprends pas vraiment votre réponse
27 sept. 2022 à 17:36
with open("devoirnsi.txt","r") as fic: nb_mot=0 nb_car=0 nb_ligne=0 nb_space=0 nb_voy=0 nb_cons=0 contenu=[] for ligne in fic: nb_ligne+=1 contenu+=ligne.split() nb_car+=len(ligne) print("Le nombre de ligne dans ce texte est de :",nb_ligne) print("Le nombre de caractères dans ce texte est de :",nb_car-nb_space) print("Le nombre de mots dans dans ce texte est de :",len(contenu)) print ("Le nombre de voyelles dans dans ce texte est de :",nb_voy) print ("Le nombre de consonnes dans dans ce texte est de :",nb_cons)
27 sept. 2022 à 20:00
Bonsoir,
Si tu ne vois pas comment t'y prendre pour ne pas prendre en compte les espaces, ça veut dire que tu ne sais pas ce que tu as codé :-(
- Comment fonctionne la fonction split ?
- À quoi ça te sert de réduire le contenu d'une ligne à un tableau?
Lorsque tu seras en mesure de répondre à ces deux points tu devrais pouvoir avancer significativement sur ton schmilblick (voire résoudre ta question, en fait).
Par contre si tu souhaitais compter le nombre d'espaces (cf ta variable 'nb_space') tu gagnerais à procéder différemment, par exemple en cherchant le caractère espace _ ' '_ dans chaque ligne ou bien dans une concaténation de tes différentes lignes.
Tiens-nous au courant de ta progression
29 sept. 2022 à 22:11
merci pour votre aide j'ai réussi !
8 oct. 2022 à 19:02
bien joué.
29 sept. 2022 à 22:11
merci beaucoup!!