Voici la question écrite plus simplement:
J'essaie d'écrire une fonction qui prend une liste des entiers et des retours réels s'il contient 007 dans l'ordre. La séquence 0, 0, 7 ne doit pas nécessairement apparaître dans une commande consécutive dans la matrice pour être retournée. Par exemple, spy_game ([1,0,2,4,0,5,7]) devrait retourner vrai. P>
mais j'ai besoin de guidage car cela ne fonctionnera pas comme ci-dessous. P >
def spy_game(nums):
for x in range(0,len(nums)):
first_0=nums.index(0)
second_0=nums.index(0, first_0+1)
seven=nums.index(7)
if nums[first_0:second_0+1]!=seven and seven>second_0:
return True
else:
return False
3 Réponses :
.index code> tel que écrit trouvera le même zéro deux fois. .index code> prend un décalage pour commencer à chercher, alors commencez-en à l'une après le premier zéro: first_0 = nums.index(0)
second_0 = nums.index(0,first_0 + 1)
Mark, merci. J'ai révisé le code comme vous l'avez indiqué, puis supprimé 'first_0! = Second_0 et premier_0
Votre logique de base est défectueuse. Vous localisez le premier Au lieu de cela, une fois que vous avez trouvé ce premier Si vous réussissez avec les trois chiffres, vous retournez codage qui reste comme un exercice pour l'étudiant. P> 0 code> deux fois, puis localisez le premier 7 code>. Cela garantit que votre chèque échouera sous la forme First_0 CODE> doit em> être égal à second_0 code>. Vous n'avez rien fait pour répondre aux chiffres étant dans cet ordre. P>
0 code>, vous devez vérifier seul em> le reste em> de la liste pour un autre 0 < / code>. Si vous trouvez que, vous vérifiez la liste après que secondes em> 0 code> Pour voir s'il existe un 7 code> là-bas. P>
true code>, mais renvoyez false code> sur n'importe quel échec. P>
Je ne sais pas ce que vous voulez réaliser exactement. Je pense que vous voulez vérifier si Peut-être que vous voulez faire quelque chose comme ça? p> [0,0,7] code> est une sous-séquence (non consécutive) de numéros code>?
... vous obtenez le même index du poing 0 deux fois ...
[0,0,0,0,0,0,0,0,7] serait-il vrai? [0,1,1,1,1,1,1,1,1,1,1,1]?
Avez-vous fait du débogage du tout?
@Patrick Artner, oui aux deux