基礎2 繰り返し・条件分岐

コメント

コメントアウトの方法

1行 : 先頭に #

複数行: ””” で囲む

 

1行

#pi:円周率、r:半径、S:円の面積

pi = 3.14

r = 2.0

S = pi * r **2

 

複数行

"""

pi:円周率

r:半径

S:円の面積

"""

pi = 3.14

r = 2.0

S = pi * r **2

 

print関数

表示することで利用者に何かを伝えることができる関数

ターミナルに文字を出力する

デバッグにも使う

 

print("aaa","bbb","ccc")
aaa bbb ccc ccc ccc  \\カンマ区切りはスペース区切りで実行される
print("python", end="")  \\end引数を""としてやると
print("ruby", end="")
pythonruby        \\改行もスペースもなくなる

\\SEP= でセパレーターを指定できる

print("aaa","bbb","ccc", sep="---")
aaa---bbb---ccc

 

 

\\プログラムが始まることを伝える

print("-----start program-----")

out  -----start program-----

 

\\変数の中身を伝える

a = 3

print("aの値は:", a)

out  aの値は: 3

 

\\.format()関数を使うとカンマで区切らずインデックスで表示できるので

 複数の要素をPRINTするのに便利

 

b = 4

print("aの値は{0},bの値は{1}".format(a,b))

out  aの値は3,bの値は4

 

\\ \t は特殊文字でTabを表す

print("a\tb")

out  a b

 

\\  \n は改行

print("a\nb")

a

b

 

実践編

#改行\nを入れると1行空いて見やすい

print("**プログラムを開始します**\n")  

 

#変数の要素数を表示

print("スコアは", len(scores), "人分あります")  

 

#平均値の計算

ave = sum(scores) / len(scores)

 

#平均値を出力

print("スコアの平均:", ave)

 

#各スコア頻度の出力。ここは繰り返しの表現を学ぶともう少し短く書ける

print("5のスコアの人数は:", scores.count(5))

print("4のスコアの人数は:", scores.count(4))

print("3のスコアの人数は:", scores.count(3))

print("2のスコアの人数は:", scores.count(2))

print("1のスコアの人数は:", scores.count(1))

 

 

#これも改行できる

print("")

 

#終わりも表現する

print("**プログラムを終了します**")

 

INPUT関数

ユーザからの入力を受け取るための関数

文字列型(str型)で受け取るので、そのままでは計算できないのでINT関数を併用する

 

 

 

例えば半径を与えて円の面積を求めるなどのプログラム

 

r = input("input radius: ")

input radius: 3.0      3.0を代入

 

input関数で代入すると文字列になる。

r  out '3.0'

type(r)  out str

 

少数として代入する

r=float(input("input radius: "))

input radius: 3.0

 

 

条件分岐

比較演算子

score = 60  #60点を代入

 

score >= 60   #60点以上か?

True

 

score > 60  #60点を超えているか?

False

 

score == 60  #60点ちょうどか? =が1つだと代入

True

 

論理演算子

#60以上で、かつ 偶数

score >= 60 and score % 2 == 0  

True

 

#60以上で、かつ 奇数

score >= 60 and score % 2 == 1

False

 

#60以上 もしくは 奇数

score >= 60 or score % 2 == 1

True

 

#60ではない(否定演算子)

not score == 60

False

 

IF文

#変数が偶数かどうかを確認するプログラム

sample_num = 8  

 

if sample_num % 2 == 0:    #もし偶数なら

    print(sample_num,"is even.") #これを表示

else:             #でなければ

    pass            #何もしない

 

 

#elif を使ってもう一つ分岐させる

if sample_num % 2 == 0:    #もし偶数なら

    print(sample_num,"is even.") #これを表示

elif sample_num == 7:     #もし7なら

    print("This is a lucky number.") #これを表示

else:             #でなければ

    pass            #何もしない

 

 

 

繰り返し(forループ)

#繰り返しを使わないで0から5までを表示する方法

print(0)

print(1)

print(2)

print(3)

print(4)

print(5)     

#100までだったら大変

 

#リストに代入

num_list = [0,1,2,3,4,5]

 

for i in num_list:  #for文 i にnum_listを1つずつ入れて

    print(i)     #表示する

out

0

1

2

3

4

5

 

#RANGE関数

for i in range(6):    #インデックス0~6までを i に代入

    print(i)    #1つずつ表示する

out

0

1

2

3

4

 

for i in range(1,6):    #始まりのインデックス引数を追加すると、1~6の手前までをi に代入

    print(i)    #1つずつ表示する

out

1

2

3

4

5

 

 

for i in range(3,12,2):  #始まりインデックスと終わりインデックス、

          #さらに2つおきという引数を追加すると、

    print(i)   

out        #3から始まり12の手前までを2おきに表示する

3

5

7

9

11

 

enumerate

forループの発展版

 

#サブジェクトリストに科目名を入れる

subject_list = ["Japanese","English","Math","Science","Society"]

 

#forループで出力すると

for i in subject_list:

    print(i)

#こうなる

Japanese

English

Math

Science

Society

 

#通し番号を振るためにenumerateを使う

for i,j in enumerate(subject_list):

    print(i,j)

#通し番号付きで表示される

0 Japanese

1 English

2 Math

3 Science

4 Society

 

continue    or    break

#ある条件のとき、プログラムを続けるか(Continue)

#プログラムを終了するか(Break)

 

Continue

for i in range(10):   #i に10までを代入

    if i % 2 == 0:   #i が偶数なら

        continue    #iプログラムを続ける

    else:       #iが偶数でなかったら

        print(i)      #プリントする

 

1    #奇数らがプリントされた

3

5

7

9

 

Break

for i in range(10):   #i に10までを代入

    if i >4:       #i が4より大きいなら

        break      #プログラムを終了する

    else:       #でなければ

        print(i)     #プリントする

 

0

1

2

3

4    #4までがプリントされた