🐕
【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#を学びます。