{"id":42804,"date":"2025-07-28T11:31:11","date_gmt":"2025-07-28T02:31:11","guid":{"rendered":"https:\/\/techgym.jp\/?p=42804"},"modified":"2025-07-28T11:36:45","modified_gmt":"2025-07-28T02:36:45","slug":"python-func","status":"publish","type":"post","link":"https:\/\/techgym.jp\/column\/python-func\/","title":{"rendered":"Python\u95a2\u6570\u5b8c\u5168\u30de\u30b9\u30bf\u30fc\uff1a\u57fa\u790e\u304b\u3089\u4e0a\u7d1a\u30c6\u30af\u30cb\u30c3\u30af\uff0b\u30a8\u30e9\u30fc\u89e3\u6c7a\u6cd5"},"content":{"rendered":"\n<p>\u00a0<\/p>\n<p>Python\u95a2\u6570\u306f\u3001\u30b3\u30fc\u30c9\u306e\u518d\u5229\u7528\u6027\u3068\u4fdd\u5b88\u6027\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u91cd\u8981\u306a\u6982\u5ff5\u3067\u3059\u3002\u57fa\u672c\u7684\u306a\u95a2\u6570\u5b9a\u7fa9\u304b\u3089\u9ad8\u5ea6\u306a\u30c6\u30af\u30cb\u30c3\u30af\u3001\u30c7\u30b3\u30ec\u30fc\u30bf\u3001\u30e9\u30e0\u30c0\u95a2\u6570\u307e\u3067\u3001\u95a2\u6570\u3092\u5b8c\u5168\u306b\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u8aad\u307f\u3084\u3059\u3044Python\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002\u672c\u8a18\u4e8b\u3067\u306f\u3001Python\u95a2\u6570\u306e\u57fa\u790e\u304b\u3089\u5fdc\u7528\u307e\u3067\u3001\u3088\u304f\u3042\u308b\u30a8\u30e9\u30fc\u3068\u89e3\u6c7a\u65b9\u6cd5\u3092\u542b\u3081\u3066\u3001\u5b9f\u8df5\u7684\u306a\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3068\u3068\u3082\u306b\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<h2>Python\u95a2\u6570\u306e\u57fa\u672c\u6982\u5ff5<\/h2>\n<h3>\u95a2\u6570\u3068\u306f\u4f55\u304b<\/h3>\n<p>\u95a2\u6570\uff08function\uff09\u306f\u3001\u7279\u5b9a\u306e\u51e6\u7406\u3092\u307e\u3068\u3081\u3066\u540d\u524d\u3092\u4ed8\u3051\u305f\u3001\u518d\u5229\u7528\u53ef\u80fd\u306a\u30b3\u30fc\u30c9\u30d6\u30ed\u30c3\u30af\u3067\u3059\u3002\u5165\u529b\uff08\u5f15\u6570\uff09\u3092\u53d7\u3051\u53d6\u308a\u3001\u51e6\u7406\u3092\u5b9f\u884c\u3057\u3066\u3001\u7d50\u679c\uff08\u623b\u308a\u5024\uff09\u3092\u8fd4\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-python\"># \u57fa\u672c\u7684\u306a\u95a2\u6570\u306e\u5b9a\u7fa9\u3068\u547c\u3073\u51fa\u3057\ndef greet(name):\n    \"\"\"\u6328\u62f6\u3092\u3059\u308b\u95a2\u6570\"\"\"\n    message = f\"\u3053\u3093\u306b\u3061\u306f\u3001{name}\u3055\u3093\uff01\"\n    return message\n\n# \u95a2\u6570\u306e\u547c\u3073\u51fa\u3057\nresult = greet(\"\u7530\u4e2d\")\nprint(result)  # \u3053\u3093\u306b\u3061\u306f\u3001\u7530\u4e2d\u3055\u3093\uff01\n<\/code><\/pre>\n<h3>\u95a2\u6570\u306e\u69cb\u6210\u8981\u7d20<\/h3>\n<pre><code class=\"language-python\">def calculate_area(length, width=1):\n    \"\"\"\n    \u9577\u65b9\u5f62\u306e\u9762\u7a4d\u3092\u8a08\u7b97\u3059\u308b\u95a2\u6570\n    \n    Args:\n        length (float): \u9577\u3055\n        width (float): \u5e45\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u5024: 1\uff09\n    \n    Returns:\n        float: \u9762\u7a4d\n    \"\"\"\n    area = length * width\n    return area\n\n# \u4f4d\u7f6e\u5f15\u6570\narea1 = calculate_area(10, 5)     # 50.0\n\n# \u30ad\u30fc\u30ef\u30fc\u30c9\u5f15\u6570\narea2 = calculate_area(length=8, width=3)  # 24.0\n\n# \u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570\narea3 = calculate_area(7)         # 7.0\uff08\u6b63\u65b9\u5f62\u3068\u3057\u3066\u8a08\u7b97\uff09\n<\/code><\/pre>\n<h2>\u57fa\u790e\u30ec\u30d9\u30eb\uff1a\u95a2\u6570\u306e\u57fa\u672c\u64cd\u4f5c<\/h2>\n<h3>\u5f15\u6570\u306e\u7a2e\u985e\u3068\u4f7f\u3044\u65b9<\/h3>\n<pre><code class=\"language-python\"># \u4f4d\u7f6e\u5f15\u6570\u3068\u30ad\u30fc\u30ef\u30fc\u30c9\u5f15\u6570\ndef create_profile(name, age, city=\"\u672a\u6307\u5b9a\"):\n    return {\n        \"name\": name,\n        \"age\": age,\n        \"city\": city\n    }\n\n# \u69d8\u3005\u306a\u547c\u3073\u51fa\u3057\u65b9\nprofile1 = create_profile(\"\u7530\u4e2d\", 25)\nprofile2 = create_profile(\"\u4f50\u85e4\", 30, \"\u6771\u4eac\")\nprofile3 = create_profile(name=\"\u5c71\u7530\", age=28, city=\"\u5927\u962a\")\n\nprint(profile1)  # {'name': '\u7530\u4e2d', 'age': 25, 'city': '\u672a\u6307\u5b9a'}\n<\/code><\/pre>\n<h3>\u623b\u308a\u5024\u306e\u30d1\u30bf\u30fc\u30f3<\/h3>\n<pre><code class=\"language-python\"># \u5358\u4e00\u306e\u623b\u308a\u5024\ndef square(x):\n    return x ** 2\n\n# \u8907\u6570\u306e\u623b\u308a\u5024\uff08\u30bf\u30d7\u30eb\uff09\ndef divide_with_remainder(a, b):\n    quotient = a \/\/ b\n    remainder = a % b\n    return quotient, remainder\n\n# \u623b\u308a\u5024\u306a\u3057\uff08None\uff09\ndef print_info(name, age):\n    print(f\"\u540d\u524d: {name}, \u5e74\u9f62: {age}\")\n    # return\u6587\u306a\u3057\uff08\u6697\u9ed9\u7684\u306bNone\u3092\u8fd4\u3059\uff09\n\n# \u4f7f\u7528\u4f8b\nresult = square(5)              # 25\nq, r = divide_with_remainder(17, 5)  # 3, 2\nprint_info(\"\u7530\u4e2d\", 25)          # None\n<\/code><\/pre>\n<h3>\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u3068\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570<\/h3>\n<pre><code class=\"language-python\"># \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\ncounter = 0\n\ndef increment():\n    global counter\n    counter += 1\n    return counter\n\ndef local_calculation():\n    # \u30ed\u30fc\u30ab\u30eb\u5909\u6570\n    local_var = 10\n    result = local_var * 2\n    return result\n\n# \u95a2\u6570\u547c\u3073\u51fa\u3057\nprint(increment())         # 1\nprint(increment())         # 2\nprint(local_calculation()) # 20\n# print(local_var)         # NameError: \u30ed\u30fc\u30ab\u30eb\u5909\u6570\u306f\u95a2\u6570\u5916\u3067\u306f\u53c2\u7167\u4e0d\u53ef\n<\/code><\/pre>\n<h2>\u4e2d\u7d1a\u30ec\u30d9\u30eb\uff1a\u95a2\u6570\u306e\u5fdc\u7528\u64cd\u4f5c<\/h2>\n<h3>\u53ef\u5909\u9577\u5f15\u6570\uff08*args, **kwargs\uff09<\/h3>\n<pre><code class=\"language-python\"># *args: \u4efb\u610f\u306e\u6570\u306e\u4f4d\u7f6e\u5f15\u6570\ndef sum_all(*args):\n    total = 0\n    for num in args:\n        total += num\n    return total\n\nresult = sum_all(1, 2, 3, 4, 5)  # 15\n\n# **kwargs: \u4efb\u610f\u306e\u6570\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u5f15\u6570\ndef create_user(**kwargs):\n    user = {\"id\": None, \"name\": \"Unknown\"}\n    user.update(kwargs)\n    return user\n\nuser1 = create_user(id=1, name=\"\u7530\u4e2d\", email=\"tanaka@example.com\")\nprint(user1)  # {'id': 1, 'name': '\u7530\u4e2d', 'email': 'tanaka@example.com'}\n\n# \u4e21\u65b9\u3092\u7d44\u307f\u5408\u308f\u305b\ndef flexible_function(*args, **kwargs):\n    print(f\"\u4f4d\u7f6e\u5f15\u6570: {args}\")\n    print(f\"\u30ad\u30fc\u30ef\u30fc\u30c9\u5f15\u6570: {kwargs}\")\n\nflexible_function(1, 2, 3, name=\"test\", value=42)\n<\/code><\/pre>\n<h3>\u95a2\u6570\u5185\u95a2\u6570\uff08\u30cd\u30b9\u30c8\u95a2\u6570\uff09<\/h3>\n<pre><code class=\"language-python\">def outer_function(x):\n    \"\"\"\u5916\u5074\u306e\u95a2\u6570\"\"\"\n    \n    def inner_function(y):\n        \"\"\"\u5185\u5074\u306e\u95a2\u6570\"\"\"\n        return x + y\n    \n    # \u5185\u5074\u306e\u95a2\u6570\u3092\u547c\u3073\u51fa\u3057\n    result = inner_function(10)\n    return result\n\n# \u30af\u30ed\u30fc\u30b8\u30e3\u306e\u4f8b\ndef create_multiplier(factor):\n    def multiplier(number):\n        return number * factor\n    return multiplier\n\n# \u95a2\u6570\u3092\u8fd4\u3059\ndouble = create_multiplier(2)\ntriple = create_multiplier(3)\n\nprint(double(5))  # 10\nprint(triple(5))  # 15\n<\/code><\/pre>\n<h3>\u518d\u5e30\u95a2\u6570<\/h3>\n<pre><code class=\"language-python\"># \u57fa\u672c\u7684\u306a\u518d\u5e30\uff1a\u968e\u4e57\u8a08\u7b97\ndef factorial(n):\n    if n &lt;= 1:\n        return 1\n    return n * factorial(n - 1)\n\nprint(factorial(5))  # 120\n\n# \u30d5\u30a3\u30dc\u30ca\u30c3\u30c1\u6570\u5217\ndef fibonacci(n):\n    if n &lt;= 1:\n        return n\n    return fibonacci(n - 1) + fibonacci(n - 2)\n\n# \u30e1\u30e2\u5316\u306b\u3088\u308b\u6700\u9069\u5316\ndef fibonacci_memo(n, memo=None):\n    if memo is None:\n        memo = {}\n    \n    if n in memo:\n        return memo[n]\n    \n    if n &lt;= 1:\n        result = n\n    else:\n        result = fibonacci_memo(n-1, memo) + fibonacci_memo(n-2, memo)\n    \n    memo[n] = result\n    return result\n\nprint(fibonacci_memo(10))  # 55\n<\/code><\/pre>\n<h2>\u4e0a\u7d1a\u30ec\u30d9\u30eb\uff1a\u9ad8\u5ea6\u306a\u95a2\u6570\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n<h3>\u30e9\u30e0\u30c0\u95a2\u6570\uff08\u7121\u540d\u95a2\u6570\uff09<\/h3>\n<pre><code class=\"language-python\"># \u57fa\u672c\u7684\u306a\u30e9\u30e0\u30c0\u95a2\u6570\nsquare = lambda x: x ** 2\nadd = lambda x, y: x + y\n\nprint(square(5))    # 25\nprint(add(3, 4))    # 7\n\n# \u30ea\u30b9\u30c8\u306e\u51e6\u7406\u3067\u306e\u30e9\u30e0\u30c0\u6d3b\u7528\nnumbers = [1, 2, 3, 4, 5]\nsquared = list(map(lambda x: x**2, numbers))\neven_nums = list(filter(lambda x: x % 2 == 0, numbers))\n\nprint(squared)    # [1, 4, 9, 16, 25]\nprint(even_nums)  # [2, 4]\n\n# \u30bd\u30fc\u30c8\u3067\u306e\u30e9\u30e0\u30c0\u6d3b\u7528\nstudents = [(\"\u7530\u4e2d\", 85), (\"\u4f50\u85e4\", 92), (\"\u5c71\u7530\", 78)]\nsorted_by_score = sorted(students, key=lambda x: x[1])\nprint(sorted_by_score)  # [('\u5c71\u7530', 78), ('\u7530\u4e2d', 85), ('\u4f50\u85e4', 92)]\n<\/code><\/pre>\n<h3>\u30c7\u30b3\u30ec\u30fc\u30bf<\/h3>\n<pre><code class=\"language-python\"># \u57fa\u672c\u7684\u306a\u30c7\u30b3\u30ec\u30fc\u30bf\ndef timing_decorator(func):\n    def wrapper(*args, **kwargs):\n        import time\n        start = time.time()\n        result = func(*args, **kwargs)\n        end = time.time()\n        print(f\"{func.__name__}\u306e\u5b9f\u884c\u6642\u9593: {end - start:.4f}\u79d2\")\n        return result\n    return wrapper\n\n@timing_decorator\ndef slow_function():\n    import time\n    time.sleep(0.1)\n    return \"\u5b8c\u4e86\"\n\nresult = slow_function()\n\n# \u5f15\u6570\u4ed8\u304d\u30c7\u30b3\u30ec\u30fc\u30bf\ndef repeat(times):\n    def decorator(func):\n        def wrapper(*args, **kwargs):\n            for _ in range(times):\n                result = func(*args, **kwargs)\n            return result\n        return wrapper\n    return decorator\n\n@repeat(3)\ndef say_hello():\n    print(\"\u3053\u3093\u306b\u3061\u306f\uff01\")\n\nsay_hello()  # 3\u56de\u5b9f\u884c\u3055\u308c\u308b\n<\/code><\/pre>\n<h3>\u9ad8\u968e\u95a2\u6570<\/h3>\n<pre><code class=\"language-python\"># \u95a2\u6570\u3092\u5f15\u6570\u3068\u3057\u3066\u53d7\u3051\u53d6\u308b\u95a2\u6570\ndef apply_operation(numbers, operation):\n    return [operation(x) for x in numbers]\n\ndef double(x):\n    return x * 2\n\ndef square(x):\n    return x ** 2\n\nnumbers = [1, 2, 3, 4, 5]\ndoubled = apply_operation(numbers, double)\nsquared = apply_operation(numbers, square)\n\nprint(doubled)  # [2, 4, 6, 8, 10]\nprint(squared)  # [1, 4, 9, 16, 25]\n\n# functools.partial\u306e\u6d3b\u7528\nfrom functools import partial\n\ndef power(base, exponent):\n    return base ** exponent\n\n# \u90e8\u5206\u9069\u7528\nsquare_func = partial(power, exponent=2)\ncube_func = partial(power, exponent=3)\n\nprint(square_func(5))  # 25\nprint(cube_func(3))    # 27\n<\/code><\/pre>\n<h3>\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u95a2\u6570<\/h3>\n<pre><code class=\"language-python\"># \u57fa\u672c\u7684\u306a\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\ndef countdown(n):\n    while n &gt; 0:\n        yield n\n        n -= 1\n\n# \u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u306e\u4f7f\u7528\nfor num in countdown(5):\n    print(num)  # 5, 4, 3, 2, 1\n\n# \u30d5\u30a3\u30dc\u30ca\u30c3\u30c1\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\ndef fibonacci_generator():\n    a, b = 0, 1\n    while True:\n        yield a\n        a, b = b, a + b\n\n# \u6700\u521d\u306e10\u500b\u306e\u30d5\u30a3\u30dc\u30ca\u30c3\u30c1\u6570\u3092\u53d6\u5f97\nfib_gen = fibonacci_generator()\nfib_numbers = [next(fib_gen) for _ in range(10)]\nprint(fib_numbers)  # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]\n\n# yield from\u6587\ndef chain_generators(*iterables):\n    for iterable in iterables:\n        yield from iterable\n\ncombined = list(chain_generators([1, 2], [3, 4], [5, 6]))\nprint(combined)  # [1, 2, 3, 4, 5, 6]\n<\/code><\/pre>\n<h2>\u95a2\u6570\u95a2\u9023\u306e\u30a8\u30e9\u30fc\u3068\u89e3\u6c7a\u65b9\u6cd5<\/h2>\n<h3>TypeError\uff1a\u5f15\u6570\u95a2\u9023\u30a8\u30e9\u30fc<\/h3>\n<pre><code class=\"language-python\"># \u30a8\u30e9\u30fc\u4f8b\uff1a\u5f15\u6570\u306e\u6570\u304c\u5408\u308f\u306a\u3044\ndef add_numbers(a, b):\n    return a + b\n\ntry:\n    result = add_numbers(5)  # TypeError: missing 1 required positional argument\nexcept TypeError as e:\n    print(f\"\u30a8\u30e9\u30fc: {e}\")\n\n# \u89e3\u6c7a\u65b9\u6cd51: \u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570\ndef add_numbers_safe(a, b=0):\n    return a + b\n\nresult = add_numbers_safe(5)  # 5\n\n# \u89e3\u6c7a\u65b9\u6cd52: \u53ef\u5909\u9577\u5f15\u6570\ndef add_all(*args):\n    if len(args) &lt; 2:\n        raise ValueError(\"\u5c11\u306a\u304f\u3068\u30822\u3064\u306e\u5f15\u6570\u304c\u5fc5\u8981\u3067\u3059\")\n    return sum(args)\n\n# \u89e3\u6c7a\u65b9\u6cd53: \u578b\u30c1\u30a7\u30c3\u30af\ndef safe_add(a, b):\n    if not isinstance(a, (int, float)) or not isinstance(b, (int, float)):\n        raise TypeError(\"\u6570\u5024\u578b\u306e\u5f15\u6570\u304c\u5fc5\u8981\u3067\u3059\")\n    return a + b\n<\/code><\/pre>\n<h3>NameError\uff1a\u5909\u6570\u30b9\u30b3\u30fc\u30d7\u30a8\u30e9\u30fc<\/h3>\n<pre><code class=\"language-python\"># \u30a8\u30e9\u30fc\u4f8b\uff1a\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u3068\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u306e\u6df7\u5728\ncount = 10\n\ndef increment_wrong():\n    print(count)  # UnboundLocalError\n    count = count + 1\n\n# \u89e3\u6c7a\u65b9\u6cd51: global\u6587\ndef increment_correct():\n    global count\n    print(count)\n    count = count + 1\n\n# \u89e3\u6c7a\u65b9\u6cd52: \u5f15\u6570\u3068\u3057\u3066\u6e21\u3059\ndef increment_with_arg(value):\n    print(value)\n    return value + 1\n\ncount = increment_with_arg(count)\n\n# \u89e3\u6c7a\u65b9\u6cd53: nonlocal\u6587\uff08\u30cd\u30b9\u30c8\u95a2\u6570\uff09\ndef outer():\n    counter = 0\n    \n    def inner():\n        nonlocal counter\n        counter += 1\n        return counter\n    \n    return inner\n<\/code><\/pre>\n<h3>RecursionError\uff1a\u518d\u5e30\u306e\u6df1\u3059\u304e\u30a8\u30e9\u30fc<\/h3>\n<pre><code class=\"language-python\"># \u30a8\u30e9\u30fc\u4f8b\uff1a\u7121\u9650\u518d\u5e30\ndef bad_factorial(n):\n    return n * bad_factorial(n - 1)  # \u7d42\u4e86\u6761\u4ef6\u306a\u3057\n\n# \u89e3\u6c7a\u65b9\u6cd51: \u9069\u5207\u306a\u7d42\u4e86\u6761\u4ef6\ndef good_factorial(n):\n    if n &lt;= 1:\n        return 1\n    return n * good_factorial(n - 1)\n\n# \u89e3\u6c7a\u65b9\u6cd52: \u518d\u5e30\u306e\u6df1\u3055\u5236\u9650\nimport sys\nsys.setrecursionlimit(1500)  # \u30c7\u30d5\u30a9\u30eb\u30c8\u306f1000\n\n# \u89e3\u6c7a\u65b9\u6cd53: \u53cd\u5fa9\u7684\u306a\u5b9f\u88c5\ndef iterative_factorial(n):\n    result = 1\n    for i in range(1, n + 1):\n        result *= i\n    return result\n\nprint(iterative_factorial(1000))  # \u5927\u304d\u306a\u5024\u3067\u3082\u5b89\u5168\n<\/code><\/pre>\n<h3>AttributeError\uff1a\u95a2\u6570\u5c5e\u6027\u30a8\u30e9\u30fc<\/h3>\n<pre><code class=\"language-python\"># \u30a8\u30e9\u30fc\u4f8b\uff1a\u5b58\u5728\u3057\u306a\u3044\u30e1\u30bd\u30c3\u30c9\ndef my_function():\n    return \"Hello\"\n\ntry:\n    result = my_function.nonexistent_method()  # AttributeError\nexcept AttributeError as e:\n    print(f\"\u30a8\u30e9\u30fc: {e}\")\n\n# \u95a2\u6570\u306e\u5c5e\u6027\u8a2d\u5b9a\ndef decorated_function():\n    return \"Decorated\"\n\ndecorated_function.custom_attr = \"\u30ab\u30b9\u30bf\u30e0\u5c5e\u6027\"\ndecorated_function.metadata = {\"version\": 1.0}\n\nprint(decorated_function.custom_attr)  # \u30ab\u30b9\u30bf\u30e0\u5c5e\u6027\n\n# hasattr()\u306b\u3088\u308b\u5b89\u5168\u306a\u30a2\u30af\u30bb\u30b9\ndef safe_attribute_access(func, attr_name):\n    if hasattr(func, attr_name):\n        return getattr(func, attr_name)\n    return None\n\nresult = safe_attribute_access(decorated_function, \"metadata\")\nprint(result)  # {'version': 1.0}\n<\/code><\/pre>\n<h2>\u95a2\u6570\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u6700\u9069\u5316<\/h2>\n<h3>\u95a2\u6570\u547c\u3073\u51fa\u3057\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9<\/h3>\n<pre><code class=\"language-python\">import time\n\n# \u95a2\u6570\u547c\u3073\u51fa\u3057\u306e\u30b3\u30b9\u30c8\u6e2c\u5b9a\ndef simple_add(a, b):\n    return a + b\n\n# \u95a2\u6570\u547c\u3073\u51fa\u3057\u3042\u308a\nstart = time.time()\nfor i in range(1000000):\n    result = simple_add(i, 1)\nfunc_time = time.time() - start\n\n# \u76f4\u63a5\u8a08\u7b97\nstart = time.time()\nfor i in range(1000000):\n    result = i + 1\ndirect_time = time.time() - start\n\nprint(f\"\u95a2\u6570\u547c\u3073\u51fa\u3057: {func_time:.4f}\u79d2\")\nprint(f\"\u76f4\u63a5\u8a08\u7b97: {direct_time:.4f}\u79d2\")\n\n# \u6700\u9069\u5316\uff1a\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u3067\u306e\u95a2\u6570\u53c2\u7167\ndef optimized_loop():\n    add_func = simple_add  # \u30ed\u30fc\u30ab\u30eb\u5909\u6570\u3067\u95a2\u6570\u3092\u53c2\u7167\n    start = time.time()\n    for i in range(1000000):\n        result = add_func(i, 1)\n    return time.time() - start\n\noptimized_time = optimized_loop()\nprint(f\"\u6700\u9069\u5316\u7248: {optimized_time:.4f}\u79d2\")\n<\/code><\/pre>\n<h3>\u30e1\u30e2\u5316\u306b\u3088\u308b\u6700\u9069\u5316<\/h3>\n<pre><code class=\"language-python\"># \u624b\u52d5\u30e1\u30e2\u5316\ndef memoize(func):\n    cache = {}\n    def wrapper(*args):\n        if args in cache:\n            return cache[args]\n        result = func(*args)\n        cache[args] = result\n        return result\n    return wrapper\n\n@memoize\ndef expensive_calculation(n):\n    # \u91cd\u3044\u8a08\u7b97\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\n    import time\n    time.sleep(0.01)\n    return n ** 2\n\n# lru_cache\u306b\u3088\u308b\u81ea\u52d5\u30e1\u30e2\u5316\nfrom functools import lru_cache\n\n@lru_cache(maxsize=128)\ndef fibonacci_cached(n):\n    if n &lt;= 1:\n        return n\n    return fibonacci_cached(n-1) + fibonacci_cached(n-2)\n\n# \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\nstart = time.time()\nresult1 = fibonacci_cached(30)\ncached_time = time.time() - start\n\nprint(f\"\u30ad\u30e3\u30c3\u30b7\u30e5\u6709\u308a: {cached_time:.4f}\u79d2\")\n<\/code><\/pre>\n<h2>\u5b9f\u8df5\u7684\u306a\u95a2\u6570\u6d3b\u7528\u30d1\u30bf\u30fc\u30f3<\/h2>\n<h3>\u30c7\u30fc\u30bf\u51e6\u7406\u95a2\u6570<\/h3>\n<pre><code class=\"language-python\"># CSV\u98a8\u30c7\u30fc\u30bf\u306e\u51e6\u7406\ndef process_student_data(data):\n    \"\"\"\u5b66\u751f\u30c7\u30fc\u30bf\u3092\u51e6\u7406\u3059\u308b\"\"\"\n    processed = []\n    \n    for record in data:\n        name, *scores = record\n        avg_score = sum(scores) \/ len(scores)\n        grade = get_grade(avg_score)\n        \n        processed.append({\n            \"name\": name,\n            \"average\": avg_score,\n            \"grade\": grade\n        })\n    \n    return processed\n\ndef get_grade(score):\n    \"\"\"\u70b9\u6570\u304b\u3089\u6210\u7e3e\u3092\u5224\u5b9a\"\"\"\n    if score &gt;= 90: return \"A\"\n    elif score &gt;= 80: return \"B\"\n    elif score &gt;= 70: return \"C\"\n    elif score &gt;= 60: return \"D\"\n    else: return \"F\"\n\n# \u4f7f\u7528\u4f8b\nstudent_data = [\n    (\"\u7530\u4e2d\", 85, 92, 78),\n    (\"\u4f50\u85e4\", 90, 88, 95),\n    (\"\u5c71\u7530\", 75, 80, 82)\n]\n\nresults = process_student_data(student_data)\nfor result in results:\n    print(f\"{result['name']}: \u5e73\u5747{result['average']:.1f} (\u6210\u7e3e: {result['grade']})\")\n<\/code><\/pre>\n<h3>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u95a2\u6570<\/h3>\n<pre><code class=\"language-python\"># \u30c7\u30fc\u30bf\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\ndef validate_email(email):\n    \"\"\"\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u7c21\u6613\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\"\"\"\n    import re\n    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$'\n    return re.match(pattern, email) is not None\n\ndef validate_age(age):\n    \"\"\"\u5e74\u9f62\u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\"\"\"\n    try:\n        age_int = int(age)\n        return 0 &lt;= age_int &lt;= 150\n    except (ValueError, TypeError):\n        return False\n\ndef validate_user_data(name, email, age):\n    \"\"\"\u30e6\u30fc\u30b6\u30fc\u30c7\u30fc\u30bf\u306e\u7dcf\u5408\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\"\"\"\n    errors = []\n    \n    if not name or len(name.strip()) == 0:\n        errors.append(\"\u540d\u524d\u306f\u5fc5\u9808\u3067\u3059\")\n    \n    if not validate_email(email):\n        errors.append(\"\u6709\u52b9\u306a\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\")\n    \n    if not validate_age(age):\n        errors.append(\"\u6709\u52b9\u306a\u5e74\u9f62\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\")\n    \n    return len(errors) == 0, errors\n\n# \u4f7f\u7528\u4f8b\nis_valid, errors = validate_user_data(\"\u7530\u4e2d\u592a\u90ce\", \"tanaka@example.com\", 25)\nif not is_valid:\n    for error in errors:\n        print(f\"\u30a8\u30e9\u30fc: {error}\")\n<\/code><\/pre>\n<h3>\u30b3\u30f3\u30d5\u30a3\u30b0\u95a2\u6570<\/h3>\n<pre><code class=\"language-python\"># \u8a2d\u5b9a\u7ba1\u7406\u95a2\u6570\ndef load_config(config_file=None, defaults=None):\n    \"\"\"\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\"\"\"\n    if defaults is None:\n        defaults = {\n            \"debug\": False,\n            \"port\": 8000,\n            \"host\": \"localhost\"\n        }\n    \n    config = defaults.copy()\n    \n    if config_file:\n        try:\n            # \u5b9f\u969b\u306e\u5b9f\u88c5\u3067\u306f json.load() \u306a\u3069\n            # \u3053\u3053\u3067\u306f\u8f9e\u66f8\u3067\u6a21\u64ec\n            file_config = {\"debug\": True, \"port\": 3000}\n            config.update(file_config)\n        except Exception as e:\n            print(f\"\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f\u30a8\u30e9\u30fc: {e}\")\n    \n    return config\n\ndef get_database_url(config):\n    \"\"\"\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9URL\u751f\u6210\"\"\"\n    host = config.get(\"db_host\", \"localhost\")\n    port = config.get(\"db_port\", 5432)\n    database = config.get(\"db_name\", \"myapp\")\n    \n    return f\"postgresql:\/\/{host}:{port}\/{database}\"\n\n# \u4f7f\u7528\u4f8b\napp_config = load_config()\ndb_url = get_database_url(app_config)\nprint(f\"DB URL: {db_url}\")\n<\/code><\/pre>\n<h2>\u95a2\u6570\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n<h3>\u95a2\u6570\u8a2d\u8a08\u306e\u539f\u5247<\/h3>\n<pre><code class=\"language-python\"># \u826f\u3044\u4f8b\uff1a\u5358\u4e00\u8cac\u4efb\u306e\u539f\u5247\ndef calculate_tax(amount, tax_rate):\n    \"\"\"\u7a0e\u984d\u8a08\u7b97\u306b\u7279\u5316\u3057\u305f\u95a2\u6570\"\"\"\n    return amount * tax_rate\n\ndef format_currency(amount):\n    \"\"\"\u901a\u8ca8\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306b\u7279\u5316\u3057\u305f\u95a2\u6570\"\"\"\n    return f\"\u00a5{amount:,.0f}\"\n\ndef get_total_with_tax(amount, tax_rate):\n    \"\"\"\u7a0e\u8fbc\u307f\u91d1\u984d\u306e\u8a08\u7b97\u3068\u8868\u793a\"\"\"\n    tax = calculate_tax(amount, tax_rate)\n    total = amount + tax\n    return format_currency(total)\n\n# \u826f\u3044\u4f8b\uff1a\u7d14\u7c8b\u95a2\u6570\uff08\u526f\u4f5c\u7528\u306a\u3057\uff09\ndef pure_function(x, y):\n    \"\"\"\u5165\u529b\u306b\u5bfe\u3057\u3066\u5e38\u306b\u540c\u3058\u51fa\u529b\u3092\u8fd4\u3059\"\"\"\n    return x * 2 + y\n\n# \u907f\u3051\u308b\u3079\u304d\u4f8b\uff1a\u526f\u4f5c\u7528\u306e\u3042\u308b\u95a2\u6570\nglobal_counter = 0\n\ndef impure_function(x):\n    \"\"\"\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u3092\u5909\u66f4\u3059\u308b\uff08\u526f\u4f5c\u7528\u3042\u308a\uff09\"\"\"\n    global global_counter\n    global_counter += 1\n    return x * global_counter\n\n# \u826f\u3044\u4f8b\uff1a\u9069\u5207\u306a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\ndef calculate_discount(price, discount_percent, max_discount=None):\n    \"\"\"\n    \u5272\u5f15\u984d\u3092\u8a08\u7b97\u3059\u308b\n    \n    Args:\n        price (float): \u5143\u306e\u4fa1\u683c\n        discount_percent (float): \u5272\u5f15\u7387\uff080-100\uff09\n        max_discount (float, optional): \u6700\u5927\u5272\u5f15\u984d\n    \n    Returns:\n        float: \u5272\u5f15\u984d\n    \n    Raises:\n        ValueError: \u4e0d\u6b63\u306a\u5272\u5f15\u7387\u304c\u6307\u5b9a\u3055\u308c\u305f\u5834\u5408\n    \n    Examples:\n        &gt;&gt;&gt; calculate_discount(1000, 10)\n        100.0\n        &gt;&gt;&gt; calculate_discount(1000, 50, max_discount=300)\n        300.0\n    \"\"\"\n    if not 0 &lt;= discount_percent &lt;= 100:\n        raise ValueError(\"\u5272\u5f15\u7387\u306f0-100\u306e\u7bc4\u56f2\u3067\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\")\n    \n    discount = price * (discount_percent \/ 100)\n    \n    if max_discount and discount &gt; max_discount:\n        discount = max_discount\n    \n    return discount\n<\/code><\/pre>\n<h3>\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u306e\u30d1\u30bf\u30fc\u30f3<\/h3>\n<pre><code class=\"language-python\">def robust_division(a, b):\n    \"\"\"\u5805\u7262\u306a\u9664\u7b97\u95a2\u6570\"\"\"\n    try:\n        # \u578b\u30c1\u30a7\u30c3\u30af\n        if not isinstance(a, (int, float)) or not isinstance(b, (int, float)):\n            raise TypeError(\"\u6570\u5024\u578b\u306e\u5f15\u6570\u304c\u5fc5\u8981\u3067\u3059\")\n        \n        # \u30bc\u30ed\u9664\u7b97\u30c1\u30a7\u30c3\u30af\n        if b == 0:\n            raise ValueError(\"\u30bc\u30ed\u3067\u5272\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\")\n        \n        return a \/ b\n        \n    except TypeError as e:\n        print(f\"\u578b\u30a8\u30e9\u30fc: {e}\")\n        return None\n    except ValueError as e:\n        print(f\"\u5024\u30a8\u30e9\u30fc: {e}\")\n        return None\n    except Exception as e:\n        print(f\"\u4e88\u671f\u3057\u306a\u3044\u30a8\u30e9\u30fc: {e}\")\n        return None\n\n# \u4f7f\u7528\u4f8b\u3068\u30c6\u30b9\u30c8\ntest_cases = [\n    (10, 2),      # \u6b63\u5e38\u30b1\u30fc\u30b9\n    (10, 0),      # \u30bc\u30ed\u9664\u7b97\n    (\"10\", 2),    # \u578b\u30a8\u30e9\u30fc\n    (10, \"2\")     # \u578b\u30a8\u30e9\u30fc\n]\n\nfor a, b in test_cases:\n    result = robust_division(a, b)\n    print(f\"{a} \u00f7 {b} = {result}\")\n<\/code><\/pre>\n<h2>\u307e\u3068\u3081<\/h2>\n<p>Python\u95a2\u6570\u306f\u3001\u52b9\u7387\u7684\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306e\u57fa\u76e4\u3068\u306a\u308b\u91cd\u8981\u306a\u6982\u5ff5\u3067\u3059\u3002\u57fa\u672c\u7684\u306a\u95a2\u6570\u5b9a\u7fa9\u304b\u3089\u9ad8\u5ea6\u306a\u30c6\u30af\u30cb\u30c3\u30af\u3001\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u307e\u3067\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u512a\u308c\u305fPython\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n<ul>\n<li><strong>\u5358\u4e00\u8cac\u4efb\u306e\u539f\u5247<\/strong>\u306b\u5f93\u3063\u305f\u95a2\u6570\u8a2d\u8a08<\/li>\n<li><strong>\u9069\u5207\u306a\u5f15\u6570\u8a2d\u8a08<\/strong>\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570\u3001\u53ef\u5909\u9577\u5f15\u6570\uff09<\/li>\n<li><strong>\u7d14\u7c8b\u95a2\u6570<\/strong>\u306e\u6d3b\u7528\u3067\u526f\u4f5c\u7528\u3092\u6700\u5c0f\u5316<\/li>\n<li><strong>\u30c7\u30b3\u30ec\u30fc\u30bf<\/strong>\u306b\u3088\u308b\u6a2a\u65ad\u7684\u95a2\u5fc3\u4e8b\u306e\u5206\u96e2<\/li>\n<li><strong>\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf<\/strong>\u306b\u3088\u308b\u52b9\u7387\u7684\u306a\u30c7\u30fc\u30bf\u51e6\u7406<\/li>\n<li><strong>\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0<\/strong>\u3067\u5805\u7262\u306a\u95a2\u6570\u3092\u4f5c\u6210<\/li>\n<\/ul>\n<p>\u95a2\u6570\u306e\u7279\u6027\u3092\u6df1\u304f\u7406\u89e3\u3057\u3001\u9069\u5207\u306a\u30d1\u30bf\u30fc\u30f3\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001Python\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u30b9\u30ad\u30eb\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3053\u308c\u3089\u306e\u30c6\u30af\u30cb\u30c3\u30af\u3092\u7a4d\u6975\u7684\u306b\u6d3b\u7528\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u25a0\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u30aa\u30ea\u30b8\u30ca\u30eb\u30a2\u30d7\u30ea\u3092\u958b\u767a\u30fb\u516c\u958b\u3057\u3066\u307f\u305f\uff01\uff01<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"AErdD5nF7m\"><a href=\"https:\/\/techgym.jp\/column\/ori-app\/\">\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u30aa\u30ea\u30b8\u30ca\u30eb\u30a2\u30d7\u30ea\u3092\u958b\u767a\u30fb\u516c\u958b\u3057\u3066\u307f\u305f\uff01\uff01<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u30aa\u30ea\u30b8\u30ca\u30eb\u30a2\u30d7\u30ea\u3092\u958b\u767a\u30fb\u516c\u958b\u3057\u3066\u307f\u305f\uff01\uff01&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/column\/ori-app\/embed\/#?secret=t35D9mo1ka#?secret=AErdD5nF7m\" data-secret=\"AErdD5nF7m\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\u25a0AI\u6642\u4ee3\u306e\u7b2c\u4e00\u6b69\uff01\u300cAI\u99c6\u52d5\u958b\u767a\u30b3\u30fc\u30b9\u300d\u306f\u3058\u3081\u307e\u3057\u305f\uff01<\/p>\n\n\n\n<p>\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821\u3067\u5148\u884c\u958b\u59cb\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"KfL79kDnoQ\"><a href=\"https:\/\/techgym.jp\/about\/ai-driven-development\/\">AI\u6642\u4ee3\u306e\u7b2c\u4e00\u6b69\uff01\u300cAI\u99c6\u52d5\u958b\u767a\u30b3\u30fc\u30b9\u300d\uff08\u521d\u5fc3\u8005\u5411\u3051\uff09<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;AI\u6642\u4ee3\u306e\u7b2c\u4e00\u6b69\uff01\u300cAI\u99c6\u52d5\u958b\u767a\u30b3\u30fc\u30b9\u300d\uff08\u521d\u5fc3\u8005\u5411\u3051\uff09&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/about\/ai-driven-development\/embed\/#?secret=v38Yr7v5L9#?secret=KfL79kDnoQ\" data-secret=\"KfL79kDnoQ\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\u25a0\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821<\/p>\n\n\n\n<p>\u300c\u6b66\u7530\u587e\u300d\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u7248\u3068\u3044\u3048\u3070\u300c\u30c6\u30c3\u30af\u30b8\u30e0\u300d\u3002<br>\u8b1b\u7fa9\u52d5\u753b\u306a\u3057\u3001\u6559\u79d1\u66f8\u306a\u3057\u3002\u300c\u9032\u6357\u7ba1\u7406\u3068\u30b3\u30fc\u30c1\u30f3\u30b0\u300d\u3067\u52b9\u7387\u5b66\u7fd2\u3002<br>\u3088\u308a\u65e9\u304f\u3001\u3088\u308a\u5b89\u304f\u3001\u3057\u304b\u3082\u5bfe\u9762\u578b\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"HvnotRkOpA\"><a href=\"https:\/\/techgym.jp\/tokyo\/tokyo_honko\/\">\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/tokyo\/tokyo_honko\/embed\/#?secret=0DJg4ia6lb#?secret=HvnotRkOpA\" data-secret=\"HvnotRkOpA\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\uff1c\u77ed\u671f\u8b1b\u7fd2\uff1e5\u65e5\u30675\u4e07\u5186\u306e\u300cPython\u30df\u30cb\u30ad\u30e3\u30f3\u30d7\u300d\u958b\u50ac\u4e2d\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"gO3OxS1e6y\"><a href=\"https:\/\/techgym.jp\/event\/nagatacho_camp\/\">\u72ec\u5b66\u3082\u30aa\u30f3\u30e9\u30a4\u30f3\u3082\u7121\u7406\u3060\u304b\u3089\u3001\u6709\u7d66\u3068\u3063\u3066\u300cPython\u30df\u30cb\u30ad\u30e3\u30f3\u30d7\u300d\u3078\u30105\u65e5\u9593\u30675\u4e07\u5186\u3011<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u72ec\u5b66\u3082\u30aa\u30f3\u30e9\u30a4\u30f3\u3082\u7121\u7406\u3060\u304b\u3089\u3001\u6709\u7d66\u3068\u3063\u3066\u300cPython\u30df\u30cb\u30ad\u30e3\u30f3\u30d7\u300d\u3078\u30105\u65e5\u9593\u30675\u4e07\u5186\u3011&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/event\/nagatacho_camp\/embed\/#?secret=hfJcE3Uymf#?secret=gO3OxS1e6y\" data-secret=\"gO3OxS1e6y\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\uff1c\u67081\u958b\u50ac\uff1e\u653e\u9001\u4f5c\u5bb6\u306b\u3088\u308b\u6620\u50cf\u30c7\u30a3\u30ec\u30af\u30bf\u30fc\u990a\u6210\u8b1b\u5ea7<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"dsG8l6ZdFo\"><a href=\"https:\/\/techgym.jp\/event\/video_director\/\">\u73fe\u5f79\u653e\u9001\u4f5c\u5bb6\u304c\u6559\u3048\u308b\u52d5\u753b\u8b1b\u5ea7\uff01\u300e\uff24\uff2f\uff27\uff21\u300f<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u73fe\u5f79\u653e\u9001\u4f5c\u5bb6\u304c\u6559\u3048\u308b\u52d5\u753b\u8b1b\u5ea7\uff01\u300e\uff24\uff2f\uff27\uff21\u300f&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/event\/video_director\/embed\/#?secret=t5R0L3BglG#?secret=dsG8l6ZdFo\" data-secret=\"dsG8l6ZdFo\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\uff1c\u30aa\u30f3\u30e9\u30a4\u30f3\u7121\u6599\uff1e\u30bc\u30ed\u304b\u3089\u59cb\u3081\u308bPython\u7206\u901f\u8b1b\u5ea7<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"QJExyto84e\"><a href=\"https:\/\/techgym.jp\/tokyo_python\/\">\u30bc\u30ed\u304b\u3089\u59cb\u3081\u308bPython\u7206\u901f\u8b1b\u5ea7\uff08\u7406\u7cfb\u51fa\u8eab\u8005\u5411\u3051\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8b1b\u5ea7\uff09<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u30bc\u30ed\u304b\u3089\u59cb\u3081\u308bPython\u7206\u901f\u8b1b\u5ea7\uff08\u7406\u7cfb\u51fa\u8eab\u8005\u5411\u3051\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8b1b\u5ea7\uff09&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/tokyo_python\/embed\/#?secret=4qZW7rKSNx#?secret=QJExyto84e\" data-secret=\"QJExyto84e\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 Python\u95a2\u6570\u306f\u3001\u30b3\u30fc\u30c9\u306e\u518d\u5229\u7528\u6027\u3068\u4fdd\u5b88\u6027\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u91cd\u8981\u306a\u6982\u5ff5\u3067\u3059\u3002\u57fa\u672c\u7684\u306a\u95a2\u6570\u5b9a\u7fa9\u304b\u3089\u9ad8\u5ea6\u306a\u30c6\u30af\u30cb\u30c3\u30af\u3001\u30c7\u30b3\u30ec\u30fc\u30bf\u3001\u30e9\u30e0\u30c0\u95a2\u6570\u307e\u3067\u3001\u95a2\u6570\u3092\u5b8c\u5168\u306b\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u8aad\u307f\u3084\u3059\u3044Python\u30d7\u30ed\u30b0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":42501,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-42804","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-column"],"views":39,"jetpack_featured_media_url":"\/wp-content\/uploads\/2025\/07\/f3403acf5c65aedec0dba821c4c26404.png","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/posts\/42804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/comments?post=42804"}],"version-history":[{"count":0,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/posts\/42804\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/media\/42501"}],"wp:attachment":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/media?parent=42804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/categories?post=42804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/tags?post=42804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}