0
votes

Fonction de récursion Python, index hors limite

J'essaie d'écrire une fonction de récursivité en Python et après qu'un appel, il lève l'index hors de la liaison. Cependant, je ne suis pas capable de désactiver pourquoi?

Quelqu'un pourrait-il m'aider à comprendre? xxx

erreur: xxx


4 commentaires

Si vous raccourcissez STR mais gardez itérant jusqu'à la longueur de l'original str bien sûr, vous sortirez des limites.


Voulez-vous des permutations ou des combinaisons?


@Deveshkumarsingh permutation. Désolé pour le mauvais nom de méthode.


Dans ce cas, c'est une doublure, vérifiez ma réponse ci-dessous!


4 Réponses :


2
votes

Tout d'abord, renommez votre chaîne et votre char. Maintenant, vous surchargez str () et chr ()

Votre erreur provient du fait qu'une fois que vous avez supprimé les éléments de la chaîne, des index correspondant à ce dernier Les valeurs dans sa vieille longueur ne seront plus disponibles xxx

sorties xxx

comme vous pouvez le voir, index de liste 1 est hors de portée


0 commentaires

0
votes

Regardez ce que vous faites: Considérez une chaîne de 4 caractères. XXX

I STR


0 ABCD 1 ABC 2 AB ... et la prochaine fois que vous essayez d'accéder à str [i] , la chaîne est trop courte.

garder la chaîne d'origine intacte; Envoyez juste le tronqué dans la récursion: xxx

Vous avez toujours des problèmes logiques dans votre programme, mais cela vous permettra de passer à l'étape suivante. Je vous recommande vivement de faire trois choses:

  1. Voir ce charmant Débogou Blog pour aide.
  2. Utilisez une programmation incrémentielle - Écrivez seulement 2-4 lignes à la fois, un petit morceau de code. Assurez-vous qu'ils travaillent avant de continuer. Une partie de la raison pour laquelle vous avez besoin de tant de questions, vous avez introduit plusieurs erreurs dans votre fonction avant de tester. Vous ne pouvez pas facilement isoler la cause du problème lorsque vous avez plusieurs causes en attente de vous mordre
  3. recherche sur la ligne de la manière dont d'autres ont résolu ce problème; Leurs directives seront probablement utiles pour lisser les problèmes restants dans votre code.

0 commentaires

0
votes

Vous n'avez pas besoin du pour ligne. Vous pouvez le supprimer.

il suffit de remplacer le chr = str [i] avec chr = str [0] et renommez vos variables comme indiqué dans les messages précédents ( chr et str ).

Cela fera ce que vous voulez.


0 commentaires

0
votes

Vous pouvez toujours utiliser iTertools.permutations qui est une fonction de python fournie. L'exemple ci-dessous génère des permutations prenant les 4 caractères en compte xxx


0 commentaires