# プログラム名: python_fundamentals_summary.py
# Program Name: python_fundamentals_summary.py
# Python入門:文法、データ型、構造、関数、クラス、例外、アルゴリズム、ファイル操作など、基礎から応用まで一貫した学習が可能なスクリプト。
# --- Pythonとは? / What is Python? ---
# Pythonは汎用的な高水準のプログラミング言語であり、可読性が高く、教育・研究・実務など幅広く使われています。
# インタプリタ型で動的型付けを採用し、簡潔な構文が特徴です。
# Pythonの用途:
# - データ分析(pandas, numpy, matplotlib)
# - Web開発(Django, Flask)
# - 機械学習(scikit-learn, TensorFlow, PyTorch)
# - 自動化(スクリプト、バッチ処理、Webスクレイピング)
# --- Pythonの実行方法 ---
# - インタプリタ起動: python
# - スクリプト実行: python ファイル名.py
# - Jupyter NotebookやGoogle Colabも学習に便利です
# --- print関数 ---
# Pythonではprint()を使って画面に出力できます。
print("Hello, Python!") # コメントは # で記述 / Comments start with '#'
# --- 変数の宣言と代入 / Variables ---
# 変数は値を格納する名前付きのラベルです。型を指定せずに代入できます。
name = "Alice"
age = 25
height = 1.68
is_student = False
# --- 型の確認と変換 / Type Check & Cast ---
print(type(age)) # <class 'int'>
print(str(age)) # 型変換: int -> str
print(int("10")) # str -> int
print(float(3)) # int -> float
# --- 入力 / User Input ---
# ユーザーからの入力を受け取るには input() を使います。
# user_input = input("Enter your name: ")
# print(f"Hello, {user_input}")
# --- コメント / Comments ---
# 単一行: # を使う
"""
複数行コメントやドキュメントには triple quotes を使う
複数行説明や関数の説明(docstring)に便利です
"""
# --- スタイルガイド / Style Guide ---
# PythonではPEP8というスタイルガイドに従うことが推奨されています。
# ・インデントはスペース4つ(タブではなく)
# ・関数・変数名はスネークケース(lower_case_with_underscores)
# ・定数は全て大文字(ALL_CAPS)
# 以降は章番号順に構成されたスクリプトとなります:
# - 1. 基本文法とインデント
# - 2. 変数
# - 3. データ型
# - 4. 数値演算
# - 5. 文字列操作
# - 6. リスト
# - 7. 辞書
# - 8. 集合とタプル
# - 9. 条件分岐
# - 10. ループ
# - 11. ネスト
# - 12. 関数
# - 13. クラスとオブジェクト指向
# - 14. モジュール
# - 15. 外部ライブラリ
# - 16. 例外処理
# - 17. ファイル操作
# - 18. 内包表記
# - 19. 無名関数と高階関数
# - 20. テストとデバッグ
# - 21. アルゴリズム(再帰)
# - 22. 日付と時間
# プログラム名: python_basics_summary.py
# 概要: Pythonの基本構文と機能を網羅的に学習・確認するための統合スクリプト
# --- 1. 基本文法とインデント / Basic Syntax and Indentation ---
# Pythonのコードはインデントで構造を示す / Indentation defines structure
# 通常はスペース4つを使う(PEP8)
print("Hello, Python!") # コメントは # で記述
# --- 2. 変数 / Variables ---
# 型宣言なしで代入できる / No need for type declaration
name = "Alice" # 文字列型 / string
age = 25 # 整数型 / integer
height = 1.65 # 浮動小数点型 / float
is_student = True # 真偽値型 / boolean
# --- 3. データ型 / Data Types ---
integer = 42 # int型
floating = 3.14 # float型
string = "Python" # str型
boolean = False # bool型
lst = [1, 2, 3] # list型
print(type(lst))
dct = {"key": "value"} # dict型
st = {1, 2, 3} # set型
tpl = (4, 5, 6) # tuple型(不変)
# --- 4. 数値演算 / Arithmetic Operations ---
a = 10
b = 3
print("加算:", a + b) # Addition
print("減算:", a - b) # Subtraction
print("乗算:", a * b) # Multiplication
print("除算:", a / b) # Division (float)
print("整数除算:", a // b) # Floor division
print("剰余:", a % b) # Modulo
print("べき乗:", a ** b) # Exponentiation
import math
print("平方根:", math.sqrt(16))
# --- 5. 文字列操作 / String Operations ---
text = "Hello"
print(text + " World") # 結合 / concatenation
print(text.upper()) # 大文字化 / uppercase
print(text.lower()) # 小文字化 / lowercase
print(text.replace("H", "J")) # 部分置換 / replace
print(f"Length: {len(text)}") # 長さ / length
# --- 6. リスト / List ---
numbers = [1, 2, 3]
numbers.append(4) # 要素追加 / append
numbers.insert(1, 10) # 指定位置に挿入 / insert
numbers.remove(2) # 指定要素削除 / remove
print("リスト:", numbers)
for num in numbers:
print(num)
# --- 7. 辞書 / Dictionary ---
data = {"name": "Bob", "age": 30}
data["city"] = "Tokyo" # 要素追加
for key, value in data.items():
print(f"{key}: {value}")
print("名前:", data.get("name")) # get()で取得
# --- 8. 集合とタプル / Set and Tuple ---
unique = set([1, 1, 2, 3]) # 重複排除
print("集合:", unique)
print(2 in unique) # 要素の存在確認
fixed = (1, 2, 3) # 不変のリスト
print("タプル:", fixed)
# --- 9. 条件分岐 / Conditional Statements ---
x = 10
if x > 0:
print("Positive")
elif x == 0:
print("Zero")
else:
print("Negative")
# --- 10. ループ / Loops ---
# forループ / for loop
for i in range(3):
print(f"For loop: {i}")
# whileループ / while loop
j = 0
while j < 3:
print(f"While loop: {j}")
j += 1
# --- 11. ネスト / Nesting ---
for i in range(2):
if i % 2 == 0:
print(f"{i} is even")
else:
print(f"{i} is odd")
# --- 12. 関数 / Functions ---
def greet(name):
return f"Hello, {name}"
message = greet("Charlie")
print(message)
# --- 13. クラスとオブジェクト指向 / Classes and OOP ---
class Person:
def __init__(self, name):
self.name = name
def say_hello(self):
print(f"Hi, I'm {self.name}")
p = Person("Dave")
p.say_hello()
# --- 14. モジュール / Modules ---
import os # OS操作用モジュール
print("OS name:", os.name)
import random # 乱数生成
print("Random number:", random.randint(1, 10))
# --- 15. 外部ライブラリ / External Libraries ---
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
arr = np.array([1, 2, 3])
print("NumPy array:", arr)
df = pd.DataFrame({'col1': arr})
print("DataFrame:\n", df)
df.plot(title="Sample Plot")
plt.xlabel("Index")
plt.ylabel("Value")
plt.grid(True)
plt.show()
# --- 16. 例外処理 / Exception Handling ---
try:
num = int("abc") # 文字列を整数に変換(失敗)
except ValueError as e:
print("変換エラー:", e) # ValueErrorをキャッチ
finally:
print("例外処理完了 / Exception handling done.")
# --- 17. ファイル操作 / File I/O ---
# 書き込み / Writing
with open("sample.txt", "w", encoding="utf-8") as f:
f.write("これはファイルへの書き込みです。\nThis is a file write.")
# 読み込み / Reading
with open("sample.txt", "r", encoding="utf-8") as f:
content = f.read()
print("ファイル内容:\n", content)
# --- 18. 内包表記 / List & Dict Comprehension ---
squares = [x**2 for x in range(5)] # リスト内包表記 / List comprehension
print("Squares:", squares)
square_dict = {x: x**2 for x in range(5)} # 辞書内包表記 / Dict comprehension
print("Square Dictionary:", square_dict)
# --- 19. 無名関数と高階関数 / Lambda & Higher-order Functions ---
from functools import reduce
double = lambda x: x * 2
print("Lambda x2:", double(4))
mapped = list(map(lambda x: x + 1, range(5))) # 各要素に+1
filtered = list(filter(lambda x: x % 2 == 0, range(5))) # 偶数だけ
total = reduce(lambda x, y: x + y, range(5)) # 合計値
print("Mapped:", mapped)
print("Filtered (even):", filtered)
print("Reduced sum:", total)
# --- 20. テストとデバッグ / Testing and Debugging ---
def square(x):
return x * x
assert square(3) == 9, "Test failed" # 簡易テスト / simple test
print("関数squareは正しく動作しています。")
# --- 21. アルゴリズム(再帰)/ Algorithms (Recursion) ---
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1) # 再帰呼び出し / recursive call
print("5の階乗:", factorial(5)) # 5! = 120
# --- 22. 日付と時間 / Date and Time ---
import datetime
import time
import calendar
import zoneinfo
# 現在時刻 / Current time
now = datetime.datetime.now()
print("現在時刻 / Now:", now)
# 書式付き表示 / Formatted output
print("Formatted:", now.strftime("%Y-%m-%d %H:%M:%S"))
# 時差付き時刻 / Timezone-aware datetime
tokyo_time = datetime.datetime.now(zoneinfo.ZoneInfo("Asia/Tokyo"))
utc_time = datetime.datetime.now(zoneinfo.ZoneInfo("UTC"))
print("Tokyo:", tokyo_time)
print("UTC:", utc_time)
# 日付演算 / Date arithmetic
tomorrow = now + datetime.timedelta(days=1)
yesterday = now - datetime.timedelta(days=1)
print("Tomorrow:", tomorrow)
print("Yesterday:", yesterday)
# UNIX時刻との変換 / UNIX timestamp conversion
timestamp = now.timestamp()
dt_from_ts = datetime.datetime.fromtimestamp(timestamp)
print("UNIX Timestamp:", timestamp)
print("From timestamp:", dt_from_ts)
# カレンダー表示 / Calendar
print("2025年4月のカレンダー:")
print(calendar.month(2025, 4))
# 処理時間計測 / Performance timing
start = time.perf_counter()
for _ in range(1000000): pass
end = time.perf_counter()
print("処理時間:", end - start, "秒")
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme