現在の見出し:6.3節:引数の種類と渡し方
見出し一覧
- 6.3節:引数の種類と渡し方
- - Pythonの基本的な引数
- - デフォルト引数
- - 可変長引数
- - 引数の制限
- - 引数のアンパック
- - 6.3節の演習問題
【PR】『Python』を学べる企業・個人向けのプログラミングコース
Pythonマスター講座第6章 6.3節で学べること
- 位置引数引数はプログラミングで関数やメソッドに渡される値や変数で、関数の動作を柔軟に制御し、コードの再利用性を高めます。とキーワード引数の使い方
- デフォルト引数の設定方法
- 注意すべきミュータブルオブジェクトオブジェクトはプログラムの要素の一つで、データとその操作手段を一つにまとめたものです。の問題
- *argsと**kwargsを使った可変長引数の受け取り方
- 位置専用引数とキーワード専用引数による引数の制限方法
- *演算子演算子は数値や文字列などのデータを扱う際に使用される記号や記述方法です。と**演算子を使った引数のアンパック技法
Pythonの基本的な引数
Pythonの引数とは、関数関数は一定の処理をまとめたプログラムの塊です。に値を渡すための仕組みです。引数には複数の渡し方があり、それぞれ異なる特徴を持っています。
位置引数の使い方
位置引数とは、引数の順序によって値が決まる仕組みのことです。位置引数は「関数定義時のパラメータの順序」と「関数呼び出し時の引数の順序」が一致する必要があります。簡単な例を挙げると、1番目は名前、2番目は年齢、3番目は住所というように位置で役割が決まっています。
使用方法として、関数を呼び出すときに関数名(値1, 値2, 値3)
のように順番通りに値を渡します。例えば、def greet(name, age):
という関数があるとき、greet("田中", 25)
のように呼び出すと、最初の"田中"がnameに、次の25がageに自動的に割り当てられます。短い関数や引数が少ない関数では非常に使いやすく、コードも簡潔に書くことができます。
ただし、引数の順序を間違えると、予期しない結果やエラーが発生する可能性があるため、関数定義を確認してから正しい順序で値を渡すことが重要です。特に似たような型の引数(例:年齢と身長のような数値)がある場合は、順序を間違えやすいので注意が必要です。
def greet_user(name, age):
print(f"こんにちは、{name}さん({age}歳)")
greet_user("田中", 25)
こんにちは、田中さん(25歳)
行数 | コード | 解説 |
---|---|---|
1行目 | def greet_user(name, age): | name(名前)、age(年齢)の2つのパラメータを順番通りに受け取る関数を定義 |
2行目 | print(f"こんにちは、{name}さん({age}歳)") | f文字列文字列は文字の並びを表現するデータ型で、テキストデータを扱うための基本的な構造として広く使用されています。を使って受け取った2つの引数を組み合わせた挨拶文を画面に表示 |
4行目 | greet_user("田中", 25) | 位置引数として1番目に"田中"(名前)、2番目に25(年齢)を順序通りに渡して関数を呼び出し |
キーワード引数の使い方
キーワード引数とは、引数名を明示的に指定して値を渡す方法で、順序に依存しない仕組みのことです。キーワード引数は「パラメータ名=値の形式」で記述することによって、引数の意味が明確になり、どの値がどのパラメータに対応するかを明示できます。
使用方法として、関数を呼び出すときに関数名(パラメータ名=値, パラメータ名=値)
のように書きます。例えば、def create_profile(name, age, city):
という関数があるとき、create_profile(city="大阪", name="佐藤", age=30)
のように書くことで、関数定義での順序とは関係なく値を渡すことができます。引数の順序を覚える必要がなくなるため、間違いを防げます。
特に「引数が多い関数」や「一部の引数のみを指定したい場合」に便利で、コードの可読性も大幅に向上するため実務でよく使用される方法です。また、関数の引数が増えたり変更されたりしても、キーワード引数を使っていれば既存のコードが壊れにくいという利点もあります。
def create_profile(name, age, city):
return f"名前: {name}, 年齢: {age}, 住所: {city}"
result = create_profile(city="大阪", name="佐藤", age=30)
print(result)
名前: 佐藤, 年齢: 30, 住所: 大阪
行数 | コード | 解説 |
---|---|---|
1行目 | def create_profile(name, age, city): | name、age、cityの3つのパラメータを受け取るプロフィール作成関数を定義 |
2行目 | return f"名前: {name}, 年齢: {age}, 住所: {city}" | 受け取った引数の値を使って整理された文字列を作成し、呼び出し元に返す |
4行目 | result = create_profile(city="大阪", name="佐藤", age=30) | キーワード引数を使って順序を気にせずに値を指定し、関数を呼び出して結果をresult変数変数はデータを一時的に記憶しておく場所です。に格納 |
5行目 | print(result) | 関数が返した文字列の結果を画面に表示 |
位置引数とキーワード引数の組み合わせ
位置引数とキーワード引数を組み合わせて使う時は、必ず位置引数を先に、キーワード引数を後に書く必要があります。
使用方法として、関数名(値1, 値2, パラメータ名=値)
のように、最初に位置引数を書き、その後にキーワード引数を続けます。例えば、show_info("田中", 28, country="アメリカ")
のように書くと、"田中"と28は位置引数として順番通りに渡され、country="アメリカ"
はキーワード引数として明示的に指定されます。これにより、必須の情報は簡潔に、オプション的な情報は明確に指定できます。
ただし、キーワード引数を使ったあとに、位置引数を書くことはできません。たとえば、show_info(name="田中", 25)
のように書くとエラーになります。これはPythonのルールで、「キーワード引数を使い始めたら、そのあとはすべてキーワード引数で書かないといけない」と決まっているからです。
def show_info(name, age, country="日本"):
print(f"{name}({age}歳) - {country}")
show_info("山田", 28, country="アメリカ")
山田(28歳) - アメリカ
行数 | コード | 解説 |
---|---|---|
1行目 | def show_info(name, age, country="日本"): | nameとageは必須、countryはデフォルト値付きのオプション引数として関数を定義 |
2行目 | print(f"{name}({age}歳) - {country}") | 渡された3つの値を使って、見やすい形式で画面に表示 |
4行目 | show_info("山田", 28, country="アメリカ") | 最初に位置引数で名前と年齢を渡し、キーワード引数で国を指定 |