-
再帰を使ってフィボナッチ数列を表示するPythonプログラムの書き方
再帰(リカージョン)を利用してフィボナッチ数列を表示するには、自分自身を繰り返し呼び出すメソッドを定義します。このメソッドは、ベースケース(基本条件)に到達するまで再帰的に呼び出され続けます。以下に、その実装例を示します。サンプルコードdef fibonacci_recursion(my_val): if my_val <= 1: return my_val else: return(fibonacci_recursion(my_val-1) + fibonacci_recursion(my_val-2)) num_terms = 12 if
-
Pythonで文字「G」のパターンを出力するプログラム
コンソールにアスタリスク(*)を使って文字「G」のパターンを表示したい場合、専用の関数を定義し、二重ループ(ネストされたループ)で行と列を走査しながら、条件に合致する位置だけ「*」を出力する方法が有効です。以下に実際の実装例を示します。サンプルコードdef display_pattern(my_line): my_pattern = for i in range(my_line): for j in range(my_line): if ((j == 1 and i != 0 and i != my_line - 1)
-
Pythonで昨日・今日・明日の日付を取得する方法
Pythonで現在の日付を基準にして、昨日・今日・明日の日付を求めたい場面はよくあります。そのような場合、まずdatetimeモジュールを使って現在の日時を取得し、組み込みのtimedeltaクラスを活用することで、前日や翌日の日付を簡単に計算できます。以下に具体的な実装例を示します。サンプルコードfrom datetime import datetime, timedelta present = datetime.now() yesterday = present - timedelta(1) tomorrow = present + timedelta(1) print(昨日の日付:)
-
Pythonで現在時刻と指定時刻の差を求めるプログラムの作り方
はじめに 現在の時刻と指定された時刻との差を求めたい場合、時と分をパラメータとして受け取る関数を定義すると便利です。この関数は、2つの時刻を分単位に変換して差を計算し、その結果を時間と分の形式で出力します。 以下に具体的な実装例を示します。 サンプルコード def difference_time(h_1, m_1, h_2, m_2): t_1 = h_1 * 60 + m_1 t_2 = h_2 * 60 + m_2 if (t_1 == t_2): print(2つの時刻は同じです) return else:
-
【初心者向け】Pythonでラップタイマーを作成する方法を解説
Pythonを使ってストップウォッチのような「ラップタイマー」を作成するには、標準ライブラリの time モジュールが便利です。この記事では、Enterキーを押すたびにラップ時間を計測し、Ctrl+Cで計測を終了できるシンプルなラップタイマーの実装方法を、サンプルコードとともにわかりやすく解説します。ラップタイマーの仕組み基本的な仕組みは以下のとおりです。あらかじめラップ数は固定せず、無限ループで計測を続けるtry-exceptブロックを使い、Ctrl+C(KeyboardInterrupt)で安全に終了する現在時刻と開始時刻・前回ラップ時刻の差分から、合計時間とラップ時間を算出するサンプルコ
-
Boto3でAWS Glueリソースにタグを追加する方法を解説
本記事では、Pythonのboto3ライブラリを使用して、AWS Glueリソースにタグを追加する方法を詳しく解説します。タグを活用することで、リソースの管理やコスト配分、アクセス制御が容易になります。実現したいことAWS Glueデータベースに対して、「glue-db: test」というタグを追加します。課題: Pythonでboto3ライブラリを使用し、AWS Glueリソースにタグを追加する。解決のためのアプローチステップ1: boto3とbotocoreの例外クラス(ClientErrorなど)をインポートし、例外処理に備えます。ステップ2: 関数に必要なパラメータは resource
-
Boto3を使ってAWS Glueリソースのタグを取得する方法
本記事では、Pythonのboto3ライブラリを使用して、AWS Glueリソースに紐づけられたタグ情報を取得する方法を解説します。実現したいことAWS Glueデータベースから「glue-db: test」といったタグを取得することを例に、具体的な手順を見ていきましょう。課題: Pythonでboto3ライブラリを使い、AWS Glueリソースからタグを取得するコードを実装します。全体の流れ(アプローチ)ステップ1: 例外処理のために boto3 および botocore の例外クラスをインポートします。ステップ2: この関数では resource_arn(対象リソースのARN)が必須パラメ
-
Boto3を使ってAWS Glueリソースからタグを削除する方法を解説
本記事では、Pythonのboto3ライブラリを使用して、AWS Glueリソースからタグを削除する方法について詳しく解説します。実行例AWS Glueデータベースに設定されているタグ「glue-db: tests」を削除するケースを例に説明します。課題: Pythonのboto3ライブラリを使って、AWS Glueリソースのタグを削除することです。問題を解決するためのアプローチと手順ステップ1: 例外処理のためにboto3およびbotocoreの例外モジュールをインポートします。ステップ2: 関数にはresource_arn(リソースARN)とtags_list(削除するタグのキーリスト)と
-
Boto3を使ってAWS Glueクローラーのスケジュールを更新する方法【Python実践ガイド】
この記事では、AWSアカウント内に存在するAWS Glueクローラーのスケジュールを更新する方法について解説します。 例 課題: Pythonのboto3ライブラリを使用して、クローラーのスケジュールを更新します。 解決のためのアプローチ/アルゴリズム ステップ1: 例外処理のためにboto3とbotocore.exceptionsをインポートします。 ステップ2: この関数では、crawler_name(クローラー名)とscheduler(スケジュール)が必須パラメータとなります。 schedulerはcron(cron式)という形式で指定する必要があります。cron式は例えば「15 12
-
Boto3を使ってAWS Glueカタログのワークフロー詳細を更新する方法
本記事では、AWS Glueカタログに登録されたワークフローの詳細情報を、Pythonのboto3ライブラリを使って更新する方法を解説します。 課題の概要 課題: Pythonのboto3ライブラリを使用して、自分のAWSアカウント内に作成済みのワークフローの詳細を更新します。 解決のためのアプローチとアルゴリズム ステップ1: 例外処理のために、boto3およびbotocoreの例外モジュールをインポートします。 ステップ2: workflow_nameは必須パラメータです。Description(説明)とdefault_run_properties(デフォルト実行プロパティ)は任意パラメ
-
Pythonで日付文字列をタイムスタンプに変換する方法【mktime活用】
Pythonで日付を表す文字列をタイムスタンプ(UNIX時間)に変換したい場合、「time」パッケージに含まれるmktimeメソッドを使用するのが一般的です。この記事では、具体的なコード例と実行結果をもとに、その手順をわかりやすく解説します。 サンプルコード import time import datetime my_string = 24/03/2021 print(The date string is :) print(my_string) print(The timestamp is :) print(time.mktime(datetime.datetime.strptime(my
-
Pythonで各曜日の出現回数を求める方法|サンプルコードと解説
プログラミングの練習問題などで、「ある期間の中で各曜日が何回出現するか」を求めたいことがあります。Pythonでは、曜日名のリストを定義して反復処理を行い、出現回数を順にカウントアップしていくことで簡単に実現できます。 以下に具体的な実装例を示します。 サンプルコード def num_of_occurrence(n, first_day): my_days = [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday] my_count = [4 for i in range(0, 7)] my_p
-
PythonでTkinterボタンのコマンド(イベントハンドラ)を動的に変更する方法
TkinterのButtonウィジェットは、アプリケーション内で特定の操作を実行するためのイベントを処理する役割を担っています。こうしたイベントに対応するには、通常、実行したい処理をまとめたメソッド(関数)を定義し、ボタンのcommandオプションに割り当てます。しかし、ボタンを作成した後から、クリック時に実行される処理(イベントメソッド)を変更したい場合もあるでしょう。そんなときに便利なのが、configure(options)メソッドです。このメソッドを使えば、ボタンウィジェットの設定を後から自由に再構成でき、新しいメソッドを定義してボタンに割り当てることで、同じボタンでも状況に応じてまっ
-
Pythonでタプルのリストを各タプルの最後の要素を基準に昇順ソートする方法
リスト内の各タプルの最後の要素を基準にして、タプルのリストを昇順(小さい順)に並べ替えたいケースはよくあります。本記事では、まずタプルの最後の要素を取得する関数を定義し、その関数をソートのキーとして指定することで並べ替えを実現する方法を解説します。 サンプルコード def sort_last_elem(num): return num[-1] def sort_structure(my_tuple): return sorted(my_tuple, key=sort_last_elem) my_list = [(45, 31), (23, 67), (92, 60), (9
-
Boto3を使ってAWS Glueの全クローラーをページネーション処理する方法
AWS Glueのクローラーは、S3やJDBC接続先などのデータソースを走査し、データカタログへテーブル定義を自動登録する仕組みです。運用が進むとクローラーの数は増えていき、APIは一度ですべての結果を返せないため、レスポンスはページ分割(ページネーション)された形式になります。本記事では、Pythonのboto3ライブラリを使って、AWSアカウント内のAWS Glue Data Catalogに存在するすべてのクローラーをページネーション処理しながら取得する方法を解説します。 やりたいこと 自分のAWSアカウントに作成されたAWS Glue Data Catalog上のすべてのクローラーを、
-
Pythonのdel演算子でタプルのリストから指定位置の要素を削除する方法
タプルのリストから特定の位置にある要素を削除して切り詰めたい場合、Pythonの「del」演算子を使うと簡単に実現できます。delはリストの要素をインデックス指定で直接削除できるため、コードがシンプルになり可読性も高まります。以下に具体的な実装例を示します。サンプルコードmy_list = [(1,2, 11), (99, 76, 34, 89), (3.08, 11.56), ("Hi", "Will"), ("Rob", 'Ron')] n = 2 print("The list is :")
-
Boto3を使ってAWS Glueの全データベースをページネーションで取得する方法
この記事では、boto3ライブラリを使用して、AWS Glueに存在するすべてのデータベースをページネーション(ページ分割)しながら取得する方法を解説します。課題の概要問題: Pythonのboto3ライブラリを使い、自分のアカウント内に作成されたAWS Glue Data Catalogのすべてのデータベースをページネーション処理で一覧取得します。解決のためのアプローチとアルゴリズムステップ1: boto3とbotocoreの例外クラスをインポートし、エラーハンドリングに備えます。ステップ2: 本関数ではmax_items、page_size、starting_tokenの3つをパラメータと
-
Pythonでリストから全要素がNoneのタプルを削除する方法
タプルのリストの中から、すべての要素が「None」であるタプルを削除したい場合、リスト内包表記を使うと簡潔に実現できます。 以下にその実行例を示します。 サンプルコード my_list = [(2, None, 12), (None, None, None), (23, 64), (121, 13), (None, ), (None, 45, 6)] print(The list is : ) print(my_list) my_result = [sub for sub in my_list if not all(elem == None for elem in sub)] print
-
Boto3を使ってAWS Glueのジョブ実行(Job Run)をページネーションで取得する方法
この記事では、AWS Glueに存在するジョブのすべてのジョブ実行(Job Run)を、ページネーション処理を使って効率的に取得する方法を解説します。例課題: Pythonのboto3ライブラリを使用して、自分のアカウント内に作成されたAWS Glueデータカタログのジョブについて、そのジョブ実行をページネーションで順次取得します。解決のためのアプローチとアルゴリズムステップ1: 例外処理のために、boto3およびbotocoreの例外モジュールをインポートします。ステップ2: job_nameは必須パラメータです。一方、max_items、page_size、starting_tokenは任
-
Boto3を使ってAWS Glueのすべてのジョブをページネーションで取得する方法
この記事では、AWS Glueに存在するすべてのジョブをページネーション(ページ分割)しながら効率的に取得する方法を解説します。 例 問題: Pythonのboto3ライブラリを使用して、自分のアカウントに作成されたAWS Glue Data Catalog内のジョブをページネーションで一覧取得します。 解決のためのアプローチとアルゴリズム ステップ1: 例外処理のために、boto3およびbotocoreの例外モジュールをインポートします。 ステップ2: max_items、page_size、starting_tokenは、いずれもオプションパラメータです。 max_items: 返却す