ゆずまの○○日記がシンプルでいいと思います!

プログラミングを中心に書いていこうと思ってます。

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[ ]:

Jupyter Notebook を使う

Jupyter Notebook についてのメモ

  • IDEよりも手軽にPythonコードを試せる。
  • 終わったら、ファイルに残すこともできる。

Jupyter Notebook の起動方法

Anaconda Navigator.app をクリック→Jupyter Notebook Launch

%matplotlib inline
import matplotlib.pyplot as plt;
import numpy as np
x = np.linspace(0 , 3*np.pi, 500)
plt.plot(x, np.sin(x**2))

インタラクティブシェルで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()