第5回目 For ループ

ページ名:第5回目 For ループ

このページの変更記録

  • 08/01 09:09 公開
  • 08/01 09:15 訂正
  • 08/01 12:19 サンプルプログラムに行が余分に空いて表示されると書く
  • 08/01 12:54 用語に,「ブロック」を追加
  • 08/20 17:41 「行を変えない」を「改行せずに」と修正

第5回課題実施報告の締め切りは,8/6 です。
(締め切りに遅れても受付はします)


課題報告メールの件名は
A-303xxxx-05 名前(漢字名がのぞましい)
のように,してください。名前以外は,必ず,半角文字を使用してください。
最初は,A or B で,クラス(A, B は,大文字で半角文字を守ること)
次の数字は,学生番号(y303xxxx) なら,303xxxx の7桁とすること
最後は,報告する授業の回数です。
間の - は,半角のマイナス記号です。
応用編に入ったら報告するかしないかは,自由です。ただし,最終課題の報告は必須です。



教科書『Python Pocket Reference』
⇒ 教科書 p.数字,と書いてあれば,そこをみて,印をつけておくことをおすすめ。
この講義では,自分のために役立つプログラムを作成できるようにする。料理でいうと,自炊ができるレベルを目指す。


初期化プログラム

Python の動かし方
講義では,Jupyter Notebook を利用する。以下を見ておくとよい。
これでわかる!!Jupyter Notebook超入門(16分)@Youtube



#初期化プログラム。動作確認を含めて,プログラム作成のとき1度実行しておく
#今回は,必要なし
# 課題提出するときは,初期化プログラムをつける必要なし


for ループ,for 文

⇒ 教科書 p.80
英語で,for three days, と書けば,3日間,の意味です。
3日間だけ,早起きをすると表示するプログラムは



for i in range(3):

   print(i, '日目早起きをする')


コンピュータの世界では,数字は,1 かでなく,0 から始りまる。最初の日は,0 日目となる。
早起きだけなく,やることを増やすと



for i in range(3): #下の3行をブロックといいます。

   print(i, '日目早起きをする') #左側に段つけが必要です。
   print(' 早寝もする')        #段つけをインデントといいます。
   print(' 暴飲暴食もしない')  #for から,ここまで for 文といいます。


数字の合計を計算する


# 0 から 10 の数字を合計する
s = 0 #合計値を最初は,ゼロとしておく
for i in range(11): # range( )の中は,10 でなく 11 に注目(以下,10+1 のように書く)

   print(i, 'を 足し込む')
   s = s + i #プログラム独自の書き方,s に i を足し込む

s


s = s + 1 は,プログラム独自の書き方である。今の s に +1 を加えて,新しい s にする。= は,等号の意味で使わず,代入の意味で使う。


for の指定の仕方


# for は,開始,終わり,間隔,も指定できます。
#
# 2 から 10 まで,偶数のみ合計する
s = 0
for i in range(2, 10 + 1, 2): # 10 + 1 なのは,10 も実行したいから。

   print(i, 'を足し込む')
   s = s + i

s



#指定する数字は,マイナスも可能
# 99, 98, 97, 96, 95 の合計を出す
s = 0
for i in range(99, 95-1, -1):

    #改行せずに,後ろに', '付きで,表示していく
   print(i, end = ', ')
   s = s + i

print() #行をかえる
print(s)


例題

1 から n まで数字を合計するプログラムを作成しなさい。
サンプルプログラムは,ここの表示システムのくせで,行が無駄に空いてます。本来なら,1行あければ十分です。


#データ用意
n = 10


# 1 から n の数字を合計する
s = 0
for i in range(n + 1):

   #改行せずに,後ろに', '付きで,表示していく
   print(i, end = ', ') 
   s = s + i

#確認
print(s)


課題

例を参考に,1 から n までの奇数のみを合計するプログラムを作成しななさい。「データ用意」は,n = 11 としてください。


課題報告は

  • 課題を実施した感想,あれば質問

それに加えて


今回やってみた感想と「for ループを理解した。」と書き
試したプログラムも書いてください。


(投稿された他の学生のものはコピーして修正しないこと。これをやると伝言ゲームのようにだんだんおかしなプログラムになる)



登場した用語

  • インデント
  • for 文 if statement ⇒ 教科書 p.80
  • ブロック

質問と返答

講義への質問は,suehiro3721p@gmail.com まで


講義メモ(先生のための覚え書き)