第15回|Pythonの引数とは?関数に値を渡す基本をやさしく解説|はじめてのPython

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析には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)

この場合、nameage の2つが仮引数です。呼び出すときも、必要な数だけ実引数を渡します。

show_profile("高橋", 20)

このコードでは、1つ目の実引数 "高橋"name に入り、2つ目の実引数 20age に入ります。複数の引数を使うときは、順番が重要です。

また、引数名は、その値の意味が分かる名前にします。xa よりも、nameage のような名前のほうが、関数が何を受け取るか分かりやすくなります。

関数にデータを渡す設計では、関数の中で必要な値だけを引数として受け取ることが基本です。関数の外で決まっている値を無理に中で固定するよりも、必要なデータを引数で受け取る形にすると、再利用しやすくなります。

4. サンプルコード

次のコードを見てください。

def show_price(item_name, price):
    print("商品名:", item_name)
    print("価格:", price, "")


show_price("りんご", 120)
show_price("みかん", 150)

このコードでは、show_price 関数が item_nameprice の2つの値を受け取ります。渡す値を変えるだけで、同じ関数を別の商品にも使えます。

5. 実行手順

まず、arguments.py というファイルを作ります。

touch arguments.py

arguments.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_nameprice の2つの値を受け取ります。
  • item_nameprice は仮引数です。
  • 関数の中では、それぞれの商品名と価格を表す値として使われます。
  • show_price("りんご", 120) は、関数を呼び出している部分です。"りんご"120 は実引数です。
  • このとき、"りんご"item_name に入り、120price に入ります。
  • その結果、関数の中の print() が、その値を使って実行されます。
  • show_price("みかん", 150) も同じ関数を使っています。
  • 関数そのものは同じですが、渡す実引数が違うため、表示される内容が変わります。

7. 初学者がつまずきやすい点

  • 仮引数は関数を定義するときに書く
  • 実引数は関数を呼び出すときに渡す
  • 複数の引数を使うときは順番が重要
  • 引数の数は、定義と呼び出しで一致させる必要がある
  • 引数名は値の意味が分かる名前にする

特に、def show_price(item_name, price):item_nameprice は文字列そのものではありません。そこに実際の値が入るための名前です。

また、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 を使って関数から値を返す方法を学びます。表示するだけでなく、計算した結果をあとで使える形にする基本を確認します。

復習してみよう

復習したい方は、こちらもあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次