ブログ

  • 【初心者向け】Pythonの関数(def)の使い方 — 作り方・引数・戻り値をやさしく解説

    公開日: 2025-10-31|更新日: 2025-10-31

    関数はプログラムを整理し、再利用性を高める重要な仕組みです。この記事では、
    def を使った関数定義の基本から、
    引数・戻り値・デフォルト引数・スコープまで、初心者向けにやさしく解説します。
    コピペで動くサンプルと練習問題付き。

    1. 関数とは?

    関数は「名前付きの処理ブロック」です。何度も使う処理をまとめておくことで、コードが読みやすく、保守しやすくなります。

    例:同じ計算を何度も書かずに、関数名を呼び出すだけで処理できる。

    2. 関数の定義(基本)

    関数は def 関数名(引数): の形で定義します。定義後、関数名() で呼び出します。

    # 基本形
    def hello():
        print("Hello, Python!")
    
    hello()  # 呼び出し

    出力:

    Hello, Python!

    3. 引数(位置引数・キーワード引数)

    関数に値を渡す方法には位置引数とキーワード引数があります。

    位置引数

    def add(a, b):
        print(a + b)
    
    add(2, 3)  # 5

    キーワード引数

    def greet(name, message):
        print(f"{name}さん、{message}")
    
    greet(name="太郎", message="こんにちは")

    4. デフォルト引数と可変長引数

    デフォルト引数

    def greet(name="ゲスト"):
        print(f"ようこそ、{name}さん!")
    
    greet()         # デフォルトを使う
    greet("花子")   # 引数を渡す

    可変長引数(*args, **kwargs)

    def func(*args, **kwargs):
        print("args:", args)
        print("kwargs:", kwargs)
    
    func(1, 2, a=3, b=4)

    出力:

    args: (1, 2)
    kwargs: {'a': 3, 'b': 4}

    5. 戻り値(return)の使い方

    関数は結果を返すことができます。return で値を返し、呼び出し側で受け取ります。

    def square(x):
        return x * x
    
    result = square(5)
    print(result)  # 25

    注意:return がない関数は None を返します。

    6. 変数のスコープ(localとglobal)

    関数内で定義した変数は基本的にローカル(その関数の中だけで有効)です。外側の変数を変更したい場合は注意が必要です。

    x = 10
    
    def foo():
        x = 5  # これはローカル変数
        print("inside:", x)
    
    foo()
    print("outside:", x)

    出力:

    inside: 5
    outside: 10

    どうしてもグローバル変数を関数内で変更したい場合は global を使いますが、可読性が下がるので注意。

    7. lambda(無名関数)とは

    短い関数をその場で作るときに使います。通常は def を使う方が分かりやすいですが、簡単な処理のときに便利です。

    # lambda の例
    square = lambda x: x * x
    print(square(4))  # 16
    
    # map と組み合わせる例
    nums = [1, 2, 3]
    squared = list(map(lambda x: x*x, nums))
    print(squared)  # [1, 4, 9]

    8. 練習問題(解答付き)

    問題1

    引数で受け取った数値のリストの合計を返す関数 sum_list を作ってください。

    解答(クリックで表示)
    def sum_list(nums):
        total = 0
        for n in nums:
            total += n
        return total
    
    print(sum_list([1,2,3,4]))  # 10

    問題2

    2つの引数(名前と年齢)を受け取り、挨拶文を返す関数を作ってください(年齢はデフォルトで0にする)。

    解答(クリックで表示)
    def greet(name, age=0):
        return f"{name}さんは{age}歳です"
    
    print(greet("太郎", 30))  # 太郎さんは30歳です
    print(greet("花子"))      # 花子さんは0歳です

    9. まとめと次に読む記事

    ポイントまとめ:

    • def で関数を定義する
    • 引数は位置引数・キーワード引数・デフォルト引数・可変長引数がある
    • return で結果を返す
    • スコープに注意(ローカルとグローバル)

    関連記事:

    気に入ったらシェア・コメントお願いします!さらに練習問題や「デコレータ」「クロージャー」などの発展トピックも解説できます。依頼があれば記事化します。

    (この記事は初心者向けに簡潔化しています。実務的な設計や型ヒント、テストの話は別記事で解説予定です。)
  • 【初心者向け】Pythonでリスト(配列)を使った繰り返し処理 — for文と組み合わせた実践例

    公開日: 2025-10-30|更新日: 2025-10-30

    この記事では、Pythonのリスト(配列)for文を組み合わせた基本的な使い方を、初心者向けにわかりやすく解説します。コピペで動くサンプルと練習問題付きなので、すぐに練習できます。

    1. リストとは?

    リストは複数の値を順序付きで保存できるデータ型です。角かっこ [] を使って定義します。

    # リストの例
    fruits = ["apple", "banana", "orange"]
    numbers = [1, 2, 3, 4, 5]
    mixed = ["Python", 3.14, True]

    リストは追加・削除・変更が可能(ミュータブル)で、順番にアクセスできます。

    2. リストをfor文で繰り返す基本

    最も基本的なパターンは次の通りです。

    fruits = ["apple", "banana", "orange"]
    
    for fruit in fruits:
        print(fruit)

    出力:

    apple
    banana
    orange

    この書き方は「リストの各要素を順に取り出して処理する」場合に使います。

    3. インデックスが必要なとき(enumerate

    要素の位置(インデックス)も使いたい場合は enumerate を使います。

    fruits = ["apple", "banana", "orange"]
    
    for i, fruit in enumerate(fruits, start=1):
        print(i, fruit)

    出力:

    1 apple
    2 banana
    3 orange

    start=1 を指定すると 1 からカウントします(デフォルトは 0)。

    4. ネストしたリスト(多次元リスト)を扱う

    表のようなデータを扱うときは、リストの中にリストを入れます。for文を二重に使えば、各要素にアクセスできます。

    matrix = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    
    for row in matrix:
        for value in row:
            print(value, end=" ")
        print()  # 改行

    出力:

    1 2 3 
    4 5 6 
    7 8 9 

    5. 実践例:成績の平均・フィルタリング・集計

    例1:学生の点数の平均を求める

    scores = [70, 85, 90, 60, 75]
    
    # 合計
    total = 0
    for s in scores:
        total += s
    
    average = total / len(scores)
    print("平均点:", average)

    例2:合格者だけ抽出する(フィルタリング)

    scores = [70, 85, 90, 60, 75]
    pass_scores = []
    
    for s in scores:
        if s >= 70:
            pass_scores.append(s)
    
    print("合格者の点数:", pass_scores)

    例3:点数ごとの人数カウント(辞書を使う)

    scores = [70, 85, 90, 60, 75, 70]
    count = {}
    
    for s in scores:
        if s in count:
            count[s] += 1
        else:
            count[s] = 1
    
    print(count)  # 例: {70: 2, 85: 1, 90: 1, 60: 1, 75: 1}

    ヒント:上のカウント処理は collections.Counter を使うと簡潔に書けます(今は基本を優先)。

    6. 練習問題(解答付き)

    問題1

    リスト [3, 6, 9, 12] の各要素を2乗して新しいリストを作ってください。

    解答(クリックで表示)
    nums = [3, 6, 9, 12]
    squares = []
    for n in nums:
        squares.append(n**2)
    
    print(squares)  # [9, 36, 81, 144]

    問題2

    文字列のリスト ["apple", "pear", "banana"] の中から、文字数が5文字以上の単語だけを抽出してください。

    解答(クリックで表示)
    words = ["apple", "pear", "banana"]
    long_words = []
    for w in words:
        if len(w) >= 5:
            long_words.append(w)
    
    print(long_words)  # ['apple', 'banana']

    7. まとめと次に読む記事

    今回はリストとfor文を組み合わせる基本と、実践的な例を紹介しました。ポイントをまとめます:

    • リストは複数の値を順序付けて持てるデータ型
    • for文で各要素を順番に取り出して処理する
    • インデックスが必要なら enumerate
    • 二次元データはネストしたループで処理できる

    次に読むと良い記事(リンク先はご自身のブログURLに置き換えてください):

    この記事が役に立ったら、記事の最後に次のCTAを置くと良いです:

    「役に立ったらシェアお願いします!質問があればコメント欄へどうぞ。もっと練習問題が欲しい方は、プロフィールのリンクから無料PDFをダウンロードできます。」

    参考・補足

    実践を通して覚えるのが一番早いので、上の練習問題を実際に手を動かして試してみてください。分からない点があればコメントで質問してください。

    (この記事は初心者向けに簡潔化しています。パフォーマンス改善や大規模データ処理の話は別記事で解説予定です。)

  • 【初心者向け】Pythonのfor文の使い方をわかりやすく解説!繰り返し処理の基本をマスターしよう

    メタディスクリプション:
    Pythonのfor文の使い方を初心者向けにわかりやすく解説します。range()やenumerate()の使い方、if文との組み合わせ例まで実例コード付きで紹介。繰り返し処理の基本をこの1記事でマスターしましょう。


    はじめに

    Pythonを学び始めると、必ず登場するのが「for文」です。繰り返し処理を実行するための基本構文で、プログラムの自動化やデータ処理には欠かせません。

    この記事では、for文の基本的な使い方から、range()・enumerate()を使った応用例までわかりやすく解説します!

    for文とは?

    for文とは、リストや文字列などの「繰り返し可能なデータ(イテラブル)」を、1つずつ取り出して処理するための構文です。

    🔹基本構文

    for 変数 in 繰り返し対象:
        実行する処理

    例えば、リスト内の数字を1つずつ表示する例を見てみましょう。

    numbers = [1, 2, 3, 4, 5]
    for n in numbers:
        print(n)

    実行結果:

    1
    2
    3
    4
    5
  • 【初心者向け】Pythonのif文の使い方をわかりやすく解説

    こんにちは!
    プログラミング初心者の方にとって、最初に覚えるべき重要な文法のひとつが「if文」です。

    今回は、Pythonの「if文」について、プログラミングが初めての方でも理解しやすいように、基本からやさしく解説していきます!


    そもそも「if文」ってなに?

    「if文」は、日本語で言うと「もし〜なら」という意味です。
    プログラムの中で「条件によって処理を分けたいとき」に使います。

    たとえば、

    • 点数が60点以上なら「合格」
    • 気温が30度以上なら「暑い」

    といった場面で使います。


    Pythonのif文の基本構文

    まずは、基本の形を見てみましょう。

    if 条件:
        実行する処理
    

    例:

    score = 70
    
    if score >= 60:
        print("合格です!")
    

    このコードは、「score(点数)」が60以上なら、「合格です!」と表示されます。


    else文で「それ以外」の処理を追加しよう

    if だけでは「条件が当てはまるとき」の処理しか書けませんが、else を使うと「当てはまらないとき」の処理も書けます。

    score = 50
    
    if score >= 60:
        print("合格です!")
    else:
        print("不合格です…")
    

    elif(else if)で条件を増やそう

    複数の条件をチェックしたいときは elif を使います。

    score = 85
    
    if score >= 90:
        print("とてもよくできました!")
    elif score >= 60:
        print("合格です!")
    else:
        print("不合格です…")
    

    インデント(字下げ)に注意!

    Pythonでは、条件の中の処理を「インデント(半角スペース4つなど)」で区別します。インデントを間違えるとエラーになります。

    # 正しい例
    if True:
        print("こんにちは")
    
    # 間違った例(インデントがない)
    if True:
    print("こんにちは")  # ←エラーになる
    

    実際に書いてみよう!簡単な練習問題

    問題:年齢を入力して、以下のように表示するプログラムを作ってみよう。

    • 20歳以上なら「大人です」
    • 13歳以上20歳未満なら「ティーンエイジャーです」
    • 13歳未満なら「子どもです」

    解答例:

    age = int(input("年齢を入力してください:"))
    
    if age >= 20:
        print("大人です")
    elif age >= 13:
        print("ティーンエイジャーです")
    else:
        print("子どもです")
    

    まとめ

    今回は、Pythonの「if文」の使い方について解説しました。
    ポイントをおさらいしましょう。

    ✅ if文は「もし〜なら」を書くための文法
    ✅ elseで「それ以外」の処理もできる
    ✅ elifで複数の条件をチェックできる
    ✅ インデント(字下げ)に注意!

    最初は戸惑うかもしれませんが、実際に手を動かしてコードを書いてみるのが一番の近道です。
    ぜひ、自分でもいろいろな条件を使ってif文を試してみてください!


    おまけ:次は何を学べばいい?

    if文に慣れてきたら、次は「繰り返し(for文 / while文)」や「関数」にチャレンジするのがおすすめです。
    プログラミングの幅がぐっと広がりますよ!


    ご質問やリクエストがあれば、ぜひコメントで教えてくださいね!

  • Hello world!

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!