2017-02-06 8 views
0

本からのエクササイズに続いて、Pythonとプログラミングに新しく追加されました。WHILE result <value、argument ** 2

プログラムは値をとって、WHILEを使って新しい行ごとに "+1の威力"で印刷を続けなければなりません。

マイコード:

x = 2 

def powerof2_table_while(victim): 
    line=1 
    result=victim**(line) 
    while result < 100: 
""" want to write: 1.: 2 to the power of 1 is 2 
       2.: 2 to the power of 2 is 4 
       3.: 2 to the power of 3 is 8 """ 
    print (line,".:\t", victim, "to the power of\t",line,"\t is", result) 
    line=line+1 
    return line 
    return line 

resultat=powerof2_table_while(x) 
print(resultat) 

の代わりに(ライン)の電源にライン+被害者のテーブルを返すことは、最初の行のみをバック与え、その後、停止します。

私は謙虚に助けを求めることができますか?どうもありがとう!

+0

あなたは複数のリターンを持ち、1つはループ内にあります。したがって、最初の反復で戻ります。あなたは何を返そうとしていたのですか?値または値のリスト?関数が何かを出力すると、戻り値も必要ですか? –

+0

あなたは最初の反復の後にあなたの関数を終了させる 'while'ルックで' return'を持っています。 [なぜPythonでreturn文を使用するのですか?](http://stackoverflow.com/questions/7129285/why-would-you-use-the-return-statement-in-python) –

+0

自分自身に応答してください。このように動作します。結果はwhileループ内になければなりません。とにかく皆さんありがとうございます! – Jewenile

答えて

0

だけでなく、不要な復帰、あなたはまた、結果変数を更新することはありません

result=0 
while result < 100: 
    result=victim**(line) 
する必要があり、あなたは無限ループと間違った出力

result=victim**(line) 
    while result < 100: 

を避けるために、whileループのこの内部を移動する必要があります

+1

ありがとうございます。これは確かに初心者の間違いだった。 – Jewenile

1

ループ内にreturn lineがあります。コードが戻り値にヒットするとすぐに、それが返されます。関数が終了し、ループが継続しないことを意味します。

返品は必要ありません。それを除く。

+0

ちょっとダニエル!私は書式を修正するために自分の投稿を編集しているのを見ました。私はこれについての短い助けを求めることができますので、私の未来の投稿はこれが欠けていて、他のユーザーを邪魔しませんか? – Jewenile

+0

@Jewenileコードブロックの部分を選択し、エディタの '{}'ボタンをクリックするだけです。 –

+1

あなたのコードを入力する場所の横に大きな黄色のヘルプボックスがあります。 –

関連する問題