Si vous devez "inverser une chaîne de style C en Python", je pense que le résultat final doit également être une chaîne de style c.
Voilà comment je comprendrais la question, mais les réponses ci-dessus ne pas soutenir cela.
Voir la séance interactive ci-dessous:
>>>
>>> original = "abc\0"
>>> finish_correct = "cba\0"
>>> original
'abc\x00'
>>> finish_correct
'cba\x00'
>>>
>>> answer = original[:-1] # remove final null
>>> answer = answer[::-1] # reverse string
>>> # Extended slice syntax: [begin:end:step]
>>> # So, [::-1] means take whole string, but in reverse.
>>> answer
'cba'
>>> answer = answer + "\0"
>>> answer
'cba\x00'
>>> answer == finish_correct
True
A noter également, les chaînes Python sont immuables. Cela signifie qu'ils ne peuvent jamais être changés. Vous pouvez créer de nouvelles chaînes affectées au même nom de variable, mais l'image en mémoire d'une chaîne donnée ne changera jamais. Ainsi, la notion de "renverser une chaîne en place" ne peut pas arriver en Python.
Espérons que cela aide. Si oui, veuillez voter et accepter la réponse. Merci. :-)
Quelle est votre définition d'une "chaîne de style C" en Python? Une chaîne Python avec un '\ x00' final? Ou quelque chose qui vient d'une extension C? –