2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonAdvent Calendar 2024

Day 6

プログラミングの全ての基礎は"たったこれだけ"! 5つの概念

Posted at

この記事について

プログラミングを始めたばかりの方や、基礎を見直したい方向けに、プログラミングの必須概念をまとめました。様々な言語やフレームワークがありますが、ここで紹介する概念は普遍的なものです。

想定する読者

  • プログラミングを始めたばかりの方
  • 基礎から見直したい方
  • 何から学べばいいか迷っている方

プログラミングの5つの基本要素

1. 変数とデータ型

データを保存して再利用する、プログラミングの最も基本的な要素です。

name = "田中"  # 文字列
age = 25      # 数値
is_student = True  # 真偽値

実践ポイント

  • 変数名は具体的で理解しやすい名前をつける
  • データ型を意識することで、バグを防ぎやすくなる
  • 定数は大文字で定義する慣習を覚えておく

2. 制御構造(if文とループ)

プログラムの流れをコントロールする心臓部です。

# if文による分岐
if age >= 20:
    print("成人です")
else:
    print("未成年です")

# forループによる繰り返し
for i in range(3):
    print(f"{i}回目の挨拶: こんにちは!")

現場でよく使うパターン

  • early return(早期リターン)で条件分岐をシンプルに
  • 無限ループを避けるためのbreak文の活用
  • continue文でループの効率化

3. 関数

コードを再利用可能な形にまとめる便利な道具です。

def greet(name):
    return f"こんにちは、{name}さん!"

# 関数の使用
message = greet("田中")

関数作成のベストプラクティス

  • 一つの関数は一つの責務に
  • 引数は3つ以下を目安に
  • 関数名は動詞で始める

4. データ構造

データを効率的に管理・操作するための仕組みです。

# リスト(配列)の例
fruits = ["りんご", "バナナ", "オレンジ"]

# 辞書の例
user = {
    "name": "田中",
    "age": 25
}

# セットの例
unique_numbers = {1, 2, 3, 3, 2}  # 重複は排除される
print(unique_numbers)  # {1, 2, 3}

# タプルの例
dimensions = (1920, 1080)  # 画面の解像度
print(dimensions[0])  # 1920

よく使うデータ構造の使い分け

  • リスト:順序が重要な場合
  • 辞書:キーと値のペアが必要な場合
  • セット:重複を避けたい場合
  • タプル:データの変更を防ぎたい場合

5. エラー処理

プログラムの安定性を確保する安全装置です。

try:
    result = 10 / 0
except ZeroDivisionError:
    print("0での除算はできません")
finally:
    print("処理を完了しました")

エラー処理のコツ

  • 具体的な例外を指定する
  • ログを適切に残す
  • finally句を活用する

実践例:ショッピングカート

ここまで説明してきた5つの基本要素を組み合わせた実践的な例を見てみましょう。
このショッピングカートの例では、実際のECサイトでよく使われる機能の一部を実装しています。

def calculate_cart_total(items):
    try:
        total = 0
        for item in items:
            if item["price"] > 0:  # 負の価格をチェック
                total += item["price"]
        return total
    except Exception as e:
        return f"エラーが発生しました: {e}"

# 使用例
cart = [
    {"name": "", "price": 1500},
    {"name": "ペン", "price": 200}
]
total = calculate_cart_total(cart)
print(f"合計金額: {total}")

このコードで使用している基本要素

  1. 変数とデータ型

    • total変数で合計金額を管理
    • 辞書型で商品情報を構造化
  2. 制御構造

    • forループで商品を順に処理
    • if文で価格の妥当性をチェック
  3. 関数

    • calculate_cart_total関数で処理をまとめる
    • 引数と戻り値の受け渡し
  4. データ構造

    • リストで複数商品を管理
    • 辞書で商品の属性を管理
  5. エラー処理

    • try-except でエラーを適切に処理
    • エラーメッセージを返却

実務での改善ポイント

このコードは基本的な実装ですが、実務では以下のような改善を加えることが多いです。

from typing import List, Dict
from decimal import Decimal

def calculate_cart_total(items: List[Dict[str, any]]) -> Decimal:
    try:
        if not items:
            return Decimal('0')
            
        total = Decimal('0')
        for item in items:
            # 商品の存在チェック
            if not all(key in item for key in ["name", "price"]):
                raise ValueError("商品データが不正です")
                
            # 価格のバリデーション
            price = Decimal(str(item["price"]))
            if price < 0:
                raise ValueError(f"商品「{item['name']}」の価格が負数です")
                
            total += price
            
        return total.quantize(Decimal('0'))  # 小数点以下を適切に処理
        
    except Exception as e:
        # 実務ではログ出力などを行う
        raise ValueError(f"計算処理でエラーが発生しました: {e}")

発展的な機能例

実務では以下のような機能を追加することも多いです。

  • 数量(quantity)の考慮
  • 消費税の計算
  • 割引の適用
  • 在庫チェック
  • バリデーションの強化

まとめ

  • 5つの基本要素を理解すれば、多くのプログラムが書けるようになります
  • 実践を通じて、これらの概念の使い方を身につけていきましょう
  • コードレビューを受けたり、他人のコードを読むことで理解が深まります

参考リンク

2
0
0

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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?