見出し画像

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! = 1
2! = 2
3! = 6
  :
25! = .......000000


 〈解説〉
【実習】(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 グルグルとぐろ巻く 

この記事が気に入ったらサポートをしてみませんか?