Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21085

【Python】for文の使い方の整理

$
0
0

1.はじめに

私のプログラミングは、MATLABがベースであります。
Pythonを始めたとき、For文の使い方がMATLABと大きく異なったため、大変な時期がありました。
今日は、PythonのFor文の使い方を整理します。

1.1.MatlabでのFor文

形式
for 変数=初期値:増分:最終値
statements
end

必ずfor変数を宣言して、その初期値:最終値を入れる必要があります。

x=ones(1,10);forn=2:6x(n)=2*x(n-1);end

2.PythonでのFor文

形式
for 変数 in リスト(or Tuple, Dictionary等):
statements

Matlabのように、変数の初期値:最終値を宣言するのではなく、リストを宣言することに注意しましょう。この部分の概念が大きく異なります。

2.1.典型的なFor文

リストを作成し、その要素をprintする。

test_list=['one','two','three']foriintest_list:#<-one, two, threeを順序にiに代入する。
print(i)

Result

one
two
three

2.2.多様なFor文

リストの要素がTupleの場合、

a=[(1,2),(3,4),(5,6)]for(first,last)ina:print('first element:',first)print('last element :',last)print('sum of first and last element =',first+last)

Result

first element: 1
last element : 2
sum of first and last element = 3
first element: 3
last element : 4
sum of first and last element = 7
first element: 5
last element : 6
sum of first and last element = 11

2.3.応用

5名の学生のテストを受けたとします。テストスコアが60点を超えた場合は、合格とします。そうでない場合は、不合格とします。テストスコアによって合格・不合格を表示するプログラムを作成します。

score=[90,25,67,45,80] #テストスコア
number=0#学生に付ける番号
formarkinscore:#<- 90,25,67,45,80を順序にmarkに代入する。
number=number+1ifmark>=60:print("{:d} 番目の学生は合格です。".format(number))else:print("{:d} 番目の学生は不合格です。".format(number))

Result

1 番目の学生は合格です。
2 番目の学生は不合格です。
3 番目の学生は合格です。
4 番目の学生は不合格です。
5 番目の学生は合格です。

2.4.よく使うrange()

for文は数字リストを自動に作るrangeという関数とともに使われることが多いです。

ar=range(1,11)%<-1,2,3,4,5,6,7,8,9,10

range()で作られたarは、リストではなくrangeオブジェクトであることに注意しましょう。

type(ar)

Result

range

それでは、for文とrange()を使い、1から10までの和を求めるコードを作成します。

sum=0foriinrange(1,11):sum=sum+iprint(sum)

Result

55

先ほどの60点以上の場合、合格という文章を出力するコードは、下記のように書き換えられます。

score=[90,25,67,45,80]fornumberinrange(len(score)):ifscore[number]>=60:print("{:d} 番目の学生は合格です。".format(number))else:print("{:d} 番目の学生は不合格です。".format(number))

Result

0 番目の学生は合格です。
1 番目の学生は不合格です。
2 番目の学生は合格です。
3 番目の学生は不合格です。
4 番目の学生は合格です。

2.5.リストの中にfor文を入れる

aというリストを作成し、各要素を3倍した結果をresultというリストに格納するコードです。

a=[1,2,3,4]result=[]foryosoina:result.append(yoso*3)print(result)

Result

[3, 6, 9, 12]

これを、リストの中にfor文を入れる方法を使うことで、次のように簡略なコードにすることが可能です。

a=[1,2,3,4]result=[num*3fornumina]

Result

[3, 6, 9, 12]

もし、偶数だけに3倍した場合、次のようにif文を追加すればいいです。

a=[1,2,3,4]result=[num*3fornuminaifnum%2==0]

Result

[6, 12]

3.まとめ

Pythonのfor文の多様な使い方を整理してみました。奥が深いですね。


Viewing all articles
Browse latest Browse all 21085

Trending Articles