0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python初心者が仮引数と実引数で迷子になったけど解決した話

Last updated at Posted at 2025-03-30

わからなかったこと

仮引数と実引数の各役割と関係性
(仮引数nameと、関数を呼び出す際の引数player_nameがなぜ一致するのか)

仮引数と実引数とは?

  • 仮引数とは
    関数を定義するときに使う変数の名前のこと
    実際に関数を呼び出すときに受け取る「器」のような役割
  • 実引数とは
    実際に関数を呼び出すときに渡す値のこと

それらの関係性は?

  • 仮引数は実引数を受け入れることができる変数 (器のようなもの)
  • 実引数は、関数の実行時に渡すことのできる変数もしくは値

コードで確認

def print_hand(hand, name='ゲスト'):  # name が仮引数
    print(name + '' + hand + 'を出しました')

player_name = input('名前を入力してください:')

if player_name == '':
    print_hand('グー')  # 実引数を1つだけ渡す → 仮引数name にはデフォルト値の 'ゲスト' が入る
else:
    print_hand('グー', player_name)  # 実引数を2つ渡す → 仮引数name には 実引数player_name の値が入る

解説

~nameとplayer_nameが一致する理由~

  1. 関数を定義するとき(仮引数)
def print_hand(hand, name='ゲスト'):
    ここでの name は仮引数で、デフォルト引数値として 'ゲスト' が設定されている。
  2. 関数を呼び出すとき(実引数)
print_hand('グー', player_name)
    このとき、player_name の値が 上記1.のname に代入される。

🔽上のPythonコードを日本語で書いてみるとこんな感じ!🔽

# そもそもname は仮引数である
if 引数が指定されている:
	呼び出された関数内で参照される
else:
	呼び出された関数内で参照できる引数がないため仮引数の初期値が参照される
	ただし初期値がない場合はコードを実行できない

実際のコードの流れ

  1. ユーザーが名前を入力する
  2. 名前が入力されない(空文字)の場合:
    実引数がないため、name='ゲスト' が使われる
  3. 名前が入力された場合:
    player_name が実引数として使われ、name に代入される

まとめ 〜今回わからなかったことの解決のポイント〜

  • そもそもname = player_nameという定義付けが行われたわけではない。
    nameとplayer_nameは、ある関数の中での仮引数と実引数という関係性である。
  • 関数を呼び出すときに実引数を渡すと、その値が仮引数に代入される。
  • 実引数を渡さない場合、デフォルト引数値があるときはそれが参照される。
    ただし、デフォルト引数値がないときはエラーになり、コードが実行されない。

キーワード:デフォルト引数値、仮引数、実引数

参照

4. その他の制御フローツール — Python 3.13.2 ドキュメント

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?