Post AyT2qEbhtgNqRbAgTo by tut_tuuut@framapiaf.org
(DIR) More posts by tut_tuuut@framapiaf.org
(DIR) Post #AyT1ROya6nbPPQSveC by tut_tuuut@framapiaf.org
2025-09-22T14:24:10Z
0 likes, 0 repeats
@mdk Tiens j'ai une interrogation Python : pourquoi j'ai pas d'erreur "out of range" quand j'accède à une slice d'une chaîne vide, alors que j'en ai une si je fais un accès direct ?Perso ça m'arrange bien mais je m'inquiète que ce soit accidentel et que je doive éviter de m'en servir.(Pas encore lu la doc, j'y vais de ce pas)
(DIR) Post #AyT1RPknDYAPox1QnI by bortzmeyer@mastodon.gougere.fr
2025-09-22T14:31:33Z
0 likes, 0 repeats
@tut_tuuut @mdk Parce que les chaines sont des listes et que les listes font comme ça ?>>> t = []>>> t[1:2][]>>> t[1]Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: list index out of range
(DIR) Post #AyT1TiE7VS03h1prDk by bortzmeyer@mastodon.gougere.fr
2025-09-22T14:32:00Z
0 likes, 0 repeats
@tut_tuuut @mdk C'est expliqué ici (StackOverflow sait tout) : https://stackoverflow.com/questions/9490058/why-does-substring-slicing-with-index-out-of-range-work/9490148#9490148
(DIR) Post #AyT1jyVgjUzMpPo7Y8 by bortzmeyer@mastodon.gougere.fr
2025-09-22T14:34:21Z
0 likes, 0 repeats
@tut_tuuut @mdk Également ce point " If i or j is greater than len(s), use len(s). " Donc, t[1:2] lorsque t est une chaine vide est en fait t[0:0]https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range
(DIR) Post #AyT2qEbhtgNqRbAgTo by tut_tuuut@framapiaf.org
2025-09-22T14:47:11Z
0 likes, 0 repeats
@bortzmeyer @mdk ah c'est ce dernier point qui me manquait, je n'avais pas trouvé dans la doc. Donc ce n'est pas accidentel, je suis ravie. :)
(DIR) Post #AyT44BuIpgGQ4v5Wjo by antoinechambertloir@mathstodon.xyz
2025-09-22T15:00:52Z
0 likes, 0 repeats
@bortzmeyer @tut_tuuut @mdk j'aurais volontiers proposé une autre explication, compatible avec la doc mais peut-être pas avec l'implémentation : si i:j signifie les caractères entre la position i (permise) et la position j (exclue), alors le résultat est celui attendu quand il n'y a pas de tels caractères.Par contre, t[i] demande le caractère à la position i, qui peut ne pas exister.