2011-03-29 9 views
0

ここに、本文で提案されている質問があります。カオスヘルプの改良版を書く

Chaosプログラムの改良バージョンを第1章から書くと、ユーザーは2つの初期値と反復回数を入力でき、時間の経過とともに値がどのように変化するかを示すきれいにフォーマットされた表が印刷されます。たとえば、開始値が0.25と10の繰り返しである場合、表は次のようになります。

これは、ヘッダーとして0.25,0.26のインデックスを持つ表であり、2つの列で10回反復される表です。

ここは私の最初のカオスプログラムです。

# File: chaos.py 

def main(): 
    print ("This program illustrates a chaotic function") 
    x=eval (input("enter a number between 0 and 1: ")) 
    for i in range (10): 
     x = 3.9 * x * (1-x) 
     print (x) 

main() 

念頭に置いてこれを取る答えることは今まで私の最初のプログラミングクラスであれば、私の質問は..私は上記の質問を満たすためにそれを変更するにはどうすればよい

してくださいです。

+2

'eval(input())'をしないでください。代わりに 'float(input())'を使用してください。 –

+0

okこれは、プログラムを実行しているときに実際にoutを変更しなかったし、2つの初期値を使用することもできません。 –

答えて

0

あなたはすでに持っている機能を複製するだけです。ユーザーにx値を求めるのではなく、y値も求めます。

ループでは、x値をy値と同じようにする必要があります。印刷するときは、カンマで区切って2つの値(xとy)を一度に印刷できることに注意してください。

また、PiotrLegnicaによると、eval(input(...))の代わりにfloat(input(...))を使うべきです。浮動小数点数(0から1の間)を入力する必要があることがわかっているので、evalを呼び出す必要はありません。 evalを呼び出すことは、与えられた命令を実行するので危険です。それは今は問題ではないかもしれませんが、それを使う習慣を身につけないほうがいいです。

+0

これは非常に有益なおかげさでしたが、プログラムを実行すると読みやすくなるように、どうすればそれらを分けることができるのか分かりますか? –

+0

@kris歌手:あなたは 'print(x、" | "、y)'や同様の単純なものを使うことができます。 –

関連する問題