この記事について
プログラミングを始めたばかりの方や、基礎を見直したい方向けに、プログラミングの必須概念をまとめました。様々な言語やフレームワークがありますが、ここで紹介する概念は普遍的なものです。
想定する読者
- プログラミングを始めたばかりの方
- 基礎から見直したい方
- 何から学べばいいか迷っている方
プログラミングの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}円")
このコードで使用している基本要素
-
変数とデータ型
-
total
変数で合計金額を管理 - 辞書型で商品情報を構造化
-
-
制御構造
-
for
ループで商品を順に処理 -
if
文で価格の妥当性をチェック
-
-
関数
-
calculate_cart_total
関数で処理をまとめる - 引数と戻り値の受け渡し
-
-
データ構造
- リストで複数商品を管理
- 辞書で商品の属性を管理
-
エラー処理
- 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つの基本要素を理解すれば、多くのプログラムが書けるようになります
- 実践を通じて、これらの概念の使い方を身につけていきましょう
- コードレビューを受けたり、他人のコードを読むことで理解が深まります