🐕 【Python試験】4章:制御構造ツールvol.2
作成日: 2022/04/05
0

Python3エンジニア認定試験
今回は4章vol.2(後半)です!













引数

関数に情報を与える

#引数の内容を表示
def print_something(something):
    print(something)

#複数の引数を与えることも可能
def plus_a_b(a,b):
    print(a + b)

キーワード引数

名前をつけて呼び出す引数をキーワード引数とよぶ

#引数にデフォルトの値を設定可能
def add_suffix(text, suffix="xxx"):
    print(a + b)

*args,**kwargs

これまで、引数の数を指定して関数を呼び出していたが、
柔軟に(可変の)引数を指定することも可能
*args:ダプル、**kwargsが辞書型として受け取る

def kansu(a, *args, **kwargs):
    print(a, type(a))
    print(args, type(args))
    print(kwargs, type(kwargs))

 →

>>>kansu(1)
1 <class 'int'>
() <class 'tuple'>
{} <class 'dict'>

>>>kansu("a")
a <class 'str'>
() <class 'tuple'>
{} <class 'dict'>

>>>kansu(1,2,3,4)
1 <class 'int'>
(2,3,4) <class 'tuple'>
{} <class 'dict'>

>>>kansu("a","b","c","d")
a <class 'str'>
('b''c''d') <class 'tuple'>
{} <class 'dict'>

>>>kansu(1, x="x", y="y", z="z")
1 <class 'int'>
() <class 'tuple'>
{'x':'x', 'y':'y', 'z':'z'} <class 'dict'>

>>>kansu(1, x=10, y=20, z=30)
1 <class 'int'>
() <class 'tuple'>
{'x':10, 'y':20, 'z':30} <class 'dict'>

>>>kansu(1, 2, 3, 4, x=10, y=20, z=30)
1 <class 'int'>
(2, 3, 4) <class 'tuple'>
{'x':10, 'y':20, 'z':30} <class 'dict'>

lambda

無名関数(名前のない関数)を定義する

#defを使った関数
def plus_one(x):
    return x + 1

#lamda式
plus_one = lamda x: x+1

#lamda式の例1:リストの各要素を2乗
>>>a= [1,2,3,4,5]
>>>list(map(lamda x: x**2, a))
[1,4,9,16,25]
#mapはa全てに適用の意味

#lamda式の例2:キーを指定してソートする
>>>b=[[1,2],[2,1],[0,3]]
>>>b.sort(key=lamda x: x[1])
>>>b
[[2,1],[1,2],[0,3]]
#x[1]:中にある2番目の要素を用いて並び替える

docstring

ドキュメントをコード内に残す
未来の自分や同僚のための情報

def plus_one(x):
"""
xに1足した値を返す
"""
    return x + 1

#Google流:VSCodeでプラグインあり
def plus_one(x):
"""[summary]
Args:
    x([type]):[description]
Returns:
    [type]:[description]
"""
    return x + 1

関数アノテーション

関数注釈。任意で使えるオプション。

#引数や戻り値に入るべき型を記述できる
def plus_one(x: int) -> int:
    return x + 1

#コメントも書ける
def plus_one(x: "x is int") -> int:
    return x + 1

PEP8

PEP: Python Enhancement Proposal
Pythonの機能拡張提案。
Pythonに関する機能を議論した結果がまとめられている資料。
https://peps.python.org/pep-0001/

PEP8: Pythonのコーディング規約。
読みやすいコードを書くためのノウハウ。
EX.
・インデントはスペース4つ
・コロンやセミコロンの直前にスペース不要
・i = i + 1 のようにイコールの前後にはスペースを入れる

black:コーディング規約に沿うように自動で変換するソフト

感想

コメントや規約など、コーディングを便利にする機能??の内容が多かったです。
実際にVS Codeを使ってコーディングする時になったら見返したいです。

出典

データサイエンティストgepuroさん
「Python3エンジニア認定基礎試験 合格への勉強方法」
https://www.youtube.com/watch?v=BUzFIGyIojg&list=PLO-KH_xqEh8FHpIUXWHVJnJLXi6XO7BF


Python・Java・C#を学びます。