05_for文でループを使う
- forとシーケンスの間には、繰り返し変数と呼ばれる変数を置きます。
- ループで実行したい処理は、for文の後にインデントして記述します。
- ループで処理するコードの範囲を、インデントして示す。
- forで始まる行の最後には、コロンを1つ書く。
- 決まった回数のループを実行したい場合は、組み込み関数のrange()を使う。
- range(10)で、0から9のループを実行する。
# coding: utf-8 # In[1]: # for文の使用例 mcz = ['れに', 'かなこ', 'しおり', 'あやか', 'ももか'] for member in mcz: print(member) # In[2]: mcz # In[3]: # 分散を計算する # 標準偏差 = 分散の平方根 # 分散の求め方 """ (1) リストの値と平均との差を二乗して足す (2) 全ての値について、(1)を繰り返す (3) (2)で得た合計を要素数で割る """ # In[11]: monk_fish_team = [158, 157, 163, 157, 145] ################## 平均値を求める ################## # 合計を求める total = sum(monk_fish_team) # 要素数を求める length = len(monk_fish_team) # 平均値を求める mean = total / length # 分散を求めるための変数 variance = 0; ################## 分散を求める ################## for height in monk_fish_team: # リストの値と平均との差を二乗して足す variance += (mean - height)**2 # で得た合計を要素数で割る variance = variance / length # 分散を表示する variance # In[13]: # 平方根 は 2分の1の累乗で求めることができる。 standard_deviation = variance**0.5 standard_deviation # In[ ]: # In[17]: # 別のリストの標準偏差を計算する volleyball_team = [143, 167, 170, 165] total2 = sum(volleyball_team) length2 = len(volleyball_team) ave = total / length variance2 = 0; for height2 in volleyball_team: variance2 += (height2 - ave)**2 variance2 = variance2 / length2 variance2**0.5 # In[18]: # range()関数を使って、決まった回数のループを実行する。 for cnt in range(10): print(cnt) # In[19]: # 複利計算 元金に対して一定の利率をかける処理 # 例 100万円の資金を年間利率5%の投資商品に預けるとする。 savings = 100 for i in range(15): savings += savings*0.05 savings # In[ ]:
04_リストを使う
リストは、複数のデータを並べて管理し、効率的に扱うために使う。
リスト型を定義するには、角カッコ( [~] )を使う。
リストのように複数の要素を持つデータ型シーケンスと呼ぶ。
- リストの参照方法
- リスト名[要素のインデックス]
- リストの要素同士で引き算ができる
- リストの最後の要素を指定する。
- リスト名[-1]
- リストを連結することができる
- +演算子で連結をする。
- リストの要素の置き換え
- =代入演算子を使う。リスト名[インデックス] = ‘何か’
- リストの要素の削除
- del文を使う。 del リスト名[インデックス]
- Pythonのリストにはスライスという機能がある
- スライスとは、リストに入っている要素のうち、連続した複数の要素を指定する記法です。
- スライスの記法。 リスト名[最初の要素のインデックス:最後の要素のインデックス+1]
- スライスは、元のリストは変更されず、元のまま残ります。
- 左側を省略した場合は、最初の要素を指定していることになる。
- 右側を省略した場合は、最後の要素までを指定していることになる。
- リストのリスト(2次元配列)を定義することもできる。
- リストの合計
- 組み込み関数の sum()
- リストの最大値
- 組み込み関数の max()
- リストの最小値
- 組み込み関数の min()
- リストの長さを調べる
- 組み込み関数の len()
# coding: utf-8 # In[1]: tokyo_temps = [15.1, 15.4, 15.2, 15.4, 17.0, 16.9] tokyo_temps # In[6]: get_ipython().magic('matplotlib inline') # 別名を定義して、省略をして使えるようにimport import matplotlib.pyplot as plt # グラフの表示 plt.plot(tokyo_temps) # In[7]: # インデックスを指定して要素を取り出す # リスト名[要素のインデックス] tokyo_temps[0] # In[8]: # リスト要素の引き算 tokyo_temps[5] - tokyo_temps[0] # In[9]: # リストの連結をする e_tokyo_temps = [13.6, 13.5, 14.2, 14.8, 14.8] tokyo_temps2 = e_tokyo_temps + tokyo_temps tokyo_temps2 # In[10]: plt.plot(tokyo_temps2) # In[12]: # 要素を置き換える # リストの定義をする mcz = ['れに', 'あかり', 'かなこ', 'しおり', 'あやか', 'ゆきな'] mcz # 5番目の要素を書き換える。(0番目が存在するため。) mcz[5] = 'ももか' mcz # In[13]: # リストの要素を削除する. # del文を使う。 del mcz[0] mcz # In[14]: # リストのスライス記法 momotamai = mcz[1:3] momotamai # In[15]: # スライスで左側を省略した場合 mcz[:2] # In[16]: # スライスで右側を省略した場合 mcz[1:] # In[23]: # リストのリスト 2次元配列 city_temps = [ [14.8, 14.8, 15.1, 15.4, 15.2, 15.4, 17.0, 16.9] , # 東京 [10.0, 10.4, 11.5, 11.2, 10.9, 10.6, 11.8, 12.2] , # 秋田 [16.0, 15.5, 15.9, 16.4, 15.9, 15.6, 17.5, 17.1] # 熊本 ] city_temps # In[24]: # 秋田の平均気温を表示する city_temps[1] # In[25]: # 平均気温の比較 熊本の2000年と熊本の1920年の比較をする city_temps[2][7] - city_temps[2][0] # In[26]: # 3年の平均気温のグラフを描画する plt.plot(city_temps[0]) plt.plot(city_temps[1]) plt.plot(city_temps[2]) # In[27]: # リストの合計を計算する monk_fish_team = [158, 157, 163, 157, 145] sum(monk_fish_team) # In[28]: # リストの最大値 max(monk_fish_team) # In[29]: # リストの最小値 min(monk_fish_team) # In[30]: # リストの長さを調べる len(monk_fish_team) # In[31]: # 平均値を出力をする monk_sum = sum(monk_fish_team) monk_len = len(monk_fish_team) monk_mean = monk_sum / monk_len monk_mean # In[34]: # 棒グラフを表示する plt.bar([0, 1, 2, 3, 4], monk_fish_team) plt.plot([0, len(monk_fish_team)], [monk_mean, monk_mean], color = 'red') # In[ ]:
03_文字列を使う
文字列を使う
- 文字列を定義するには、ダブルクォーテーション(“〜”), シングルクォーテーション(‘〜’)と言う引用符を使う。PHPと違って、"と'では違いがなさそう。
- 引用符で囲まれている文字列の部分は色付けされている部分は、シンタックスカラーリング
- シングルクォーテーションで、表示しているデータは文字列である
- クォーテーションを3つ連ねると、改行を含む文字列を定義することができる。
- 複合演算子 +=, -=, *=, /=
- 違うデータ型を演算することはできない。(型を揃える。)
- Pythonで型変換をするには、関数を使う。
# coding: utf-8 # In[ ]: spam = "spam" # In[5]: a_lylic = "でもね私のエネルギーは" a_lylic = a_lylic + "すでにインフィニティだよ。" a_lylic # In[6]: a_lylic2 = "ずっと笑顔ばかりを選んで" a_lylic2 += "泣き顔見せるのを迷ってた" a_lylic2 # In[8]: a_lylic = "でもね私のエネルギーは" a_lylic = "a_lylicすでにインフィニティだよ。" a_lylic # In[9]: lylic3 = """強い人になろうとして 弱い僕を封じ込めて 一人ぼっちになった""" lylic3 # In[10]: day = 24 str_day = str(day) date = str_day + '日' date # In[17]: # 数字文字列をint型に変換する。 int('200') # In[16]: # 数字と小数点のみで構成された文字列を、float型に変換する。 float('3.14159265358979') # In[ ]:
02_変数を使う
変数名の付け方
- 数字で始まっていなければどんな文字列もPythonの変数名として使える。(日本語も使える。)
- アルファベット,数字,アンダースコア(_)を組み合わせて作る
- 特別扱いしたい変数を定義する時は、大文字だけの変数名を持つ変数を定義して、定数のように扱う。
- 始めの1文字はアルファベット
- 30個ほど、変数名に使えない単語がある。(予約語)
# coding: utf-8 # In[1]: champernowne = 0.12345678910 # In[2]: champernowne_19 = 0.1234567891011121314 # In[3]: pi = 3.141592 diameter = 12756.274 pi*diameter # In[4]: cal_per_1kg = 7200 cal_per_1minjog = 7.76 min_to_lose1kg = cal_per_1kg/cal_per_1minjog hours_to_lose1kg = min_to_lose1kg/60 hours_to_lose1kg # In[ ]:
01_数値を使った四則演算
# coding: utf-8 # In[1]: 5-5+1+9 # In[2]: 5/5/1+9 # In[3]: 5/5+1*9 # In[4]: 5/5**1+9 # In[5]: 5/5*(1+9) # In[6]: 5/(5/(1+9)) # In[ ]:
インタラクティブシェルでPythonコードを入力 ~みんなのPython第4版~
気づいたこと
- 文字列の掛け算ができる。
- pythonではインデントでブロックを示す。半角スペース4つ
インタラクティブシェルを起動する。
// ターミナルで以下のコマンドを実行する python
計算
1+2+3+4
変数の代入、出力
red = 'yuzuma' red // yuzuma と出力される
文字列の結合
yellow = 'yuzuru' pink = red + yellow print(pink) // yuzumayuzuru と出力される
文字列の掛け算
print(pink*3) // yuzumayuzuruyuzumayuzuruyuzumayuzuru と出力される
turtleモジュールを使う(ライブラリのインポート)
from turtle import * forward(100)
繰り返し
for cnt in range(36): forward(20) left(10) // インデントを入れないで改行すると実行される // pythonではインデントでブロックを示す。
関数の定義
def circle(): for cnt in range(36) forward(20) left(10) circle()