機械学習エンジニアを目指して②(制御構文、関数、クラスについて)

概要


今回はPythonの制御構文や関数について書いていきたいと思います!
制御構文についてはプログラマにとってはお決まりの、

  • 分岐
  • 繰り返し

について触れていきます。

関数については書き方や使い方などを書いていきたいと思います。

制御構文

分岐

  • if文

if文はJavaと同じく分岐をさせたいときに使用します。
ただ、書き方がJavaと少し違います!

if 条件: // ヘッダには「:」が必要
    // 処理(※処理の前に半角スペースが4つ必要!)
elif:
    // 処理
else:
    // 処理

例えばこんな感じです。

val = 'Pocho'
if val == 'Pocho':
    print('私はPochoです')
elif val == 'Poco':
    print('私はPocoです')
else:
    print('私はPochoでもPocoでもありません!')

また、Pythonにも三項演算子があるようです。
書き方はちょっと独特・・

変数 = 条件がTrueの時の値 if 条件  else 条件がFalseの時の値

例えばこんな感じです。

val = 'Pocho'
result = '私はPocho' if val == 'Pocho' else '私はPoco'

という風に書くと、
「私はPocho」という値がresultに代入されます。
真ん中に条件式書くのか・・・

繰り返し

  • for文

まずは、繰り返しで最もよく使われると思われるfor文の説明からしていきます!

for 変数 in イテラブルオブジェクト:
    // 処理

例えばこんな感じです。

for i in range(5):
    print(i)

とすると、
1
2
3
4
5
と表示されます。

またJavaと違い、enumerateという関数を使用すれば、(要素番号,要素)というタプルを返すことも可能です。
例えば・・

for i, name in enumerate(names):
    print('{}番目:{}'.format(i, name)

とすれば、iには要素番号、nameには要素(names)の値が返ってきます。

さらにさらに・・
zipという関数を使うことにより複数のイテラブルオブジェクトを返すことが可能!

numbers = [1, 2, 3]
first_names = ['Pocho', 'Poco', Popo']
last_names = ['Poccho', 'Pococo', 'Popopo']
for number, first_name, last_name in (numbers, first_names, last_names):
    print('{}番目:{}{}さん!')

と書くと、
1番目:PochoPocchoさん!
2番目:PocoPococoさん!
3番目:PopoPopopoさん!
という風に出力されます!これは便利!

関数


次は関数について触れていこうと思います!
書き方はこんな感じ!

def 関数名(引数1, 引数2, 引数3......):
    # 処理
    # 戻り値がある場合はreturn

# 実際コードにしてみると・・
def add(num1, num2):
    return num1 + num2

print(add(3, 5)) # 8が出力される。

また、引数のデフォルト値も設定できます。
デフォルト値を設定すると、引数を渡さなかった場合にデフォルト値が引数として設定されます。

def add(num1, num2 = 0):
    return num1 + num2

print(add(3)) # num2には0が設定され、「3 + 0」の結果で答えが「3」となる。

とりあえず今回はここまで・・・
クラスについては少し長くなりそうなので、また次回書いていこうと思います!!