- 1. ABC348(Atcoder Beginner Contest)のA~D(A,B,C,D)問題をPythonで解説(復習)
- 2. PythonでPDF文書にヘッダーとフッターを挿入する方法
- 3. DjangoRestFrameworkを用いたWebAPI作成(heroku DBサーバ使用とデプロイ)
- 4. Databricks にて pytest によるテスト対象のディレクトリにノートブックが含まれる場合のエラーについて
- 5. Can’t load plugin: sqlalchemy.dialects:duckdb
- 6. 仮想環境を使う
- 7. pythonの __name__ == “main”の意味
- 8. OpenAIで作るおしゃべりボット
- 9. Pythonを使ってAtCoderを始めるためのガイド
- 10. pythonで動的に作れる変数はグローバル変数だけと気付いた
- 11. インターホンをスマホに通知する方法をものすごく丁寧に説明する【Raspberry Pi Zero WH 】
- 12. 画像からのパッチ抽出について (OpenCV, PyTorch, Tensorflow)
- 13. 子供教育のため文京区の不動産価格予測
- 14. 【RaspberryPi 5】GPIOをDockerコンテナから制御する方法
- 15. Pythonで「ファイルの作成と削除(pathlibモジュール)」の動作を確認してみた
- 16. ローカルLLMで簡単にチャットアプリを作る
- 17. CORSとは-Flaskで実装してみた
- 18. PySparkをREPLで簡単に試す
- 19. 【Apache JMeter】負荷テスト実行用のdockerコンテナを作る
- 20. Pythonで理解する名門の森
ABC348(Atcoder Beginner Contest)のA~D(A,B,C,D)問題をPythonで解説(復習)
# ABC348(Atcoder Beginner Contest)のA~D(A,B,C,D)問題をPythonで解説(復習)
# A問題
– FizzBuzzと同じノリでやる.
– `ooxooxooxooxo…`をまとめて出力するため,`ans`変数に値を格納していく.
– `for`で回すときは,繰り返し変数`i`は,`0`始まりなことに注意し,`i+1`で評価する.
“`A.py
“””
<方針>
– FizzBuzzと同じノリでやる.
– `ooxooxooxooxo…`をまとめて出力するため,`ans`変数に値を格納していく.
– `for`で回すときは,繰り返し変数`i`は,`0`始まりなことに注意し,`i+1`で評価する.
“””
# 標準入力から値を受け取る.
N = int(input())# 答えを格納するListの変数
ans = []# ペナルティキックを一つずつ見る
for i in range(N):# 3の倍数のとき,
if( (i+1)%3 == 0 ):
# 答えに”x”を追加する.
ans.app
PythonでPDF文書にヘッダーとフッターを挿入する方法
PDFへのヘッダーとフッターの追加は、PDFドキュメントの視覚的な魅力、ブランディング、整理を向上させるための重要な機能となっています。
ヘッダーとフッターを組み込むことにより、ユーザーはドキュメントのタイトル、ページ番号、ロゴ、日付、著作権表示、機密性の免責事項など、重要な文脈情報をカスタマイズすることができます。これにより、プロフェッショナルな外観が確立されるだけでなく、ドキュメントのナビゲーションが改善され、法的要件の遵守が保証されます。
本記事では、**Pythonを使用してPDFファイルにヘッダーとフッターをシームレスに追加**するプロセスについて詳しく説明します。– **[Pythonで既存のPDF文書にヘッダーを追加する](#pythonで既存のpdf文書にヘッダーを追加する)**
– **[Pythonで既存のPDF文書にフッターを追加する](#pythonで既存のpdf文書にフッターを追加する)**この記事で使用する方法は、[Spire.PDF for Python](https://www.e-iceblue.com/Download/Spire-PDF-P
DjangoRestFrameworkを用いたWebAPI作成(heroku DBサーバ使用とデプロイ)
## 概要
この記事はDjangoRestFramework(以下DRFと記す)を用いたWebAPIを作成する方法を説明する.DRFはPythonのWebフレームワークであるDjangoの拡張機能で,RESTful Web APIの開発を容易にするために設計されている.>**API(Application Programming Interface)**
>異なるソフトウェアコンポーネント間でデータを交換し,機能を相互利用するための規約やルール,ツールの集合>**Restful Web API**
>Webアプリケーションやサービス間で情報をやり取りするためのインターフェースであり,REST原則に基づいて設計されている.
>>**REST(Representational State Transfer)**
>>インターネット上での分散システム設計(クライアントサーバシステム)のためのアーキテクチャスタイルを定義し,シンプルさと拡張性を提供します。RESTful APIはHTTPプロトコルを使用してデータやサービスにアクセスし,操作する.**主な操作メソッド**
RESTf
Databricks にて pytest によるテスト対象のディレクトリにノートブックが含まれる場合のエラーについて
## 概要
Databricks にて pytest 実行時にテスト対象のディレクトリにノートブックが含まれている場合には、次のようなエラーが発生するようです。そのエラーに対しては、ノートブックを削除して、python ファイルを新規で作成してテストコードを保持させることでエラーが解消されます。エラーの再現方法と対応方法を共有します。
> ============================= test session starts ==============================
> platform linux — Python 3.10.12, pytest-8.1.1, pluggy-1.4.0 — /local_disk0/.ephemeral_nfs/envs/pythonEnv-4ec1a9d6-6be6-4f9a-9eba-0f2b70be94c9/bin/python
> cachedir: .pytest_cache
> rootdir: /Workspace/Repos/Shared/databricks_tecks_fro_qiita_2
Can’t load plugin: sqlalchemy.dialects:duckdb
“`
python -m pip install duckdb_engine
“`
仮想環境を使う
下記内容の要約、一部環境でのエラー対応を追加
参考:https://camp.trainocate.co.jp/magazine/venv-python/1. プロジェクトディレクトリの作成
“`mkdir venv-test“`2. 作成したプロジェクトディレクトリに移動
“`cd venv-test“`3. Pythonのバージョン確認
“`python -V“`4. 仮想環境作成
“`python -m venv [env]“`
[]内が環境名。「env」や「venv」などが名称としては一般的
→envフォルダが作成される5. 仮想環境の有効化
“`env\Scripts\Activate.ps1“`:::note alert
エラーが出る場合
“`Set-ExecutionPolicy RemoteSigned -Scope Process“`
PowerShellの設定を変更
(今開いているPowerShellウィンドウのみ実
pythonの __name__ == “main”の意味
# `__name__ == “__main__”`の意味
参考関数用のファイル「test_m.py」、関数呼び出し用ファイル「call_m.py」
“`py
#test_m.py
def sample():
print(__name__)sample()
#出力結果
__main__
“`“`py
#call_m.py
from test_m import tax
sample()#出力結果
test_m
test_m
“`モジュールの呼び出し(import)で出力したときに2回出力するのを防ぐ。
“`py
#test_m.py
def sample():
print(__name__)if __name__ == “__main__”:
print(sample())
“`
“`py
#call_m.py
from test_m import tax
sample()#出力結果
test_m
“`
OpenAIで作るおしゃべりボット
# はじめに
OpenAIのSpeech to textやText to speech利用し生成AIと声のみでやり取りするサンプル実装を紹介します。
# 処理フロー
以前紹介した[Slackチャットボット](https://qiita.com/yahayuta/items/ce20827faf78664c4f5e)の構造と似ています。
やりとりするデータの種類(テキスト→音声)が異なるだけで根本的なフローはほぼ同じです。
音声ファイルをRequestとして受け取るAPIチックな処理をPython Flaskで作成します。
チャット履歴の保持は今回BigQueryを利用しましたが何でもよいと思います。“`mermaid
sequenceDiagram
autonumber
actor ユーザ
participant Web as Web
participant S as GCP
Cloud Run
Python Flask
participant BQ as GCP
BigQuery
participant AI as OpenA
Pythonを使ってAtCoderを始めるためのガイド
## はじめに
> AtCoderは、世界最高峰の競技プログラミングサイトです。
> リアルタイムのオンラインコンテストで競い合うことや、
> 5,000以上の過去問にいつでもチャレンジすることができます。([atcoder.jp](atcoder.jp)より引用)本記事では、Pythonを使ってAtCoderを始める手順をまとめた。下準備としてPythonの環境構築から始まり、AtCoderで実際にコンテストに参加するまでの一連の流れを説明していく。
## 下準備1 Pythonのインストール
### Pythonとは
Pythonとは、主に科学計算、データサイエンスの分野で使われているプログラミング言語だ。直感的な文法が特徴で初学者にとってもやさしい言語とされる。
インタプリタ言語であるため実行速度が遅く、競技プログラミングでは不利といわれることがある。
### 手順
1. [Python公式ページ](https://www.python.org/)からパッケージをダウンロード
1. パッケージを起動
1. “Add python.exe to PATH” をチェック
1
pythonで動的に作れる変数はグローバル変数だけと気付いた
# 発端
下記の記事を見て、変数の動的定義って`exec`関数を使わなくても出来ることに気づいたのが発端。
[[解決!Python]exec関数やglobals関数を使って変数を動的に定義するには](https://atmarkit.itmedia.co.jp/ait/articles/2404/09/news026.html)# “`exec“`関数を使わない変数の動的定義
試したコードは以下。`globals`関数の返り値の辞書型変数に間接的または直接的に要素を追加することで、新たな変数を定義出来ることが確認出来た。
“`python
x = 1
gl = globals()
print(gl[“x”]) # –> 1
gl[“y”] = 2
print(y) # –> 2
globals()[“z”] = 3
print(z) # –> 3
“`
## この方法の利点
動的に作りたい変数の名前が変数`n`に、値が変数`v`に代入されている時に`exec`関数を使った場合と`globals`関数を使った場合を以下に示すが、後者の方がシンプルです。
“`pytho
インターホンをスマホに通知する方法をものすごく丁寧に説明する【Raspberry Pi Zero WH 】
在宅勤務している人、多いですよね。
いつでも配達を受け取れてとても助かります。しかし…2階で仕事をしていると、
**インターホンの音が聞こえにくい!**
他のことに集中していると気づかない!!!!せっかく配達に来てくれたのだから、一発で受け取りたいものです。
エンジニアらしく**仕組みで解決**しましょう!—
忙しい人のための超要約
– インターホンの室内モニタのA接点を使用します(鳴ると接点が閉じる)
– RaspberryPi Zero WH を用いて、A接点のオンオフによりGPIOの出力3.3VをGPIO17に印加する回路を組みます
– GPIO17に印加されたことをPythonスクリプトで検知します
– 検知したらLINE Messaging APIを使用してpush通知を送信しますこの説明で理解できる人は、記事全体を読む必要ないと思います。
電子工作初心者でも理解しやすいよう丁寧に書き上げたので、ぜひご覧ください!
—
## 目標
インターホンが鳴ったら、2階
画像からのパッチ抽出について (OpenCV, PyTorch, Tensorflow)
この記事では、画像からパッチ(小さな画像の断片)を抽出する方法について、OpenCV、PyTorch、TensorFlowを用いた実装例とともに説明します。
## パッチ抽出とは?
パッチ抽出とは、大きな画像から小さな画像の断片を取り出すプロセスです。このプロセスは、画像解析や機械学習の前処理でよく利用されます。* **カーネルサイズ**: パッチのサイズを指定します。例えば、(3,3)のカーネルサイズは、3×3ピクセルのパッチを抽出することを意味します。
* **ストライド**: パッチを抽出する際のステップサイズです。ストライドが(1,1)であれば、1ピクセルごとにパッチを抽出します。
* **パディング**: 画像の端に余白を加えることで、画像のサイズを調整します。パディングを利用すると、画像の端にある情報もパッチとして抽出することが可能になります。## パッチ抽出の応用
パッチ抽出は、画像の局所的な特徴を捉えるために用いられます。例えば、画像内の特定のオブジェクトを検出する場合や、画像を細かい部分に分割して分析する場合などに有効です。また、コンピュータビジョンにおける
子供教育のため文京区の不動産価格予測
# はじめに
本分析はAidemy Premiumコース卒業条件の一つとして、公開します。
大学院時代に文京区の中心部に住み、教育の環境に気に入りました。
実際、文京区の教育水準は都内トップで、東京都23区の中でも、1番教育環境が充実していると言われているのが「文京区」です。日本を代表する大学である東京大学が所在する区であり、文教地区に指定されている地域が多いため、落ち着いた住環境が魅力です。
文京区の教育レベルの高さは23区の中で国・私立中学校への進学率が1番高いというデータに表れています。令和2年度の文京区の都内中学校進学者のうち、46%の生徒が国・私立中学校へと進学しています。(https://journal.kawlu.com/58821)そのため、将来子供教育のために、また文京区に住みたいと思い、不動産の価格を予測するモデルを作ってみたいです。
しかし、全体的の値段を見ると、近いの家に中古マンション以外無理そうなので、中古マンションにフォーカスしました。# 環境
MacOS python 3.9# 手順
1.環境準備(MacOSにて、苦労しました。)
2
【RaspberryPi 5】GPIOをDockerコンテナから制御する方法
## はじめに
GPIOをPythonで操作する時によく使われていたRPi.GPIOがRaspberryPi5から使えなくなりました。
その代わりにgpiozeroを使用するように公式からアナウンスされています。
ネイティブ環境から操作することは容易ですが、それらをDockerコンテナで一から構築する方法が無かったのでこちらに示します。ソースコードは[こちら](https://github.com/souri-t/GPIO-Docker)。
https://github.com/souri-t/GPIO-Docker
## 全体構成
“`
app
|– code
| `– sample.py
|– docker-compose.yml
`– Dockerfile
“`### Dockerイメージ
“`docker-compose.yml
version: ‘3.3’
services:
gpio:
build: .
tty: true
privileged: true
volum
Pythonで「ファイルの作成と削除(pathlibモジュール)」の動作を確認してみた
# 概要
Pythonで「ファイルの作成と削除(pathlibモジュール)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/python/file/index10.html
# 実装
以下のファイルを作成しました。
“`sample1.py
import pathlib
p = pathlib.Path(‘./test/client.txt’)
p.touch()
“`
“`sample2.py
import pathlib
p = pathlib.Path(‘./test/client.txt’)
p.unlink()
“`以下のコマンドを実行しました。
“`
$ mkdir test
$ python3 sample1.py
$ ls test
client.txt
$ python3 sample2.py
$ ls test
“`# まとめ
何かの役に立てばと。
ローカルLLMで簡単にチャットアプリを作る
# はじめに
LLMの進化が著しく、ついていくのもやっとです。
最近、ローカルLLMデビューをしたので、さっそくStreamlitでチャットアプリを作って遊んでみようと思います。# 必要なパッケージ
– streamlit
– llama_cppなければインストールしましょう
“`
pip install streamlit llama_cpp
“`llama_cppはcmakeなどのC++フレームワークが入っていないと動かないので、適宜インストールしましょう。
# Streamlitについて
Streamlitは簡単にWebアプリが作れるPythonのフレームワークです。
以前にチャットエレメントを使った時の記事はこちら↓https://qiita.com/sugimochi_1019/items/ede15dcacddfde36df4e
# llamaモデルについて
> LLaMA(Large Language Model Meta AI)は、Meta AI が2023年2月に発表した大規模言語モデル[1][2]。70億パラメータから650億パラメー
CORSとは-Flaskで実装してみた
## はじめに
初投稿です!CORSを理解したいと思い調べていくうちに記事にしたいと思った次第です。初学者向けに書いた記事になります。
### 同一オリジンについて
CORSの理解を深めるために同一オリジンについて意味を確認しましょう。
・オリジンとは
スキーム(httpsなどのプロトコル)、ホスト(ドメイン)、ポート番号のことです。ある二つのページのオリジンが等しければ、両者のオリジンは等しいです。これは、セキュリティ上安全性を高めるための方法であり、同一オリジンポリシーと呼ばれます。反対に異なるオリジンであることをクロスオリジンといいます。あるページを見ているときに、そのぺージのリソースとオリジンが同じ場合は同一オリジン、見ているページと対象のリソースが異なる場合はクロスオリジンということになります。具体的な例では、あるページから他のAPIにアクセスする場合が挙げられます。
実際にFlaskでサンプルを作ってみましょう。
“`python:run.py
from app import appif __name__ == “__main__”:
app.run
PySparkをREPLで簡単に試す
PythonからApache Sparkを操作するためのライブラリPySparkをなんとなく触れてみたいと思います。
# PySparkをインストール
自分はvenvを使って仮想環境を作って試してみました。
“`bash
$ python -m venv pyspark-samples
$ source ./python-samples/bin/activate
$ pip install pyspark
“`# テストデータをダウンロード
このあたりから適当なCSVをダウンロードして、上記で作成したpython-samplesディレクトリに配置しました。
https://github.com/codeforamerica/ohana-api/blob/master/data/sample-csv/addresses.csv
# REPLを起動
“`bash
$ cd ./python-samples
$ python
“`# Sparkをインポート
こちらの[ドキュメント](https://spark.apache.org/docs/latest/sq
【Apache JMeter】負荷テスト実行用のdockerコンテナを作る
負荷テストを実施するにあたって、負荷テストを実行するためのdockerコンテナを作ることにした。
dockerコンテナを作った理由はとしては下記のとおり。– どの環境でもコンテナを展開すればすぐに使える
– 状況に応じてdockerコンテナ間の通信上での負荷テストと、インターネット経由での負荷テストが切り替えやすい
– テストケースを入れ替えるだけで他のプロジェクトでも使える特に今回はテスト対象となるシステムがAWS上で動いており、インターネット経由で負荷テストを実施するとCloudFront、WAF、ALBなどに大量のデータが行き交うことでコストが増大する可能性があったため、それらを経由せずにdockerコンテナ間で通信ができることが必要だった
(コスト計算した結果、100数円で済むことがわかったので最終的にはインターネット経由で実施した)
# docker file
“`dockerfile
# イメージ
FROM openjdk:8-slim# JMeterのバージョン指定
ARG JMETER_VERSION=5.6.3# JMeterのダウンロードと解凍
Pythonで理解する名門の森
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3760770/de859efd-50bc-bff7-49f5-301bb88fab8a.png)
解説の方は動画でみるとよいかもしれません。ここではPythonコードでシミュレーションプログラムを作っていきます。コピペして使ってください。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3760770/f642be07-52e8-5363-60ec-210d8a5d2999.png)
“`
import numpy as np
import matplotlib.pyplot as plt# 関数定義
def x(t, initial_velocity, acceleration):
return initial_velocity * t + 0.5 * a