事務屋さんの備忘録

主にプログラミングのことを書いていきます。メモというか備忘録的な感じで。プログラミングといっても、私はプロのエンジニアでも本職のプログラマーでもありません。単なる事務職をやってるサラリーマンで、空いた時間にちょこちょこっとプログラミングしてる程度です。よってこのブログに記載したことが誤っていたり、もっとよい方法がある場合もあると思います。その場合には、ご指摘いただけると嬉しいです。また、このブログを読んで役に立った、なんて方がいらっしゃったら幸いですね。

Python 基礎その7 関数

メモ。関数いろいろ。

#引数が無く、戻り値がある関数
def hello():
    return "Hello!!!"

#関数の実行
msg=hello()
print(msg) #Hello!!!


#Test1
from random import randint

def dice():
    num=randint(1,6) #1~6の乱数を発生させる
    return num

#dice()を5回呼び出す
for i in range(5):
    result=dice() #サイコロをふる dice()関数の呼び出し
    print(result)
    
#2個のサイコロを5回ふった結果の合計
for i in range(5):
    dice1=dice() #1個目サイコロをふる dice()関数の呼び出し
    dice2=dice() #2個目サイコロをふる dice()
    sum=dice1+dice2
    print(f"{dice1}と{dice2}で、合計{sum}")
    

#引数がある関数
#マイルをメートルに直す関数
def mile2meter(mile):
    meter=mile*1609.344
    return meter

distance=mile2meter(20)
print(distance) #32186.88

#三角形の面積
def triangle(base,height):
    area=base * height / 2
    return area

b=15
h=13
v=triangle(b,h) #三角形の面積を求める
print(f"底辺{b}、高さ{h}の三角形の面積は{v:.1f}です。")
#底辺15、高さ13の三角形の面積は97.5です。


#戻り値が無い関数
def dicegame():
    dice1=dice() #1個目サイコロをふる dice()関数の呼び出し
    dice2=dice() #2個目サイコロをふる dice()
    sum=dice1+dice2
    if sum%2==0:
        print(f"{dice1}と{dice2}で、合計{sum}、偶数")
    else:
        print(f"{dice1}と{dice2}で、合計{sum}、奇数")
        
#関数dicegameを5回実行
for i in range(5):
    dicegame()
print("ゲーム終了")


#位置引数をキーワード引数
def price(adult,child):
    return (adult * 1200) + (child * 500)

print(price(1,2)) #1200
print(price(child=2,adult=1)) #1200 順番が違ってもよい

#引数に初期値があるケース
def calc(size,num=6):
    unit_price={"S":120,"M":150,"L":180}
    price=unit_price[size] * num
    return(size, num, price)

a=calc("S",2)
print(f"{a[0]}サイズ、{a[1]}個、{a[2]}円") #Sサイズ、2個、240円

b=calc("M") #個数を省略 6で計算される
print(f"{b[0]}サイズ、{b[1]}個、{b[2]}円") #Mサイズ、6個、900円


#引数の個数を固定しない
#受け取った引数をまとめてタプルで受け取る
def fruit(*args):
    print(args)

fruit() #()  引数が0個の場合
    
fruit("リンゴ","みかん","いちご","バナナ")
#('リンゴ', 'みかん', 'いちご', 'バナナ')  受け取った値はタプルに入っています

def route(start,end,*args):
    #引数からルートの知るリストを作成
    route_list = [start] #スタート地点
    route_list += list(args) #経由地点
    route_list += [end] #ゴール地点
    
    #リストの要素を→で連結した文字列にする
    route_str = "→".join(route_list)
    print(route_str)
    
#route()を試す
start="東京"
end="宮崎"
route(start, end, "神戸","長崎","熊本") #3個目以降の引数は何個でも可
#東京→神戸→長崎→熊本→宮崎