Python グルグルとぐろ巻く
初めに次のプログラムを入力・実行して、for 文と print 文の動きをつかんでください。
for i in range(5):
print(i)
for i in range(1,10):
print(i,end=",")
if i==5:
print()
〈解説〉しながら〈結果〉を示しましょう。Python では「整数は 0 から始まり」ます。1行目の for 文は「5回転する」ということですが、その間に変数 i は「0 → 1 → 2 → 3 → 4」と変わります。また3行目の for 文の (1,10) は 0 を除いて「1 から 9 までの9回転する」となります。
また print 文は基本的には「プリントした後に改行」します。ですから2行目の print 文では「0 から 4 まで」の5つの数を「縦書き」に表示します。なお print 文の後に「end=""」を付けると表示した後に改行しません。4行目の「end=","」ではカンマで区切って右に右にと書き並べることになります。6行目の print 文の括弧の中は空なので何も書かないように見えますが、実は「改行だけ」はします。5行目と6行目を合わせると「i が5のとき」つまり5を表示した後に改行して、6以降を次の行に表示することになります。ぜひ実際に入力・実行して確認してください。
さらに for 文と print 文の練習を続けましょう。
【実習】
(1) 次のプログラムを少々書き換えて「1 から 100 までの自然数の和」を求めてください。
s = 0
for i in range(100):
s = s+i
print (s)
2行目を ________________ と書き換えても良いし、
3行目を ________________ と書き換えても良いですね。
(2) 奇数の和はいくつになる?
自然数 n を入力して、「$${1+3+5+\:…}$$」と奇数を小さい順に n 個足す
プログラムを作ってください。
《チャレンジ》
「1から25までの自然数の階乗」を求めて、次のように表示してください。
〈解説〉
【実習】(1) 元のコードでは「変数 i は 0 から 99 まで 100 回転」するので、s は最終的に「0 から 99 までの和」$${s=0+1+2+ …+99}$$ になります。
「1 から 100 までの和」にするには、2行目を「for i in range(101):」と書き換えても良いし、もしくは3行目を「s = s+i+1」と書き換えても良い。どちらも $${s=1+2+ …+99+100}$$ になります。
【実習】(2) 「奇数の和は平方数になる」ことを知っている、もしくは数列の和 Σ の計算を知っているなら他の方法もありますが、Python でやるなら次のようなコードを組めます。
n = int(input())
s = 0
for i in range(n):
s = s+2*i+1
print (s)
《チャレンジ》
n=int(input("何の階乗? "))
factorial=1
for i in range(1,n+1):
factorial=factorial*i
print(i,'!=',factorial)
◇ ◇ ◇
〜 Python を使ってみよう 〜
▷ Pythonで加減乗除と+α
▷ もし Python に出くわしたら
▷ Python グルグルとぐろ巻く
この記事が気に入ったらサポートをしてみませんか?