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

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

07 関数を使う

  • 関数とは入力に対して出力を返す仕組みのこと。
  • 関数を呼び出すとき
    • 関数名(引数1, 引数2 …)
  • abs
    • 絶対値を求める関数
  • 引数
    • 関数を呼び出すとき、丸カッコの中に数値や文字列のようなデータを入れます
    • 関数に幾つの引数を渡すかも、関数ごとに決まっています。
  • 戻り値
    • 関数が処理した結果、関数から出力するデータのことを言う
    • 関数の中には戻り値がない関数もある。print()
    • def文で定義した関数から戻り値を返すには、return文を使います。
  • 関数を定義するときは、def文を使います。
  • 関数名をつけるコツ
    • 英語の動詞 + 名詞(目的語)
  • ローカル変数
    • 関数の外で引数を使おうとするとエラーになる
    • 関数の外にでると、関数内世界は消えてしまいます。
    • 関数内世界が消えた後は、ローカル変数も一緒に消えて位使えなくなる。
# coding: utf-8

# In[1]:

the_list = [101, 123, 152, 123]

# 合計するための変数を作成しておく
summary = 0;

for item in the_list:
    summary = summary + item;

summary


# In[2]:

sum(the_list)


# In[3]:

abs(10)


# In[4]:

abs(-200)


# In[5]:

int("100")


# In[6]:

int("100", 2)


# In[7]:

# 文字列を16進数の数値に見立てて変換する
int("100", 16)


# In[16]:

# 引数のない関数を定義する
def destiny_tank():
    tanks = ["IV号戦車D型" , "III号戦車J型", "チャーチル MK.VII",
             "MAシャーマン", "P4O重戦車",    "T-34/76"]
    num = input("好きな数字を入力してください。")
    
    # 入力値をリストのインデックスに変換して、長さで割ったあまりを計算している。
    idx = int(num) % len(tanks)
    
    print("あなたの運命の戦車は?")
    print(tanks[idx])

    
destiny_tank();


# In[17]:

# 引数を持つ関数の定義
def destiny_tank2(num):
    tanks = ["IV号戦車D型" , "III号戦車J型", "チャーチル MK.VII",
             "MAシャーマン", "P4O重戦車",    "T-34/76"]
    
    # 入力値をリストのインデックスに変換して、長さで割ったあまりを計算している。
    idx = num % len(tanks)
    
    print("あなたの運命の戦車は?")
    print(tanks[idx])

num_str = input("好きな数字を入力してください:")
num = int(num_str)
destiny_tank2(num);


# In[20]:

from random import randint
num = randint(0, 10)
destiny_tank2(num)


# In[23]:

# 引数を持つ戻り値を返す関数の定義
def destiny_tank3(num):
    tanks = ["IV号戦車D型" , "III号戦車J型", "チャーチル MK.VII",
             "MAシャーマン", "P4O重戦車",    "T-34/76"]
    
    # 入力値をリストのインデックスに変換して、長さで割ったあまりを計算している。
    idx = num % len(tanks)
    
    return tanks[idx]

from random import randint
num  = randint(0, 10)
tank = destiny_tank3(num)
print("今日あなたが乗るべき幸運の戦車は、", tank ,"です")


# In[24]:

def test_func(arg1):
    inner_var = 100
    print(arg1 + inner_year)

test_func(10)

# 関数内で定義した変数はエラーになる
inner_year


# In[28]:

# ローカル変数おw関数の外で使う
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 += ( height-mean)**2

variance = variance / length

volleyball_team = [143, 167, 170, 165]

total2    = sum(volleyball_team)
length2   = len(volleyball_team)
mean2     = total2 / length2
variance2 = 0

for height in volleyball_team:
    variance2 += (height - mean2)**2

# 足した数値を要素数で割って分散を求める
variance2 = variance2 / length2

print(variance)
print(variance2)


# In[30]:

def calc_variance(a_list):
    total    = sum(a_list)
    length   = len(a_list)
    mean     = total / length
    variance = 0
    
    for height in a_list:
        variance += ( height-mean)**2
        
    variance = variance / length
    
    return variance

print ( calc_variance([158, 157, 163, 157, 145]) )
print ( calc_variance([143, 167, 170, 165]) )


# In[31]:

monk_fish_team  = [158, 157, 163, 157, 145]
volleyball_team = [143, 167, 170, 165]
pravda_team     = [127,172,140, 160, 174]

monk_fish_variance  = calc_variance(monk_fish_team)
volleyball_variance = calc_variance(volleyball_team) 
pravda_vairiance    = calc_variance(pravda_team)

print(monk_fish_variance**0.5)
print(volleyball_variance**0.5)
print(pravda_vairiance**0.5)


# In[ ]: