
Le curseur clignotait avec une insistance presque moqueuse sur mon écran. Il était tard, un jeudi soir pluvieux de mai, et j'étais assise à la table de la cuisine avec une tasse oubliée dont s'échappait encore l'odeur de la tisane au thym refroidie sur le coin de la nappe cirée pendant que le curseur clignotait dans l'éditeur. Je voulais juste séparer trois mots d'une même phrase.
Avant d'aller plus loin dans mes mésaventures nocturnes, une petite précision en toute honnêteté : ce carnet d'apprentissage contient quelques liens affiliés. Si vous décidez de passer par eux pour acquérir une ressource, une petite commission m'est reversée sans que cela ne vous coûte un seul centime de plus. Je ne parle ici que des supports que j'ai personnellement manipulés et qui m'aident vraiment au fil de mes soirées d'étude.
La découverte de split() et le mystère des crochets
Tout est parti d'un petit exercice pratique. Dans le cadre de la Formation au langage Python [Mon point de départ] que je suivais par petits bouts après le travail, l'exercice me demandait de récupérer une chaîne de caractères et de la découper pour en faire des éléments séparés. Sur le papier, cela paraissait tout simple : j'avais une ligne contenant du texte brut, comme une liste de courses gribouillée sur un post-it, et je devais en extraire chaque produit.
Mon support de cours introduisait alors une instruction bien précise du langage de programmation Python : la méthode split(). D'après ce que je lisais, elle servait à couper un morceau de texte selon un critère donné. J'ai donc tapé ma première ligne avec confiance, persuadée que l'ordinateur allait poliment m'aligner mes trois ingrédients sur trois lignes nettes. J'ai lancé l'exécution.

Et là, surprise totale. Le terminal m'a renvoyé quelque chose d'étrange, entouré de signes bizarres et de guillemets. Je me suis demandé pourquoi diable le terminal m'affichait des crochets alors que je lui demandais simplement de séparer trois mots. Dans ma tête de débutante, découper signifiait poser les morceaux côte à côte sur la table, pas les enfermer aussitôt dans une boîte rectangulaire fermée par des crochets.
Il m'a fallu un bon moment pour faire le lien avec un autre chapitre : ce que Python venait de fabriquer sous mes yeux n'était pas du texte découpé en vrac, mais une véritable structure de données, une liste. Même si je ne mettais aucun mot ou aucun séparateur qui fonctionnait, la méthode renvoie systématiquement une liste. Comprendre cela a changé ma manière de voir les choses, un peu comme comment comprendre la différence entre liste et tuple en python simplement avait fini par m'éclairer quelques semaines plus tôt sur ces drôles de conteneurs.
Quand les virgules et les espaces invisibles s'en mêlent
Après trois semaines de pratique, je pensais avoir dompté la bête. C'était sans compter sur la réalité vicieuse des données réelles. J'ai voulu nettoyer une ligne qui contenait des dates et des quantités, récupérée dans un fichier texte un peu bancal, un peu comme lorsqu'on prépare le terrain pour apprendre comment écrire dans un fichier CSV avec Python sans être un expert.
C'est là que j'ai vécu mon plus grand moment de solitude face à mon clavier. J'ai voulu découper une série d'entrées séparées par des barres obliques. Je me suis mise à tenter d'isoler une date avec split('/') et obtenir un dernier élément pollué par le retour à la ligne invisible antislash-n. À l'écran, le mot semblait normal, mais dès que je tentais de le comparer à une autre valeur, le programme refusait obstinément d'admettre qu'ils étaient identiques. Cet invisible \n collé à la fin de ma chaîne faussait toute la mécanique sans prévenir.

