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個目以降の引数は何個でも可 #東京→神戸→長崎→熊本→宮崎