Startup Data scientist Blog

データ分析系のテック情報を発信します

pythonを使ったクラスの設定

defを使用することで関数の定義を行うことが出来ます。

def say_hello():
    print('Hello world.')
   
say_hello()

 

Output

Hello world.

 

呼び出しの位置を間違えるとエラーとなる。

say_hello()

def say_hello():
    print('Hello world.')

 

Output

NameError: name 'say_hello' is not defined

 

 

引数を受け取った場合

def say_hello(name):
    print(f'Hello {name}')
   
say_hello('John')

 

Output

Hello John

 

引数がなかった場合

def say_hello(name):
    print(f'Hello {name}')
   
say_hello()

 

Output

TypeError: say_hello() missing 1 required positional argument: 'name'

 

 

引数を省略するようにclassを設定する場合

def say_hello(name='Pam'):
    print(f'Hello {name}')
   
say_hello()
say_hello('John')

 

Output

Hello Pam
Hello John

 

複数の入力パラメータ―を変更した場合

def say_hello(name='Pam', greeting=None):
    if greeting == None:
        print(f'Hello {name}')
    else:
        print(f'{greeting} {name}')

say_hello()
say_hello('John')
say_hello(greeting='Hi')
say_hello('John', 'Hi')

名前と挨拶の2つのパラメーター調整を可能にする基本的なコードです。

Noneは何もないという意味です。

 

Output

Hello Pam
Hello John
Hi Pam
Hi John

 

値を返してくれるようなclassを設定する

def add_two_numbers(x, y):
    return x + y

add_two_numbers(4, 6)
result = add_two_numbers(5, 7)
print(result)

add_two_numbers(4, 6)部分は無視され、その下のresultで計算が行われています。

 

Output

12

 

 

リストを返してくれるような関数を設計する

def create_deck():
    suits = ["Hearts", "Spades", "Clubs", "Diamonds"]
    ranks = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen",
"King", "Ace"]
    deck = []
   
    for suit in suits:
        for rank in ranks:
            deck.append(f'{rank} {suit}')
           
    return deck

my_deck = create_deck()
print(len(my_deck))

 

Output

52