2017-03-14 2 views
-1

私は出力を与える機能を必要とする:結果の出力を取得するにはどうすればよいですか?

1111 
    2222 
     3333 

これは私が関数として得たものである:

def repeatNumber(someNumber): 
    for i in range(0,someNumber): 
     tabString = "\t"*i 
     repeatingString = str(i+1)*4+"\n" 
     finalString = tabString + repeatingString 
     return finalString 

しかし、私はしようとすると、出力は私だけ

1111 

を与えます〜

print(repeatNumber(3)) 
最後には

です。

あなたは、ループの最初iteraionに戻ってきている

+0

'return'機能を終了します。代わりに 'print'ingを試してください –

+0

私はprintを使用すると、文字列の最後にNoneという出力が得られます。@Chris_Rands – aj2929

+0

その後、呼び出しコードからは印刷しません。 –

答えて

0

...私は、文字列に追加する必要があります知っているが、私は一緒に追加するにはどのような文字列(複数可)はかなりよく分かりません。結果を一時変数に保持し、代わりにその結果を返すことができます。このように:

def repeatNumber(someNumber): 
    return_string = '' 
    for i in range(0,someNumber): 
     tabString = "\t"*i 
     repeatingString = str(i+1)*4+"\n" 
     finalString = tabString + repeatingString 
     return_string += finalString 
    return return_string 
+0

ありがとう!私は関数の先頭にreturn_string = ""を置くことを知らなかった! – aj2929

+1

文字列に '+ ='を使うのではなく、あなたが参加するリストを作成する方が良いでしょう。http://stackoverflow.com/questions/3055477/how-slow-is-pythons-string-concatenation-vs-str-参加する –

+0

これを知らなかった!そしてそれはより速いです。 'join'を使うのが理にかなっています。ありがとう – dunder

0
In [9]: def repeatNumber(someNumber): 
      for i in range(0,someNumber): 
       tabString = "\t"*i 
       repeatingString = str(i+1)*4+"\n" 
       finalString = tabString + repeatingString 
       print finalString 

In [10]: repeatNumber(3) 
1111 

    2222 

     3333 
+0

ああうわー!私はまだクラスでIn []のことを学んだことはありませんが、それはとても役に立ちます! @ manvi77 – aj2929

+0

@ aj2929 "In [] thing"というのは、彼らがJupyter Notebook IPython –

関連する問題