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

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

06_if文で条件分岐をする

条件に従って処理の内容を分けることを条件分岐と呼ぶ。 - 数値を比較する - 計算の結果を変数に入れて比較する - 関数が結果として返す数値を比較する - 文字列を比較する - == (等しい), != (異なる) - 文字列を検索する - 文字列の中に、特定の文字列が含まれている以下どうかを調べる in演算子 - リストも比較できる. - == , != , in - else文はある - switch文はない。elifで対応する。elseifの省略系。

他に気づいたところ。

# coding: utf-8

# In[1]:

if 2*2*2+2 == 10:
    print('2*2*2+2は10')
if 2+2*2+2 == 10:
    print('2+2*2+2は10')
if (2+2)*2+2 == 10:
    print("(2+2)*2+2は10")


# In[2]:

# 数値を比較する

if 1 == 1:
    print("1番目はTrue")
if 5^(4-4)+9 == 10:
    print("2番目はTrue")
if 2 < len([0, 1, 2]):
    print("3番目はTrue")
if sum([1, 2, 3, 4]) < 10:
    print("4番目はTrue")


# In[3]:

# 文字列を比較する
# == (等しい), != (異なる)

if "AUG" == "AUG" :
    print("1番目はTrue")
if "AUG" == "aug" :
    print("2番目はTrue")
if "あいう" == "あいう":
    print("3番目はTrue")


# In[4]:

# 特定の文字列が含まれているか in演算子

if "GAG" in "AUGACGGAGCUU" :
    print("1番目はTrue")
if "恋と戦いはあらゆることが正当化されるのよ" in "正当化" :
    print("2番目はTrue")
if "stumble" in "A horse may stumble though he has four legs" :
    print("3番目はTrue")


# In[5]:

# リストを比較する
if [1, 2, 3, 4] == [1, 2, 3, 4]:
    print("1番目はTrue")
if [1, 2, 3] == [2, 3] :
    print("2番目はTrue")
if [1, 2, 3] == [ '1', '2', '3']:
    print("3番目はTrue")


# In[6]:

# リスト内の要素を調べる~その1
if 2 in [2, 3, 5, 7, 11]:
    print("1番目はTrue")
if 21 in [13, 17, 19, 23, 29]:
    print("2番目はTrue")
if 'アッサム' in ['ダージリン', 'アッサム', 'オレンジペコ']:
    print("3番目はTrue")


# In[7]:

# リスト内の要素を調べる~その2
if 1 in [0, 1, 2, 3, 4]:
    print("1番目はTrue") 
if [1, 2] in [0, 1, 2, 3, 4]:
    print("2番目はTrue")
if [1, 2] in [0, 1, [1, 2], 3, 4]:

    print("3番目はTrue")


# In[8]:

# ^ は XOR で排他的論理和。優先順位は、 - と + よりも低い。

if 2^3-2+4 == 10:
    print("式1は10")
else :
    print("式1は10にならない")

if 2**3-2+4 == 10:
    print("式2は10")
else :
    print("式2は10にならない")


# In[13]:

2^3


# In[14]:

2^3-2


# In[15]:

2^1


# In[16]:

3-2+4


# In[17]:

2^5


# In[18]:

#  if - else をつかう。

a_year = 2080
if a_year >= 1993:
    if a_year == 1993:
        print(a_year, "年、れに誕生")
    else :
        print(a_year, "年、れに", a_year-1993, "歳")


# In[21]:

# if -elif をつかう

a_year = 2080
if a_year == 1993:
    print(a_year, "年、れに誕生")
elif a_year > 1993:
    print(a_year, "年、れに", a_year-1993, "歳")


# In[22]:

# 素数判定
a_num = 57;

for num in range(2, a_num):
    if a_num % num == 0:
        print (a_num, "は素数ではありません")
        break


# In[ ]:



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))