2017-05-31 2 views
1

Donc je fais un tutoriel sur Python dans edX. Je suis coincé parce que je ne peux pas me débarrasser du résultat "AUCUN". Quelqu'un peut-il me dire pourquoi cela se passe et comment l'éviter? Merci.Pour la boucle retournant 'None'

def steps(aNum): 
    count = 1 
    tabs = " " 
    for x in range(1, aNum + 1): 
     strNum = str(x) * 4 
     numTabs = tabs * count 
     count += 1 
     result = numTabs + strNum 
     print(result) 

Résultat:

1111 
     2222 
None 

Résultat je veux est:

1111 
     2222 
+2

Le None est ailleurs c'est votre code, ce n'est pas dans ce que vous avez posté. – jordanm

Répondre

-1

Vous obtenez la valeur Aucun parce que vous ne retournerez rien en fonction. Lorsque vous ne renvoyez rien, la fonction renvoie Aucune valeur, donc aucune ne sera imprimée lorsque vous appelez votre fonction. Pour éviter est que vous pouvez utiliser le retour ou la déclaration de rendement ou je déduis que vous utilisez votre fonction:

var = steps(aNum) # this will assign None value to var but before assigning None value it has already print your desire values as result 
print(var) # when None is assigned to var it will be printed in output. 

au lieu de cette utilisation ci-dessous le code:

steps(aNum) # just print statement within function 

Note: en ligne au-dessus steps(aNum) n'est pas affecté donc il ne fera qu'imprimer une instruction dans la fonction.

+0

Cela imprime tout simplement le 'None', puisque la fonction évalue' None'. Débarrassez-vous de 'print' et appelez simplement la fonction avec' steps (aNum) '. –

1

Vous devez être imprimer le retour de la fonction (qui n'existe pas) avec

print(steps(2)) 

Au lieu de cela, il suffit d'utiliser

steps(2) 

, vous avez également la complexité inutile avec la variable de comptage depuis que vous avez déjà avoir x fournissant la même séquence de valeurs dans la boucle. C'est plus simple.

def steps(aNum): 
    tabs = " " 
    for x in range(1, aNum + 1): 
     strNum = str(x) * 4 
     numTabs = tabs * x 
     result = numTabs + strNum 
     print(result) 
+0

Okay! Merci! Tu as raison! J'ai eu une idée fausse – lloydyu24

+1

@ lloydyu24 Ne pas oublier d'accepter la réponse si elle est résolue. –