0
votes

Impression d'une liste à l'inverse en Python

Bonjour (c'est ma première question sur le site si excuses si je n'ai pas suivi de règles) Vous trouverez ci-dessous deux codes (en utilisant une boucle) que j'ai écrit pour imprimer une inverse d'une chaîne d'entrée par l'utilisateur. Un code me donne une erreur et l'autre fonctionne bien. Je ne peux pas comprendre pourquoi. Pourquoi la fonction "gamme" semble-t-elle faire la différence? J'apprécie si quelqu'un peut m'aider à comprendre la logique - merci beaucoup

code 1: cela me donne une erreur: strong> p> xxx pre>

* Entrez un mot python P>


TypeError Traceback (dernier appel en dernier) dans 4 5 pour i dans la chaîne: ----> 6 x = chaîne [-1-i] 7 inverse.append (x) 8 TypeError: type (s) d'opérande non pris en charge pour -: 'int' et 'str' p>

Code 2: Cela fonctionne bien strong> p>

string = input('Enter a Word ')
length = len (string)
reverse = []

for i in range(length):
    x=string [-1-i]
    reverse.append(x)

print (reverse)


1 commentaires

Imprimer la valeur de i dans chacune des boucles


3 Réponses :


0
votes

avec pour i dans string , i prendra la valeur de chaque caractère de la chaîne, par exemple. 'h' , 'e' , 'l' , 'l' " si l'entrée était "bonjour".

Lorsque vous appelez string [-1-i] , Python tente de soustraire une chaîne d'un numéro, c'est pourquoi vous obtenez l'erreur Type d'opérande non pris en charge pour - : 'int' et 'str' .


2 commentaires

Bien sûr mais n'est-ce pas l'autre code qui fait la même chose?


@Haseebhaque, no i est 0, 1, 2, ... lorsque vous utilisez la plage.



1
votes

La première boucle que vous faites est de créer une boucle foreach pour votre chaîne, donc votre "I" est essentiellement un caractère. Savez-vous qu'il y a aussi une fonction appelée "inverse ()"?


3 commentaires

Merci non, je ne l'ai pas fait et merci de le pointer. Mais je veux vraiment comprendre pourquoi un code, au-dessus, fonctionne et l'autre ne fait pas


Pouvez-vous s'il vous plaît expliquer la différence entre les fonctions inverse () et inversée ()


Est-ce que cela répond à votre question Stackoverflow.com/Questtions/6810036/...



0
votes

Vous pouvez créer facilement une fonction inverse - xxx


1 commentaires

Merci pour la contribution - Ce que je veux vraiment comprendre, c'est que comment se fait que le deuxième code fonctionne et le premier fait. Les deux suivent à peu près la même logique que pour la fonction de la plage. Merci beaucoup