**繰り返し for
- たとえば, 1から100までの和を求めるには, 次のようなプログラムが考えられます。
sum=0
for i in range(1,101):
sum=sum+i
print(sum)
**他の言語でのforとの違い
-多くの言語では, カウンタとしての変数の宣言の他, 初期値と終了条件, そして毎回の増加分の指定を行ない, ブロック内部の処理が終わったときに終了条件を満たしているかどうかを判定し, 満たしていない場合には増加分を加算してブロックを繰り返すという論理構造になります。
-これに対してPythonでは, range(1,101)という関数で, iに代入すべき数の集合を生成し, そこから順次代入していくという構造をとります。
- BASICでは, FOR...NEXT というブロックでかたまりを表現します。C, Java, JavaScriptなどでは, それを { } のカッコで表現します。
- それに対して Pythonは, インデント(字下げ)で表現します。
-- ブロックの始まる前の行では末尾に「:」がつきます。
-- インデントされている部分がブロックです。
-- 結果として, 行数が減り,簡素な表現でまとめることができます。
***BASICでは
FOR I = 1 TO 100
sum = sum + I
NEXT
PRINT sum
***JavaScriptでは
int sum = 0;
for (int i = 0 ; i < 101 ; i++){
sum = sum + i;
}
***どうなるでしょう(1):BASIC
FOR I = 1 TO 100
sum = sum + I
I = I + 10
NEXT
PRINT sum
***どうなるでしょう(2):Python
sum=0
for i in range(1,101):
sum=sum+i
i = i + 10
print(sum)
***動作の様子を観察しましょう。
sum=0
for i in range(1,101):
print("before",i)
sum=sum+i
i = i + 10
print("after",i)
print("sum = " , sum)
**練習問題
- 1から100000までの和を求めましょう。
- nを入力し, 1からnまでの和を求めましょう。
- 100!を求めましょう。
- nを入力し, n!を求めましょう。
- 1,3,5,..,101を求めましょう。
- nを入力し, 1からn個の奇数の和を求めましょう。