2017-09-17 5 views
-1

Une question de mon devoir m'oblige à écrire une fonction qui itère à travers une liste d'entrée de tuples en utilisant une boucle while pour ensuite calculer combien de jours il a fallu pour atteindre un jalon spécifique. J'ai fait une partie mais je suis également nécessaire pour que ma fonction renvoie None si la liste d'entrée est vide. Le problème est que je suis seulement autorisé à avoir une déclaration de retour dans mon code qui est où je suis coincé. Comment puis-je modifier mon code pour l'ajouter dans cette fonctionnalité?Python Liste vide de tuples

def days_to_reach_n_steps(step_records, n): 
    """DOCSTRING""" 
    total_steps = 0 
    counter = 0 
    while total_steps < n: 
     total_steps = total_steps + step_records[counter][1] 
     counter = counter + 1 
    return(counter) here 

Répondre

1

Essayez cette

def days_to_reach_n_steps(step_records, n): 
    """DOCSTRING""" 
    total_steps = 0 
    counter = 0 
    if len(step_records)>0: 
     while total_steps < n: 
      if(counter <len(step_records): 
       total_steps = total_steps + step_records[counter][1] 
       counter = counter + 1 
      else: 
       counter = "Your Message" 
    return(counter if counter!=0 else None) 
+0

Désolé j'ai oublié de mentionner que je l'ai déjà essayé, mais eu une erreur disant 'builtins.IndexError: liste des index hors de portée. Je pense que cette erreur pourrait provenir de mes 'total_steps = total_steps + step_records [compteur] [1]'. Peut-être que cette ligne ne permet pas l'entrée de listes vides? D'autres idées? –

+0

pourquoi n'utilisez-vous pas pour la boucle, cette erreur est parce que vous accédez à un élément dans la liste, quand la liste est vide –

+0

Ouais en utilisant une boucle for serait plus facile mais cette section de l'affectation est sur les boucles alors je suis forcé exclure pour les boucles, malheureusement. –