Puis sont venues les virgules suivies d'espaces. Si j'écrivais split(',') sur une phrase comme pommes, poires, bananes, je me retrouvais avec des mots propres au début, mais affublés d'un espace parasite au démarrage pour tous les suivants : ' poires' au lieu de 'poires'. Pour quelqu'un qui n'a pas l'habitude du code, un espace ressemble à du vide, à rien du tout. En programmation, c'est un caractère à part entière qui prend de la place et sème la pagaille.
À force d'éplucher la documentation et les notes de cours, j'ai fini par découvrir la magie du comportement par défaut. Lorsqu'on appelle la méthode sans lui fournir aucun séparateur entre les parenthèses, c'est-à-dire un simple chaine.split(), Python ne cherche pas une simple virgule : il prend en compte les 6 caractères d'espacement standard ASCII (l'espace simple, la tabulation, le saut de ligne, le retour chariot, la tabulation verticale et le saut de page). Mieux encore, il regroupe les espaces consécutifs et nettoie les extrémités sans râler. C'était la solution idéale pour mes textes mal fichus, alors que je m'acharnais manuellement à découper caractère par caractère.
Le calme de la cuisine contre le tumulte du salon
Au fil de ces soirées, j'ai aussi fait une constatation qui n'a rien de technique, mais qui change tout quand on commence sur le tard. Cette méthode d'exploration pas à pas fonctionne bien au calme, mais échoue pour les étudiants en soirée bruyante car le bruit parasite la saisie clavier et la concentration nécessaire au débogage immédiat.
Un mardi soir, j'ai tenté d'écrire mes petits scripts au salon pendant que la télévision tournait et que les discussions allaient bon train. Impossible. Quand on manipule des découpages de texte, la moindre coquille sur un guillemet, un oubli de parenthèse ou une confusion de variable transforme un exercice de cinq minutes en une heure de crispation. J'ai d'ailleurs appris à faire très attention à la manière dont j'écrivais le nom de mes résultats, en m'inspirant de mes astuces pour bien nommer ses variables Python en suivant la PEP 8, pour ne pas confondre le texte d'origine et la liste issue du découpage.

Dans le brouhaha, on ne voit pas qu'on a tapé un point au lieu d'une virgule, ou qu'on a mal placé le paramètre optionnel. Car la méthode possède aussi un réglage caché : le fameux maxsplit, dont la valeur par défaut est -1 dans les spécifications du langage, signifiant qu'il n'y a aucune limite de découpage et qu'il sépare tout ce qu'il trouve. Quand on veut juste isoler le premier mot et garder le reste intact, régler ce paramètre à 1 est formidable, mais si on n'a pas l'esprit entièrement reposé, on tape n'importe quoi et on ne comprend plus les résultats.
Mes petits repères pour ne plus s'arracher les cheveux
Pour m'éviter de refaire les mêmes erreurs chaque semaine, j'ai fini par noircir une page de mon carnet à spirales avec quelques réflexes simples :
- Regarder ce qui sort : toujours se rappeler que le résultat est une liste, jamais du texte brut. Si j'ai besoin du premier mot, je dois aller le chercher avec son premier indice entre crochets.
- Méfiance avec le séparateur explicite : utiliser
split(' ')avec une espace stricte ne réagit pas du tout comme unsplit()sans argument. Le premier conserve les espaces doubles sous forme de chaînes vides, le second fait le ménage tout seul. - Penser à nettoyer avant : un petit coup de suppression des blancs extrêmes sur la chaîne évite bien souvent de traîner ce fameux saut de ligne fantôme qui m'avait tant fait pester.
Pour celles et ceux qui débutent comme moi après une journée de bureau bien remplie, disposer d'un fil conducteur structuré aide énormément à ne pas abandonner au premier obstacle. La formation que j'ai suivie, la Formation au langage Python [Mon point de départ], m'a offert ce cadre rassurant avec des leçons courtes qui s'intègrent sans peine dans une routine du soir. Les explications en français m'ont évité de bloquer sur le vocabulaire dès le départ, même si pour connaître le tarif à jour il faut consulter directement la page de l'organisme tant les offres peuvent fluctuer. J'avais aussi gardé dans un coin de mes favoris d'autres pistes plus tardives, comme la formation Cisco orientée réseaux ou un cursus JavaScript pour le web, mais rester concentrée sur un seul langage a été ma meilleure décision pour enfin assimiler ces notions sans m'éparpiller.
Un soir tranquille d'octobre
La semaine dernière, par un soir tranquille d'octobre, j'ai rouvert un vieux script de mai pour voir le chemin parcouru. Là où je passais une demi-heure à batailler contre des crochets inattendus et des espaces récalcitrants, quelques secondes m'ont suffi pour écrire un découpage propre, récupérer les deux premiers éléments d'une chaîne et ignorer le reste sans stresser.
Je ne prétends toujours pas être devenue une développeuse ou penser comme une informaticienne chevronnée. La plupart des concepts avancés restent pour moi un vaste territoire inconnu que j'explore à tout petits pas. Mais en refermant le capot de mon ordinateur portable ce soir-là, devant ma tasse vide et mes notes gribouillées, j'ai savouré cette modeste victoire du quotidien : celle d'avoir réussi à transformer une ligne de texte brute et chaotique en petits éléments bien rangés, simplement parce qu'une méthode que je trouvais obscure a fini par faire sens.