aisaka.com

自分が知りたかったこと・日々の思考・共有したいニュースを発信

Python備忘録vol.1[for文,while文]

Pythonスタートブック

現在、AnacondaPythonのプログラミングをしておりますが、非常に処理が遅い...

Pythonのモジュールをうまく使って速いプログラムにしなければならず、孤軍奮闘しております。

 

for文でループ範囲や刻み幅を設定するときに、C++の場合

for( int i = 0 ; i < 100 ; i += 2){ 

 みたいな感じで設定し、同様にして、刻み幅を小数にしたい場合は、

for( double i = 0 ; i < 100 ; i += 0.1){ 

 みたいにしますよね。

 

 ここをPythonでは、

for i in range(0,100,2) :

 とします。 そして、刻み幅小数にしたい場合は、

for i in [ 0.1*x for x in range( 1000 ) ] :

 という風に書きます。これをリスト内包表記といいます。

基本的に、for文は範囲が分かっているときに使います。

この場合であれば、最大値が100と分かっています。

今回挙げた例であれば、小数で刻むことができるのですが、range関数ではループ範囲の上限値に小数が使えません。

なので、そのときはwhileループを使いましょう。

while文は、基本的にループ上限値が定まっていないときに使います。

例えば、変数A,Bの値において

A > B

が成り立つ場合に限ってループを続けるような場合、

while A > B :

とします。while 文ですと、上記の例におけるAを初期値(ループ回数に応じて刻み幅分増加する変数)、Bを上限値にすればよいので、小数が簡単に使えます。

例えば、「初期値:0、上限値:100、刻み幅:0.2」のときは、

A = 0

B = 100

while A < B: 

         A += 0.2

とできます。 上限値に小数を使いたい場合でもB=100にしている部分を

B = 0.00001 

 のようにすればいいだけなので、簡単ですね。どうしても上限値も刻み幅も

小数点刻みにしたいけど、色々調べた小数刻みの仕方がわからないという人は、

この方法を使ったほうが手っ取り早いと思います。

 

質問や意見などございましたら、コメントにお願いします。

それでは。