Pythonについての記事

splitの取説
splitは、空白区切りの文字列をリストにすることができる。 python/split.py at main · ki-hi-ro/python 出力結果
縦の出力を横にする
最終的に以下の形にしたい。 初期状態 python/vertical-to-horizontal.py at e39fcd46e15772908b2ab387be7bf7a81565e701 · ki-hi-ro/python 出力結果 意図した出力になった python/vertical-to-horizontal.py at master · ki-hi-ro/python ...
sorted関数で、アナグラム判定
アナグラムとは、ある文字列が別の文字列の並べ替えということ。 ソースコード python/anagram.py at 39878c3c122d01bea78aa5276fb307879e29c975 · ki-hi-ro/python 出力結果 アナグラム判定の仕組み sorted関数は、文字列を1文字ずつ取り出し、辞書順に並べ替えたリストとして返す。 a=listen、b=s ...
例外処理の書き方の基本
exceptのeに例外が入る。 ということは、最初に頭に思い浮かんだ。 京都駅から程近い三十三間堂にて。 ちなみに、木村拓哉さんがYouTubeで三十三間堂についてアップしていた。 本題に入ろう。 ビンゴゲームを使用していく。 Ctrl + D、または、Ctrl + Cで、例外を発生させる(私はmacユーザーです) 以下の赤字部分に注目していただきたい。 これを実行する。キーボ ...
【Python】ログの書き方基本
最近の業務で自分の作ったAPI模擬プログラムにログを追加している。 そこで、この記事では、ビンゴゲームを例に、loggingモジュールを使用したPythonのログの書き方の基本に触れよう。 使用するビンゴゲーム Gitのリポジトリ。 https://github.com/ki-hi-ro/bingo/commits/master/ 解説記事。 from-zero.pyにログを追 ...
複数の値の出力はリストより辞書がいい
No image
前回のソースコード版をやっていこう。 リストの場合、zipで頑張る必要あり 出力結果 idとnameを一緒に使いたい時は、zipで頑張る必要あり。 実際に昨日の自分も頑張っていた。 いや、zipを使いこなせていなかった。 zipを使えば、やりたいことができたかもしれない。 総ての過去を未来に繋げていこう。 スキル不足を認識できてよかった。 無意識的無能から意識的無能へのジャンプ ...
API送信されたデータの保持にはリストではなく辞書を使う
No image
現在のPythonの仕事で、API送信されたデータをベースモデルを介して受信し、リストとして保持して、目的の形に変換した上で、レスポンスを作成して返すというのをやっている。 レスポンスに必要なデータをそれぞれリストとして保持して、レスポンスを作成しているが、辞書として保持した方が、柔軟性が高いのではないかと思う。 現実問題として、リストとして保持しているせいで、複数の送信API ...
Python製の三目並べ
No image
ChatGPTにPythonで三目並べを作成してもらった。 仕様 ソースコード全文 python/tic-tac-toe.py at master · ki-hi-ro/python 実行結果 どちらかのプレイヤーが勝つ場合 初回実行。Xのターン、行の数字を入力する。 0を入力した。列の数字を入力する。 0を入力した。(0, 0)の位置に「X」が入力された。Oのターン、行の数字 ...
幅優先探索プログラムにクラスの概念を導入した
No image
graph_module.py main.py 出力結果
幅優先探索の第一引数に渡すgraphを辞書から作成する
No image
元データ directionの値の意味 directionの値 意味 0 無方向 1 一方通行 2 双方向 元データからgraph作成 作成されたgraph出力 pprintは、見やすく出力するためのツール。データ数が少なく改行されなかったので、width引数を追加した。 作成されたgraphのイメージ スタートとゴールの設定 最短経路探索 使用する関数については以下参照。 数 ...
幅優先探索で最短経路を求める
No image
前回は、プレーンな幅優先探索を行なった。 今回やりたいのは、最短経路探索。 ブラックボックスをいかに使いこなすか 人体の仕組みをはじめとして、ブラックボックスになっていることは多い。 その中身を知ろうとすると、膨大な時間がかかる。 プログラミングにおける関数も中身を知らなくても、入力(引数)と出力(戻り値)だけ意識すれば、うまく組み合わせることで、プログラムを作成していける。 ...
幅優先探索をマスターする
No image
上長からの幅優先探索の第一引数に渡すデータ作成のリクエストに瞬時に対応することができなかった。 エンジニアとしての実力が可視化された瞬間だった。 スキルアップできる、実力不足を痛感できる環境にいることに感謝して、圧倒的な実力を示していきたい。 手始めに、Pythonで幅優先探索を行おう。 幅優先探索(Breadth-First Search, BFS)とは グラフやツリー構造の ...
ライブラリのインストールとアンインストール
No image
Pythonの仮想環境「venv」で必要なライブラリをインストールしたりアンインストールしたりする方法について書いていく。 pipが使えるかどうか確認 直接指定してインストール pip install ライブラリ名で必要なライブラリをインストールできる。 インストール済みのライブラリを確認 pip listで確認できる。 .venv/lib/python3.8/site-pac ...
Pythonの仮想環境「venv」
No image
Pythonの仮想環境「venv」を作成→起動→無効化する方法をまとめる。 コマンド入力 仮想環境を作成したいディレクトリで、 以下のコマンドを入力する。 エラー発生 macで行うと、2系のpythonを使用してしまい、 エラーが出た。 エラー解決 python3を明示すると、エラーなく仮想環境がインストールできた。 仮想環境を起動 以下のコマンドで仮想環境を起動した。 インタ ...
FastAPIの「Hello World」を動かす
No image
ChatGPTに相談しながら、今週足りなかったFastAPIについての知識を補強していく。 やらざるを得ない環境に身を置いていることに感謝して。 環境 Pythonは3.12.2だった。pythonコマンドでバージョンを確認して、exitと打った後に案内にしたがって、Ctrl-Dを押してプロンプト状態に戻した。 python -m venv venvで仮想環境を作成した。 ディ ...
PythonコードとFastAPIの構成理解
No image
今回扱っているRMS関連のPythonコードでは、「FastAPI」を使ってWEB APIが構築されていた。API受信サーバーには「Uvicorn」が使われている。 データのバリデーションにはpydanticが使われており、BaseModelを継承したクラスを通じて、モジュール間でデータのやり取りが行われている。 また、プロジェクト内ではRMSが使われており、そのマニュアルにも ...
タスク管理アプリを作っていく
No image
PythonのDjangoでWEBアプリ開発を行いたい。 そこでまずは、タスク管理アプリを作成していく。 記事ベースで進めていくので、見届けて欲しい。 アプリのコンセプト 以下の2点が達成できればいい(今回は) Djangoプロジェクトを準備する WEBアプリを作るのに必要なPython製フレームワークのDjangoを使用していく。 pythonの仮想環境はvenvを準備してあ ...
Pythonで作る「FizzBuzz」
No image
みなさんは「FizzBuzz」をご存知だろうか? 3の倍数の時は「Fizz」、5の倍数の時は「Buzz」、15の倍数の時は「FizzBuzz」と出力するやつだ。 前提として、1~100まで出力する。 今回はそんな「FizzBuzz」をPythonで作成してみたので、ソースコードの解説をしていきたい。 まずは単純出力 for文とrangeの知識を試すコードを書いた。 こちらを実行 ...
pythonで作った「買い物リスト作成アプリ」について解説
No image
ChatGPTの力もお借りして、コンソール上で動く「買い物リスト作成アプリ」を作成したので、見ていただきたい。 アプリの動作について ざっくりとこのアプリの動作についてお話しすると、起動して指定した場所にある買い物リストのテキストを読み込む。そして、買い物リストの内容を表示する。その後に、追加、削除、終了の3択をユーザーに選んでもらう。 追加の場合、買い物リストに商品を追加する ...