Program学習Python

Pythonの基礎②(関数基礎)

Program学習

Python基礎的な使い方について忘れ気味だったので自分ようにメモを残しておきます。

Python関数基礎

関数

・defで関数を定義する
・a:int で引数がint型だと指定している、-> intで戻り値の方を指定している。ただしPython側ではエラーにならずに実行される

num: int = 10
def add_num(a: int, b: int) -> int:
    return a + b
r = add_num(1,3)
print(r)

//結果
4
-------------------------------------
// stringで指定してもエラーにはならない
num: int = 10
def add_num(a: int, b: int) -> int:
    return a + b
r = add_num("1","3")
print(r)

//結果
13

・引数のデフォルト値を設定できる

def color(one="red", two="blue", three="green"):
    print(one)
    print(two)
    print(three)

color(two="yellow")

// 結果
red
yellow
green

・リスト引数で渡す際は注意(参照渡しに注意)
・空のリストやDictをデフォルトに設定する際はNoneを使うこと

def test_func(x, l=[]):
    l.append(x)
    return l
    
r = test_func(100)
print(r)
r = test_func(100)
print(r)

// 結果
[100]
[100, 100]

------------------------------

def test_func(x, l=None):
    if l is None:
        l =[]
    l.append(x)
    return l

r = test_func(100)
print(r)
r = test_func(100)
print(r)

// 結果
[100]
[100]

リスト引数(*args)

・*argsを使うことで引数を全てしていなくても自動的にタプル型で引数としてとれる

def say_something(word,*args):
    print(word)
    for arg in args:
        print(arg)

say_something('Hi','Mike', 'Nancy')
// 結果
Hi
Mike
Nancy
-----------------------------

t = ('Mike', 'Nancy')
say_something('Hi',t)
// 結果
Hi
('Mike', 'Nancy')

-----------------------------
// タプルをアンパッキングして入れる
t = ('Mike', 'Nancy')
say_something('Hi',*t)
// 結果
Hi
Mike
Nancy

キーワード引数(**kwargs)

・キーワード引数(**kwargs)を利用可能

def menu(**kwargs):
    for k,v in kwargs.items():
        print(k,v)

menu(entree='beef', drink='coffee')

// 結果
entree beef
drink coffee
-----------------------------

d = {
    'entree' : 'beef',
    'drink' : 'coffee',
    'dessert' : 'ice'
}
menu(**d)

// 結果
entree beef
drink coffee
dessert ice

・組み合わせてまとめて引数として使える(順番は注意)

def menu(food, *args, **kwargs):
    print(food)
    for arg in args:
        print(arg)
    for k,v in kwargs.items():
        print(k,v)

menu('banana', 'apple', 'orange', entree='beef', drink='coffee')

// 結果
banana
apple
orange
entree beef
drink coffee

Pythonのオススメ勉強方法

私がオススメするPython初心者向けの最初に購入すべき書籍は「シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全です。

シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全

この書籍は実際にシリコンバレーの一流エンジニアとして活躍している酒井潤さんが書いた本です。

内容も初心者から上級者までまとめられており、各Lessonも長すぎずに分かりやすくまとめられているので、初心者の方にもおすすめです。

シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全

今回は以上となります。

コメント