Pythonを学び始めると、必ず出てくるのが「関数」の考え方です。特にdef
を使った関数の定義は、コードを整理する上で欠かせません。この記事では、Pythonにおける関数の基本から応用までをわかりやすく解説します。さらに、よくあるエラーや注意点も紹介するので、実務や学習に役立つでしょう。
Pythonにおける関数とは?
まずは、そもそも「関数」とは何かを理解しましょう。関数とは、ある処理をひとまとまりにしたものです。同じ処理を繰り返し書くのではなく、関数にまとめて呼び出すことで、コードの可読性や再利用性が大きく向上します。また、エラーを修正するときにも一か所を直せば済むため、メンテナンス性も高まります。
たとえば、何度も「Hello, Python!」と表示したい場合、関数を使わないと同じコードを何度も書く必要があります。しかし、関数を定義しておけば一行で呼び出せるため、とても効率的です。
関数を作る基本構文
Pythonでは、def
キーワードを使って関数を定義します。構文は以下の通りです。
def 関数名(引数):
実行したい処理
これが関数の最もシンプルな書き方です。次に具体例を見てみましょう。
def greet():
print("Hello, Python!")
greet() # Hello, Python! と表示
このように、def
のあとに関数名を書き、処理をインデントして記述します。そして関数名を呼び出すと、その処理が実行されます。これが関数定義の第一歩です。
引数を使って柔軟な関数を作る
次に、引数を活用してみましょう。引数を使うことで、呼び出すたびに異なる値を渡せるようになります。これにより、同じ関数でも多様な動作が可能となります。
def greet(name):
print(f"Hello, {name}!")
greet("Alice")
greet("Bob")
このコードでは、引数name
に異なる値を渡すことで、出力結果が変わります。したがって、関数をより汎用的に活用できるのです。
戻り値を返す関数
関数は処理結果を返すこともできます。これを「戻り値」と呼びます。戻り値があることで、関数を部品のように組み合わせられるようになります。
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 8
return
を使うと、処理結果を呼び出し元に返すことができます。この仕組みを理解すれば、より高度なプログラムが書けるようになるでしょう。
デフォルト引数を設定する
関数では引数にデフォルト値を設定できます。これにより、引数を省略して呼び出すことが可能になります。
def greet(name="Python"):
print(f"Hello, {name}!")
greet() # Hello, Python!
greet("Alice") # Hello, Alice!
このように、デフォルト引数を活用すると使い勝手のよい関数が作れます。特に初心者が関数を汎用化するときに役立つテクニックです。
キーワード引数を利用する
引数には位置で指定する方法と、キーワードを使って指定する方法があります。キーワード引数を使うと、コードの意味がより明確になります。
def introduce(name, age):
print(f"My name is {name} and I am {age} years old.")
introduce(age=25, name="Alice")
このように順番を入れ替えても正しく動作するのが特徴です。特に引数が多い関数では、キーワード引数を使うと読みやすさが向上します。
可変長引数を活用する
関数に渡す引数の数が決まっていない場合、可変長引数を使うと便利です。
def show_numbers(*args):
for num in args:
print(num)
show_numbers(1, 2, 3, 4)
*args
を使うと、複数の値をタプルとして受け取れます。これにより、引数の数が不定でも柔軟に対応可能です。また、辞書型で可変長引数を受け取りたい場合は**kwargs
を使います。
関数を使うメリット
関数を使うことで、次のようなメリットがあります。
- コードの再利用性が高まる
- プログラムの可読性が向上する
- 修正や変更に強くなる
そのため、初心者のうちから関数を正しく書けるようになることは非常に大切です。単純にコードが短くなるだけでなく、エラーの原因を減らすことにもつながります。
応用テクニック:ラムダ式を使った関数
Pythonではlambda
を使って、一行で関数を定義できます。これをラムダ式と呼びます。
square = lambda x: x ** 2
print(square(4)) # 16
ラムダ式は無名関数とも呼ばれ、短い処理をその場で書きたいときに使われます。特にリスト内包表記や関数の引数として利用する場面で便利です。ただし、複雑な処理には不向きなので、あくまで補助的に使うとよいでしょう。
よくあるエラーと注意点
関数を使う際によく起こるエラーを整理しておきましょう。
NameError
:定義していない関数を呼び出したときに発生します。TypeError
:引数の数が合わない場合や、型が違う場合に起こります。- インデントエラー:関数の内部は必ずインデントが必要です。スペースの数に注意しましょう。
これらは初心者が特につまずきやすいポイントです。しかし、一度経験すればすぐに修正できるようになります。したがって、恐れずに試しながら覚えることが大切です。
Python初心者におすすめのサービス
「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、
テックアカデミーがおすすめです。
AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。
さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。
また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富なPython講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。
書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。
また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験やPythonの知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。
こちらのリンクから詳細をチェックしてみてください。
まとめ
Pythonで関数を作るにはdef
を理解することが第一歩です。引数や戻り値、デフォルト引数などを組み合わせれば、柔軟で読みやすいコードが書けます。初心者のうちから関数を使いこなすことで、プログラミングの幅が一気に広がるでしょう。
以下のリンクから、
SESの組込みシステムから色々な不満を持ち、自社WEBサービスへ転職した実体験の記事がありますので、是非読んでみてください。とても喜びます。
SESの組込みシステムから自社WEBサービスのエンジニアに転職した話

コメント