Chaine de caractères
Résolu
haikei00X
Messages postés
67
Date d'inscription
Statut
Membre
Dernière intervention
-
haikei00X Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
haikei00X Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Chaine de caractères
- Caractères ascii - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractères spéciaux - Guide
- Plus de chaine tv - Guide
- Chaine radio - Télécharger - Médias et Actualité
2 réponses
'lut, ça génère une erreur car, en Python (2 ou 3), les chaines de caractère sont dites immuables: on ne peut pas modifier leur contenu comme ça.
En effet, en mémoire, Python garde un string intacte, et si on le modifie (par ex avec "a"+"b"), Python créé un 2e string en mémoire, résultat de l'opération dessus.
Il est possible de faire ce que tu proposes si on se sert d'un
En Python 3:
from human import idiocy
del idiocy
En effet, en mémoire, Python garde un string intacte, et si on le modifie (par ex avec "a"+"b"), Python créé un 2e string en mémoire, résultat de l'opération dessus.
Il est possible de faire ce que tu proposes si on se sert d'un
bytearray, qui a l'avantage d'être modifiable mais ne gère pas automatiquement les caractères multi-octets (UTF-8/autre); que l'on reconvertit après en string. Toutefois si tu restes collé aux lettres du code ASCII (non étendu), ça marche bien; voici un exemple:
En Python 3:
ch = bytearray("hello", "ascii") ch[0] = ord('b') # Le ord() est nécessaire pour obtenir un entier print(ch.decode("ascii"))Et en Python 2:
ch = bytearray("hello") ch[0] = ord('b') # Le ord() est nécessaire pour obtenir un entier print str(ch)
from human import idiocy
del idiocy