本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第15回|Pythonの引数とは?関数に値を渡す基本をやさしく解説|はじめてのPython

はじめてのPython | 第15回
1. はじめに
この回では、引数を使って関数に値を渡す方法を学びます。前回は、def を使って関数を定義し、同じ処理をまとめて呼び出す基本を確認しました。
ただし、前回の関数は毎回同じ処理しかできませんでした。関数に値を渡せるようになると、同じ関数を使いながら、渡した値に応じて処理を変えられます。
2. この回で学ぶこと
- 引数とは何か
- 仮引数と実引数の違い
- 複数の引数を使う方法
- 引数名の付け方
- 関数にデータを渡す設計の基本
3. 概念の説明
引数は、関数に渡す値のことです。関数の外にあるデータを、関数の中で使いたいときに引数を使います。
たとえば、名前を表示する関数を考えます。
def greet(name):
print("こんにちは")
print(name)def greet(name): の name は、関数を定義するときに受け取る側として書いている名前です。このように、関数の定義で使う引数を仮引数と呼びます。
一方で、実際に関数を呼び出すときに渡す値を実引数と呼びます。
def greet(name):
print("こんにちは")
print(name)
greet("田中")このコードでは、name が仮引数で、"田中" が実引数です。関数が呼び出されると、実引数の値が仮引数に入り、関数の中で使えるようになります。
実行結果は次のようになります。
こんにちは
田中引数を使うと、同じ関数を別の値で何度も使えます。
def greet(name):
print("こんにちは")
print(name)
greet("田中")
greet("佐藤")この結果は次のようになります。
こんにちは
田中
こんにちは
佐藤関数には、複数の引数を渡すこともできます。
def show_profile(name, age):
print("名前:", name)
print("年齢:", age)この場合、name と age の2つが仮引数です。呼び出すときも、必要な数だけ実引数を渡します。
show_profile("高橋", 20)このコードでは、1つ目の実引数 "高橋" が name に入り、2つ目の実引数 20 が age に入ります。複数の引数を使うときは、順番が重要です。
また、引数名は、その値の意味が分かる名前にします。x や a よりも、name や age のような名前のほうが、関数が何を受け取るか分かりやすくなります。
関数にデータを渡す設計では、関数の中で必要な値だけを引数として受け取ることが基本です。関数の外で決まっている値を無理に中で固定するよりも、必要なデータを引数で受け取る形にすると、再利用しやすくなります。
4. サンプルコード
次のコードを見てください。
def show_price(item_name, price):
print("商品名:", item_name)
print("価格:", price, "円")
show_price("りんご", 120)
show_price("みかん", 150)このコードでは、show_price 関数が item_name と price の2つの値を受け取ります。渡す値を変えるだけで、同じ関数を別の商品にも使えます。
5. 実行手順
まず、arguments.py というファイルを作ります。
touch arguments.pyarguments.py をエディターで開き、次のコードを書いて保存します。
def show_price(item_name, price):
print("商品名:", item_name)
print("価格:", price, "円")
show_price("りんご", 120)
show_price("みかん", 150)保存したら、ターミナルで次のコマンドを実行します。
python3 arguments.py実行結果は次のようになります。
商品名: りんご
価格: 120 円
商品名: みかん
価格: 150 円6. コードの読み方
def show_price(item_name, price):は、show_priceという関数を定義しています。- この関数は、
item_nameとpriceの2つの値を受け取ります。 item_nameとpriceは仮引数です。- 関数の中では、それぞれの商品名と価格を表す値として使われます。
show_price("りんご", 120)は、関数を呼び出している部分です。"りんご"と120は実引数です。- このとき、
"りんご"がitem_nameに入り、120がpriceに入ります。 - その結果、関数の中の
print()が、その値を使って実行されます。 show_price("みかん", 150)も同じ関数を使っています。- 関数そのものは同じですが、渡す実引数が違うため、表示される内容が変わります。
7. 初学者がつまずきやすい点
- 仮引数は関数を定義するときに書く
- 実引数は関数を呼び出すときに渡す
- 複数の引数を使うときは順番が重要
- 引数の数は、定義と呼び出しで一致させる必要がある
- 引数名は値の意味が分かる名前にする
特に、def show_price(item_name, price): の item_name と price は文字列そのものではありません。そこに実際の値が入るための名前です。
また、show_price(120, "りんご") のように順番を逆にすると、商品名と価格が入れ替わってしまいます。
8. よくあるエラー
1つ目は、必要な引数を渡していない場合です。
TypeError: show_price() missing 1 required positional argument: 'price'たとえば次のような書き方です。
def show_price(item_name, price):
print("商品名:", item_name)
print("価格:", price, "円")
show_price("りんご")show_price は2つの引数を必要としているのに、1つしか渡していないためエラーになります。
2つ目は、引数の数が多すぎる場合です。
TypeError: show_price() takes 2 positional arguments but 3 were givenたとえば次のような書き方です。
def show_price(item_name, price):
print("商品名:", item_name)
print("価格:", price, "円")
show_price("りんご", 120, 5)定義した数より多い実引数を渡すことはできません。
3つ目は、関数の中で引数名を間違えた場合です。
NameError: name 'prcie' is not definedたとえば次のような書き方です。
def show_price(item_name, price):
print("商品名:", item_name)
print("価格:", prcie, "円")price と書くべき場所で prcie と書いているため、Python はその名前を見つけられません。
9. 練習用コード
次のコードを practice_arguments.py として保存して実行してください。
def show_score(name, score):
print("名前:", name)
print("点数:", score)
show_score("山田", 80)
show_score("中村", 95)実行したあとで、誰の点数が表示されているかを確認してください。
余裕があれば、3つ目の仮引数 subject を追加して、教科名も表示する形に変更してください。
10. この回で理解しておくこと
- 引数は関数に渡す値
- 仮引数は定義するときの名前
- 実引数は呼び出すときに渡す実際の値
- 複数の引数を使うときは数と順番が重要
- 関数は必要なデータを引数で受け取る形にすると再利用しやすい
11. まとめ
今回は、引数を使って関数に値を渡す方法を確認しました。引数を使うと、同じ関数でも渡す値に応じて動きを変えられます。
仮引数と実引数の違い、複数の引数の順番、分かりやすい引数名の付け方は、今後も重要です。関数を作るときは、その関数に必要なデータを引数で受け取る形を意識してください。
12. 次回予告
次回は、return を使って関数から値を返す方法を学びます。表示するだけでなく、計算した結果をあとで使える形にする基本を確認します。
復習してみよう
復習したい方は、こちらもあわせてご覧ください。












