2017-05-31 12 views
1

私はedXのPythonに関するチュートリアルをしています。私は "NONE"の結果を取り除くことができないために立ち往生しています。誰かがなぜこれが起こっているのか、それを避ける方法を教えてもらえますか?ありがとう。'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) 

結果:私が欲しい

1111 
     2222 
None 

結果は次のとおりです。

1111 
     2222 
+2

「なし」はあなたのコードであり、あなたが投稿したものではありません。 – jordanm

答えて

-1

あなたが関数内で何かを返すされていないので、あなたはなし値を取得しています。何も返さなければ関数は返りません。None valueあなたの関数を呼び出すときにはNoneが出力されます。避けるためにあなたがリターンや歩留まりのステートメントを使用することができているか、私はあなたのようにあなたの関数を使用している推測:

steps(aNum) # just print statement within function 

注:代わりに、コードの下に、この使用の

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. 

上の行にsteps(aNum)が割り当てられていませんしたがって、関数内の文だけを出力します。

+0

これは 'None'と評価されるので' None'をすべて出力します。 'print'を取り除き、' steps(aNum) 'で関数を呼び出すだけです。 –

1

あなたの代わりに、ちょうどまた

steps(2) 

を使用し、あなたはすでにので、カウント変数との不必要な複雑さを持っている

print(steps(2)) 

に(存在しない)関数の戻り値を印刷しなければなりませんループで同じ値のシーケンスを提供するxを持つ。これは簡単です。

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

さようなら!ありがとう!あなたが正しい!私は誤解を持っていた – lloydyu24

+1

@ lloydyu24解決されたら答えを受け入れることを忘れないでください。 –

関連する問題