- 1. Pendulum使って簡単日時実装③ プロパティ
- 2. 【Pybulletサンプル解説】物体の動力学特性を変更する【changeDynamicsMass.py】
- 3. 16の倍数となる条件「1997 一橋大学 前期【1】」をChatGPTとsympyでやってみたい。
- 4. ユーザーベース協調レコメンドをpythonで
- 5. [Python] [python-pptx] Powerpointのノートをエクセルに出力し、変更して、戻す
- 6. 【Pybulletサンプル解説】凸凹した複雑な地形を生成する【biped2d_pybullet.py】
- 7. 【langgraph】【クイズ】StateGraphをシンプルなnodeやstateで構成して挙動を理解する
- 8. 【Python】音声ファイル変換・webmからwavに変換
- 9. FastAPIで作るドラッグ&ドロップ可能な付箋アプリ
- 10. Python for 鬼の100本ノック in range(41, 77)
- 11. FastAPIでブロック崩しゲームを作ってみた…が失敗した話
- 12. Cloud Run Jobsの並列処理を試す
- 13. FastAPIでHTMLテンプレートを使用して画面を出力する方法
- 14. FastAPIを使用した基本的なファイルアップロード機能の実装方法
- 15. Python Lab #2 ― Selenium Web テスト自動化
- 16. ABC359回答メモ
- 17. lambdaレイヤーを作成する(Python3.10 psycopg2)
- 18. 【Python】special variablesって知ってる?
- 19. [C++]Pythonに追いつきたい!2 自作プログラムでSSH接続する
- 20. Pythonでキューを list, deque で実装したときの速度比較
Pendulum使って簡単日時実装③ プロパティ
# Pendulumとは
日時の操作を容易にするPythonパッケージhttps://pendulum.eustace.io/
# 前回
[Pendulum使って簡単日時実装①](https://qiita.com/i-am-misaki/items/2ad110049ee541c4c3ee)
[Pendulum使って簡単日時実装②](https://qiita.com/i-am-misaki/items/abccb3b5c592f029771c)# プロパティ
>Pendulumはdatetime クラスよりも多くの属性とプロパティにアクセスできます。#### プロパティとは
>どんなやつかを表す情報https://wa3.i-3-i.info/word11066.html
“`python
dt = pendulum.now()
# 2024-06-23 14:09:31.460621+09:00>>> dt.year # 年
2024
>>> dt.month # 月
6
>>> dt.day # 日
23
>>> dt.hour # 時
14
【Pybulletサンプル解説】物体の動力学特性を変更する【changeDynamicsMass.py】
お疲れ様です。秋並です。
Pybullet公式gitリポジトリのサンプルコードを解説するシリーズです(一覧は[こちら](https://qiita.com/akinami/items/7b433b60aeb5115ba4d7))。
今回は、changeDynamicsMass.pyを解説します。(コードのリンクは[こちら](https://github.com/bulletphysics/bullet3/blob/master/examples/pybullet/examples/changeDynamicsMass.py))
本コードを実行すると、2つのオブジェクトが生成され、そのうち片方のオブジェクトの動力学特性を変更します。
![changeDynamicsMass.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2030125/7c71f599-8cd3-08d1-1cb2-f91ec99c2b3e.gif)
# 使用している機能
本コードは、以下の機能を使用して「オブジェ
16の倍数となる条件「1997 一橋大学 前期【1】」をChatGPTとsympyでやってみたい。
# オリジナル
・ KATSUYA【東大数学9割】様 (0:00〜13:39)・大学入試数学問題集成 様> 前期【1】 テキスト
>犬プリの世界さんの解答(PDF)へhttps://mathexamtest.web.fc2.com/1997/199710272/1997102720100mj.html
# ChatGPT-3.5先生へ。
・回答は英語です。
はじめから、「日本語で」を追加してもいいです。
“`ユーザーベース協調レコメンドをpythonで
# はじめに
ユーザーベース協調レコメンドにチャレンジ。
とりあえず動くものができたのでUP。
細かい説明は後日ゆっくりと。# githubにおいといた
https://github.com/watyanabe164/Introduction-to-Recommendation-Algorithms
# 実行結果
詳細はgithubのコードをみたらよいことにしておいて、
実行結果がどんな感じかだけ残す。実行すると、類似の高いユーザーが読んでいる書籍からおすすめ書籍のIDを10個出すようになってる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/f09c61eb-eef6-b139-894c-989837736bce.png)お試しで作ったので超粗削りだけど、動くものができたので満足です。
# メモ:Geminiに元ネタを考えてもらったときのプロンプト
プログラム作成に際してGeminiには世話になったのでそのときに書いたプロンプトおいとく
“`
以下の[Python] [python-pptx] Powerpointのノートをエクセルに出力し、変更して、戻す
PPTをプレゼンするときに、自分の手元で表示できるノートですが、英語の文章を日本語に変えることになりました。しかし、1枚づつ変更するのはけっこう面倒です。
そこで、一旦エクセルに書き出して、Google翻訳したものを、また戻すというコードを書いてみたら、思ったよりうまくいったので、備忘録を兼ねて記事にします。
なお、私はJupyter Notebookでこの作業を行っていますので、他の環境の方は工夫してみてください。
まず、読み込みたいパワーポイントファイルは、同じディレクトリに入れておきます。今回は記事用にダミーのサンプルファイルを作りました。それをページごとに読み込んで、PandasのDataFrameに1ページごと取り込んで、同じディレクトリにEXCELで出力します。
イメージはこんな感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/823476/6d437245-85fa-40b1-df67-b5e56be95d43.png)コードはこちら
“`python
i【Pybulletサンプル解説】凸凹した複雑な地形を生成する【biped2d_pybullet.py】
お疲れ様です。秋並です。
Pybullet公式gitリポジトリのサンプルコードを解説するシリーズです(一覧は[こちら](https://qiita.com/akinami/items/7b433b60aeb5115ba4d7))。
今回は、biped2d_pybullet.pyを解説します。(コードのリンクは[こちら](https://github.com/bulletphysics/bullet3/blob/master/examples/pybullet/examples/biped2d_pybullet.py))
本コードを実行すると、凸凹した地面と、複数のオブジェクト、2足歩行ロボットが生成されます。
どちらかというと、二足歩行ロボットの生成よりも凸凹な形状の生成の方がメインな気がするので、そちらについて説明します。
![addPlanarReflection.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2030125/88fe330e-5565-9967-1845-0f
【langgraph】【クイズ】StateGraphをシンプルなnodeやstateで構成して挙動を理解する
# 概要
langgraphを触り始めたので、挙動を理解するためのクイズを作ってみました。公式のチュートリアルでは、LLMの呼び出しなどのnodeを例にしていますが、少しnode自体の挙動が複雑でSateGraphの本質的な挙動の理解に集中できなかったので、よりシンプルな関数をnodeにしてみることで理解を試みるのが目的です。
# 問1
以下のスクリプトの出力は?
1. “a”
1. “b”
1. “ab”
1. “ba”“`Python
from langgraph.graph import END, StateGraphdef func_a(state: str):
return “a”
workflow = StateGraph(str)workflow.add_node(“node_a”, func_a)
workflow.add_edge(“node_a”, END)
workflow.set_entry_point(“node_a”)app = workflow.compile()
response = app.invoke(“b”)
pri【Python】音声ファイル変換・webmからwavに変換
# 概要
Pythonのffmpegを用いて、webmファイルをwavファイルに変換する
ffmpegはほかにもいろんな音声ファイルに変換できる## 事前準備
1. 以下の公式サイトからffmpegをダウンロード
https://ffmpeg.org/download.html2. 解凍したらbinのなかに入っているexeファイルを適当なフォルダに入れる
3. システム環境変数にそのフォルダのパスを通す
3. VScodeのターミナルなどでffmpegをインストールする## コード
“`python
import ffmpeginput_file = ‘aiu.webm’
output_file = ‘aiu.wav’(
ffmpeg
.input(input_file)
.output(output_file)
.run()
)
“`## 注意
“`shell
Error opening input: No such file or directory
“`
このようなエラーが出たときは、実行した際のカレントディレFastAPIで作るドラッグ&ドロップ可能な付箋アプリ
## はじめに
こんにちは!今回は、FastAPIを使ってドラッグ&ドロップ可能な付箋アプリを作成する方法をご紹介します。このアプリケーションは、シンプルなカンバンボードのように機能し、ToDo、Doing、Doneの3つのカラムに付箋を自由に移動させることができます。また、付箋の色を自由に変更することもできます。## 要件と仕様
このプロジェクトでは、以下の要件と仕様を満たすアプリケーションを開発します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/f6fe6af4-7fdd-3a7b-b3ce-26d30399ecec.png)
### 機能要件
1. ユーザーは新しい付箋を作成できる
2. 付箋にはテキスト内容を入力できる
3. 付箋は「ToDo」「Doing」「Done」の3つのカラムのいずれかに属する
4. ユーザーは付箋をドラッグ&ドロップで異なるカラムに移動できる
5. 付箋の色を変更できる
6. 付箋を削除できる
7. アプリケーションを再読Python for 鬼の100本ノック in range(41, 77)
https://www.youtube.com/watch?v=Gh0qRBHbnVs&t=5365s
後半はライブラリの使用方法の解説になっています。動画では、Jupiternoteを使用されているので、VSCodeだと限界を感じてきました。
とりあえずの目標は、前半を2周~3週くらいにしようと思います。
FastAPIでブロック崩しゲームを作ってみた…が失敗した話
## はじめに
こんにちは、みなさん。今回は、私が「FastAPIでブロック崩しゲームを作る」という少し変わったチャレンジをしてみた経験を共有したいと思います。結論から言うと、このプロジェクトは技術的には成功しましたが、実用面では大きな失敗でした。この記事を通じて、私の失敗から得られた教訓をみなさんと共有できればと思います。
FastAPIでhtmlを出力するからのながれ、ゲームもできるかなと甘い考えで取り組んだ失敗談です。
## はじめに:なぜFastAPIでゲームを?
私がFastAPIでゲームを作ろうと思い立ったのには、いくつかの理由がありました:
1. リアルタイム通信の学習:WebSocketを使ったリアルタイム通信の実装を学ぶ良い機会になると考えました。
2. サーバーサイドゲームロジック:チート防止やマルチプレイヤー機能の実装を容易にできるのではないかと期待しました。
3. 新しい可能性の探求:Web技術の新しい使い方を模索することで、何か面白い発見があるかもしれないと思いました。## 実装
### ファイル構成
“`
fastapi-breakoutCloud Run Jobsの並列処理を試す
# はじめに
現在業務で,Cloud Run Jobsを扱っており,並列処理について検討していたので,その内容を記載します.
# Cloud Run Jobsとは
Cloud Run JobsはCloud Runの機能の一つで,手動実行や,スケジュール設定による定期実行をすることが可能です.
https://cloud.google.com/run/docs/resource-model?hl=ja#jobs
## 並列処理
Cloud Run Jobsには,並列処理という機能が備わっています.下図のイメージのように,1つのジョブに対して,複数のタスクを設定でき,それを直列や並列に処理することが可能となっています.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618319/7604d837-4886-7841-ebbf-c89a497d1a01.png)
# お題
今回はコンテナ内の処理を何とか並列処理にしたいと思います.スクリプト自体は至ってシンプルなものですFastAPIでHTMLテンプレートを使用して画面を出力する方法
FastAPIは高速なWeb APIを構築するためのモダンなPythonフレームワークですが、HTMLテンプレートを使用して画面を出力することも可能です。この記事では、FastAPIとJinja2テンプレートエンジンを組み合わせて、動的なHTML画面を生成する方法を説明します。
## 環境設定
まず、必要なパッケージをインストールします:
“`bash
pip install fastapi uvicorn jinja2
“`## プロジェクト構造
プロジェクトは以下のような構造にします:
“`
my_fastapi_project/
│
├── main.py
└── templates/
└── index.html
“`## コード実装
### main.py
“`python
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
from fastapi.responses import HTMLResponseapp =
FastAPIを使用した基本的なファイルアップロード機能の実装方法
## はじめに
この記事では、Windows 11環境でFastAPIを使って基本的なファイルアップロード機能を実装する方法を解説します。FastAPIは、Pythonで高速かつ効率的なWeb APIを構築するための現代的なフレームワークです。## 目次
1. 環境設定
2. 基本的なファイルアップロード
3. 動作確認の手順
4. まとめ## 1. 環境設定 (Windows 11向け)
まず、Windows 11でPythonとFastAPIの環境を設定します。
1. **Pythonのインストール**:
– [Python公式サイト](https://www.python.org/downloads/)からWindows用のインストーラをダウンロードします。
– インストール時に「Add Python to PATH」にチェックを入れてください。2. **必要なパッケージのインストール**:
コマンドプロンプトを管理者として実行し、以下のコマンドを入力します:“`
pip install fastapi
pip instPython Lab #2 ― Selenium Web テスト自動化
# Python Lab #2 ― Selenium Web テスト自動化
過去に Web 画面(React、Vue の 2種類の画面)を開発しました。
https://qiita.com/tengbu-haoshou/items/01255518c78b69f6136d
今回、Selenium を使って自動的に Web 画面(React、Vue の 2種類の画面)を操作するという開発をしてみました。
簡単なリグレッションテストとして使えそうです。
ブラウザー(Chrome)をインストールせず、Selenium 内包のブラウザー(Chrome for Testing)を使用しました。便利ですねー。## テストシナリオ
1. [ログイン] 画面にて、何度かの入力ミスによるログイン失敗ののち、ログインに成功し [ホーム] 画面に飛ぶ。
2. [ホーム] 画面 のタブを使って、[セッティング] 画面に飛んで、[ホーム] 画面に飛ぶ。
3. [ホーム] 画面にて、ログアウトして [ログイン] 画面に飛ぶ。**[React、React-Bootstrap]**
![Python
ABC359回答メモ
# 0.はじめに
問題が難しくなったのか自分が衰えたのか最近は
調子があがりません。
と、臨んだ今回ですが、ABまでで終了と2問だけのAC。
今回はC問題の難度が高かったためかレートは-19と
そこまで落ちず764となりました。# 1.A – Count Takahashi
単純に1個ずつ入力しTakahashiと
一致した入力をカウントして最後に出力でACでした。https://atcoder.jp/contests/abc359/submissions/54793228
# 2.B – Couples
リストを3個目から見ていき2個前と同じならカウントし
最後に出力してACでした。https://atcoder.jp/contests/abc359/submissions/54802133
# 3. C – Tile Distance 2
コンテスト時1時間以上悩んでもWA9個がなくせませんでした。
コンテスト終了後解説をさらっとみてなるほどと実装しても
結局うまくいかず、解説の実装例を見てマネしつつ
元の自分の考えを合わせてやっlambdaレイヤーを作成する(Python3.10 psycopg2)
## Python3.8 サポート終了
[こちらの記事](https://qiita.com/daiki7010/items/a2ad976b625be579a9c0)でlambda(python3.8)を使用したRDSの接続方法についての記事を書きましたが、2024年10月をもってPython3.8のサポートが終了するらしく、pythonのバージョンをあげた対応をしてみました。## 作成するpythonのバージョン
今回は「Python3.10.14」で作成していきます。## python3.10.14の理由
ランタイムを「Python3.12」、「Python3.11」それぞれ試しましたが、どちらも下記のエラーとなってしまいました。
“`
import module ‘lambda_function’: No module named ‘psycopg2._psycopg’
“`[AWSドキュメント](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-
【Python】special variablesって知ってる?
# はじめに
Pythonをデバッグしたときに出てくる `special variables`について、皆さんご存知でしょうか? この記事では、`special variables`について、解説したいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156096/ac0d2353-fa2a-222e-8b59-73aa3a5e2e39.png)
special variablesをクリックして、開くと[Dunder(特殊メソッド)](https://qiita.com/twrcd1227/items/e5cb450b5a225c65d12b)がいっぱい出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156096/abed466a-9c0d-4e78-41c3-72c99882b8b8.png)
# special variablesとは?
インタープリタ
[C++]Pythonに追いつきたい!2 自作プログラムでSSH接続する
# この記事の対象読者
**Python**の**paramiko**モジュールの使われ方を見たとき、「**えっ、こんな手軽にSSHが使えるんだ!**」と、感じた事はないでしょうか?「C++で、ワンポイントで**手軽にSSHを使いたい**。」そんなニッチな方向けの記事です。ちなみに、C++で**がっつりSSHを使いたい**人向けには、[libssh2](https://libssh2.org/ “libssh2”)というライブラリが公開されていますので、こちらをお勧めします。
また、この技法は、https://qiita.com/GoldSmith/items/aeec5a42fcc76dd6f37d
の、SubProcessクラスを使って構築しています。こちらの記事も、よろしければご覧ください。
## 仕組みは子プロセスのシェルでSSH接続のスクリプトを実行する
これだけです。
## 事前準備としてリモートで接続するコンピュータを用意して、鍵認証でログイン出来るようにしておきましょう
`ssh リモートホスト名`+`Enter`、または、`ssh ユーザー名@リモートホPythonでキューを list, deque で実装したときの速度比較
# Pythonでキューを実装
キューを実装したときパフォーマンスを比較するため、次の5パターンを用意した
1. dequeを使ってpopleft→append
1. dequeを使ってappend→popleft
1. dequeを使ってmaxlen指定でappend
1. listでpop→append
1. listでappend→pop### コード
“`python
import timeit
from collections import dequeimport matplotlib.pyplot as plt
import numpy as npLIST_LEN = 10**8
APPEND_REP = 10**6
LOOP = 15def que_test1(list_len=LIST_LEN, append_rep=APPEND_REP):
que = deque([.0]*list_len)
for i in range(append_rep-1):
que.popleft()
que.appe関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.20
JAVA関連のことを調べてみた
-
- 2024.09.20
iOS関連のことを調べてみた
-
- 2024.09.20
JavaScript関連のことを調べてみた
-
- 2024.09.20
Rails関連のことを調べてみた
-
- 2024.09.20
Python関連のことを調べてみた
-
- 2024.09.20
Lambda関連のことを調べてみた