Pythonについての記事

回転寿司のようなプログラム
リストの要素を回転させて特定の要素が来たら出力するプログラムを作成した。 ソースコード リストの回転 · ki-hi-ro/python@298e36e 出力結果 解説 寿司の名前を要素に持つconveyor_belt_suhsiがある。 それを回転させるrotate_sushi_belt関数。 以下のように使用している。 回転回数は1回。 方向が左の場合。 マグロが先頭に、サ ...
【Python】点数のリストから順位を出す
点数のリストから順位を出すプログラムを作成した。 ソースコード rank_sum · ki-hi-ro/python@6e0850a 出力結果 解説 5つの要素を持つscore_listがある。 for文で一つ一つの要素に対して処理を行う。 rank_countには、sum関数の内包表記で、自身の点数より大きい点数の数をカウントしている。 そして、点数と順位を出力している。 7 ...
【Python】//と%で秒数を時間と分に変換する
//は、余りを切り捨てることのできる演算子。 %は、余りを出すことができる。 これらを使用して、秒数の合計から時間と分を出していこう。 ソースコード python/total_seconds.py at 0fd1f5c9a939bd4347eb375f06679d7c9274df9a · ki-hi-ro/python 出力結果
【Python】total_seconds()で現在の日時を秒数に変換する
total_seconds()で現在の日時を秒数に変換していく。 ソースコード total_seconds · ki-hi-ro/python@b3f5e1f 出力結果
【Python】sum関数で秒の合計を出す
sum関数で秒の合計を出す方法について見ていこう。 sum関数の基本 iterable・・・合計したいリストやタプルなど start・・・初期値(デフォルトは整数の0) サンプルコード python/sum.py at 707dff44bd1bd680200cee77e4fcc6720da2c8fe · ki-hi-ro/python 出力結果 数字のみのリスト 初期値がデフォ ...
【Python】strptime
Pythonのstrptimeについて見ていこう。 文字列をdatetime型に変換する datetime.strptime()は、文字列を日時オブジェクトに変換する。 string perse time 文字列を時刻として解析するという意味がある。 サンプルコード strptime · ki-hi-ro/python@1cbd8ce 出力結果
【Python】timedelta
経過時間を表す型である「timedelta」について見ていこう。 timeとdelta timedeltaは、時間を表すtimeと差を表すdeltaが合わさった単語。 サンプルコード timedelta · ki-hi-ro/python@b7cfb36 出力結果
【Python】join
joinについて見ていこう。 サンプルソースコード join · ki-hi-ro/python@93f32ed 10から50まで10刻みの数値を要素に持つリストtest_list。 joinメソッドを使用して、文字列に変換したものを繋げた。 -で繋げることもできる。
【Python】zipとアンパック
数字と数字のローマ字のタプルのリストがある。 それをアンパックしたものをzipに渡したものをfor文のイテラブルとして使用する。 zipの処理が行われた要素を出力する。 ソースコード zip · ki-hi-ro/python@21d72c2 出力結果 元のタプルの最初の要素のタプルと、元のタプルの二つ目の要素のタプルが生成された。 アンパック *num_listは、[(1, ...
【Python】all
allで全てが条件に当てはまった時にTrueにすることができる。 ソースコード all · ki-hi-ro/python@2f22a34 for_all_listは、数字のリスト。 allに、for_all_listの中身が5より大きいという条件を指定している。 出力結果 全ての要素が5より大きいので、以下のように出力される。
【Python】rangeとenumerate
rangeをfor文のイテラブルとして使用した時 enumerateをfor文のイテラブルとして使用した時 それぞれの違いについて見ていこう。 ソースコード range_enumerate · ki-hi-ro/python@8b3c8c0 range(10)を使用した場合と、文字列のリストに対してenumerateを使用した場合のソースコード。 出力結果 rangeの場合、0 ...
【Python】mapはfor文で使用すると消費される
リストの中身を一括で型変換できるmap。 そのmapオブジェクトをfor文のイテラブルとして使用すると消費されてしまう。 どういうことか?見ていこう。 ソースコード map.py · ki-hi-ro/python@92037c1 print_ints関数のfor文でイテラブルの中身を出力する。そして、その後のイテラブルのリストを出力する。 str_listには、文字列の数字が ...
【Python】pop
リストの要素を削除することのできるpopメソッドについて見ていこう。 サンプルコード pop · ki-hi-ro/python@63f6f86 sample_listに対して、2通りの方法でpopメソッドを使用している。 何も指定しない場合、最後の要素が削除される。 インデックスを使用して、要素を削除することもできる。 出力結果 削除された要素と削除処理を行った後のリストを出 ...
【Python】集合の対称差演算子
集合A ^ 集合Bで、集合Aと集合Bの差の集合ができる。 ソースコード symmetric_difference.py · ki-hi-ro/python@2f5ca39 symmetric_diffに集合の対称差が入る。 実行結果 set_aとset_bの対称差は、{1, 4, 5}
【Python】リスト2つを比較して、もう一方のリストに存在しない要素のリストを作成する
a_listとb_listがある。 a_listにあって、b_listにない要素のリストを作成する。 ソースコード not_in_others_list.py · ki-hi-ro/python@f07e63c not_in_b_listはリスト内包表記で、a_listの中でb_listにないitemをリストにしている。 実行結果 a_listにあって、b_listにないite ...
【Python】indexメソッド
indexメソッドは、リストやタプルの中で、指定した要素が最初に現れる位置(インデックス)を返すメソッド。 サンプルコード python/index.py at main · ki-hi-ro/python 以下のコードについて解説しよう。some_listに対して、indexメソッドの引数に3を入れたものを使用している。それが変数indexに入る。 次のコードについて解説する ...
【Python】現在の座標をzipで更新する
二次元配列の座標空間で、現在地からある量だけ移動するというプログラムを作成した。 【Python】現在の座標をzipで更新する · ki-hi-ro/python@ed863a1 二次元配列の座標空間 two_d_listという二次元配列を作成した。出力を見やすくするために、pprintモジュールのpprintメソッドを使用している。 出力結果。 現在地 my_position ...
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 ...
【Python】ログの書き方基本
最近の業務で自分の作ったAPI模擬プログラムにログを追加している。 そこで、この記事では、ビンゴゲームを例に、loggingモジュールを使用したPythonのログの書き方の基本に触れよう。 使用するビンゴゲーム Gitのリポジトリ。 https://github.com/ki-hi-ro/bingo/commits/master/ 解説記事。 from-zero.pyにログを追 ...
例外処理の書き方の基本
exceptのeに例外が入る。 ということは、最初に頭に思い浮かんだ。 京都駅から程近い三十三間堂にて。 ちなみに、木村拓哉さんがYouTubeで三十三間堂についてアップしていた。 本題に入ろう。 ビンゴゲームを使用していく。 Ctrl + D、または、Ctrl + Cで、例外を発生させる(私はmacユーザーです) 以下の赤字部分に注目していただきたい。 これを実行する。キーボ ...
Python製の三目並べ
ChatGPTにPythonで三目並べを作成してもらった。 仕様 ソースコード全文 python/tic-tac-toe.py at master · ki-hi-ro/python 実行結果 どちらかのプレイヤーが勝つ場合 初回実行。Xのターン、行の数字を入力する。 0を入力した。列の数字を入力する。 0を入力した。(0, 0)の位置に「X」が入力された。Oのターン、行の数字 ...
幅優先探索プログラムにクラスの概念を導入した
graph_module.py main.py 出力結果
幅優先探索の第一引数に渡すgraphを辞書から作成する
元データ directionの値の意味 directionの値 意味 0 無方向 1 一方通行 2 双方向 元データからgraph作成 作成されたgraph出力 pprintは、見やすく出力するためのツール。データ数が少なく改行されなかったので、width引数を追加した。 作成されたgraphのイメージ スタートとゴールの設定 最短経路探索 使用する関数については以下参照。 数 ...
幅優先探索で最短経路を求める
前回は、プレーンな幅優先探索を行なった。 今回やりたいのは、最短経路探索。 ブラックボックスをいかに使いこなすか 人体の仕組みをはじめとして、ブラックボックスになっていることは多い。 その中身を知ろうとすると、膨大な時間がかかる。 プログラミングにおける関数も中身を知らなくても、入力(引数)と出力(戻り値)だけ意識すれば、うまく組み合わせることで、プログラムを作成していける。 ...
幅優先探索をマスターする
上長からの幅優先探索の第一引数に渡すデータ作成のリクエストに瞬時に対応することができなかった。 エンジニアとしての実力が可視化された瞬間だった。 スキルアップできる、実力不足を痛感できる環境にいることに感謝して、圧倒的な実力を示していきたい。 手始めに、Pythonで幅優先探索を行おう。 幅優先探索(Breadth-First Search, BFS)とは グラフやツリー構造の ...
API送信されたデータの保持にはリストではなく辞書を使う
現在のPythonの仕事で、API送信されたデータをベースモデルを介して受信し、リストとして保持して、目的の形に変換した上で、レスポンスを作成して返すというのをやっている。 レスポンスに必要なデータをそれぞれリストとして保持して、レスポンスを作成しているが、辞書として保持した方が、柔軟性が高いのではないかと思う。 現実問題として、リストとして保持しているせいで、複数の送信API ...
複数の値の出力はリストより辞書がいい
前回のソースコード版をやっていこう。 リストの場合、zipで頑張る必要あり 出力結果 idとnameを一緒に使いたい時は、zipで頑張る必要あり。 実際に昨日の自分も頑張っていた。 いや、zipを使いこなせていなかった。 zipを使えば、やりたいことができたかもしれない。 総ての過去を未来に繋げていこう。 スキル不足を認識できてよかった。 無意識的無能から意識的無能へのジャンプ ...
タスク管理アプリを作っていく
PythonのDjangoでWEBアプリ開発を行いたい。 そこでまずは、タスク管理アプリを作成していく。 記事ベースで進めていくので、見届けて欲しい。 アプリのコンセプト 以下の2点が達成できればいい(今回は) Djangoプロジェクトを準備する WEBアプリを作るのに必要なPython製フレームワークのDjangoを使用していく。 pythonの仮想環境はvenvを準備してあ ...
Pythonで作る「FizzBuzz」
みなさんは「FizzBuzz」をご存知だろうか? 3の倍数の時は「Fizz」、5の倍数の時は「Buzz」、15の倍数の時は「FizzBuzz」と出力するやつだ。 前提として、1~100まで出力する。 今回はそんな「FizzBuzz」をPythonで作成してみたので、ソースコードの解説をしていきたい。 まずは単純出力 for文とrangeの知識を試すコードを書いた。 こちらを実行 ...
pythonで作った「買い物リスト作成アプリ」について解説
ChatGPTの力もお借りして、コンソール上で動く「買い物リスト作成アプリ」を作成したので、見ていただきたい。 アプリの動作について ざっくりとこのアプリの動作についてお話しすると、起動して指定した場所にある買い物リストのテキストを読み込む。そして、買い物リストの内容を表示する。その後に、追加、削除、終了の3択をユーザーに選んでもらう。 追加の場合、買い物リストに商品を追加する ...
ライブラリのインストールとアンインストール
Pythonの仮想環境「venv」で必要なライブラリをインストールしたりアンインストールしたりする方法について書いていく。 pipが使えるかどうか確認 直接指定してインストール pip install ライブラリ名で必要なライブラリをインストールできる。 インストール済みのライブラリを確認 pip listで確認できる。 .venv/lib/python3.8/site-pac ...
Pythonの仮想環境「venv」
Pythonの仮想環境「venv」を作成→起動→無効化する方法をまとめる。 コマンド入力 仮想環境を作成したいディレクトリで、 以下のコマンドを入力する。 エラー発生 macで行うと、2系のpythonを使用してしまい、 エラーが出た。 エラー解決 python3を明示すると、エラーなく仮想環境がインストールできた。 仮想環境を起動 以下のコマンドで仮想環境を起動した。 インタ ...
FastAPIの「Hello World」を動かす
ChatGPTに相談しながら、今週足りなかったFastAPIについての知識を補強していく。 やらざるを得ない環境に身を置いていることに感謝して。 環境 Pythonは3.12.2だった。pythonコマンドでバージョンを確認して、exitと打った後に案内にしたがって、Ctrl-Dを押してプロンプト状態に戻した。 python -m venv venvで仮想環境を作成した。 ディ ...
PythonコードとFastAPIの構成理解
今回扱っているRMS関連のPythonコードでは、「FastAPI」を使ってWEB APIが構築されていた。API受信サーバーには「Uvicorn」が使われている。 データのバリデーションにはpydanticが使われており、BaseModelを継承したクラスを通じて、モジュール間でデータのやり取りが行われている。 また、プロジェクト内ではRMSが使われており、そのマニュアルにも ...

タグ