Python3関連のことを調べてみた

Python3関連のことを調べてみた

[Django]Serializerのテストを作成してみる

## はじめに
自分用の個人開発のメモ/備忘録として記録していきます。

## 環境
django5.0
↓ dockerでの開発環境作成はこちら

https://qiita.com/mkthrkw/private/588226d30690c707d2b8

↓ 認証ユーザーモデルはこちらをそのまま利用

https://qiita.com/mkthrkw/private/b2ea8fb8f33a68faab87

## やりたいこと
Serializerのテストを一通り書いてみる

## 前回

### Modelのテスト

https://qiita.com/mkthrkw/items/c3fcebcbc17fe761bdd1

### Viewのテスト

https://qiita.com/mkthrkw/items/acd54a56f5cf600ca97b

## テストについて下調べ
おもに下記のようなテストをやる模様。
|No|カテゴリ|内容|
|–|—-|—-|
|1|シリアライザインスタンスの作成|テスト対象のシリアライザインスタンスを作成|
|2|バリ

元記事を表示

PostgreSQL: バイナリーデータの取り扱い

こちらのページを参考にしました。
[Aurora(PostgreSQL)のbytea列にバイナリデータをpythonでインサートする](https://zatoima.github.io/aws-aurora-bytea-insert-binary-data.html)

## PostgreSQL への接続情報

User: scott
Password: tiger123
DataBase: db_pdf

## テーブルの用意

“`sql:create_table.sql
create table table_pdf
(
id int primary key,
pdf bytea not null
);
“`

“`text
$ psql -U scott db_pdf < create_table.sql CREATE TABLE ``` ## データの挿入 fuji,pdf というデータを挿入します。 ```py:pdf_insert.py #! /usr/bin/python import psycopg2 import psycopg2.

元記事を表示

df.assign(column=lambda)でif文がうまく機能しない件

## 概要
以下のコードの実行するとどうなるでしょう?
### コード
“`python
import pandas as pd
df = pd.DataFrame(data={ “A”: [1, 0, 1], “B”: [101, 102, 103]})
df = df.assign(C=lambda x: x.B if x.A == 1 else 0)
df
“`

### 結果
“`shell
—————————————————————————
ValueError Traceback (most recent call last)
/var/folders/vr/jqnz40rd3hnfhg8qrp388zyr0000gn/T/ipykernel_29170/1740181337.py in ?()
1 import pandas as pd
2 df = pd.DataFrame(dat

元記事を表示

【pygame】pythonのpygameを使ってパズルゲームを作ってみた

## はじめに
みなさんこんにちは!今回はpythonのpygameを使ってパズルゲームを作りたいと思います!
みなさんが知っているかわかりませんが自分はとある国民的アニメ作品のバイオハザードのゲーム実況を見ることが大好きでした!(念の為詳しい名前は伏せさせていただきます…)
その作品の終盤に閉じ込められたガキ大将を助けるイベントがあるのですが助けるためのパズルゲームが妙に印象的だったのを覚えています!
前置きが長くなりましたが今回はpygameを用いてそのパズルゲームをなるべく再現しようと思います!

## 準備すること
### 環境
M1 MacBook
pythonバージョン : 3.9.12
pygame : 2.5.1

### 環境構築
pythonは事前に入れていることを前提にします

1.ターミナルを開いていただき、今回実行するためのフォルダーを新しく作成してください!今回はpuzzleというファイル名にします!そしてpuzzleフォルダーに移動してください!
“`
mkdir puzzle
“`
“`
cd puzzle
“`

2.次に環境の構築を行います

元記事を表示

pipで–break-system-packagesの問題について

“`
python3 -m pip install ultralytics
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try brew install
xyz, where xyz is the package you are trying to
install.

If you wish to install a Python library that isn’t in Homebrew,
use a virtual environment:

python3 -m venv path/to/venv
source path/to/venv/bin/activate
python3 -m pip install xyz

If you wish to install a Python app

元記事を表示

ABC352 with Python (A~E)

ABC352のA~E問題をpythonで解説していきます。筆者はA-Eの5完でした。

# A – AtCoder Line
## 問題
鉄道の AtCoder 線には $N$ 個の駅があり、それぞれ $1, 2, \ldots, N$ の番号が付けられています。

AtCoder 線では、駅 $1$ を始発駅として駅 $2, 3, \ldots, N$ の順に各駅に停車する **上り列車** および、駅 $N$ を始発駅として駅 $N – 1, N – 2, \ldots, 1$ の順に各駅に停車する **下り列車** が運行されています。

高橋君は AtCoder 線の上り列車あるいは下り列車の一方のみを使うことで駅 $X$ から駅 $Y$ まで移動しようとしています。

この移動の間に高橋君が乗っている電車が駅 $Z$ に停車することがあるか判定してください。

https://atcoder.jp/contests/abc352/tasks/abc352_a
## 考察
2つの駅について、番号が小さいほうを$X$、大きいほうを$Y$とすれば、後は$Z$がその間にあるかを確か

元記事を表示

CUDA環境構築のやり方(Pytorchも入れるよ)

# はじめに
今回はyoloをgpu環境で使うための環境構築をします。
# 実行環境
* ubuntu20.04
* kernal 5.11
# nvidia_driver環境構築
* nouveau ドライバの無効化(上から順に実行)
“`
echo ‘blacklist nouveau’ | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
echo ‘options nouveau modeset=0’ | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
cat /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
“`
* 現状確認
“`
lspci | grep -i nvidia
dpkg -l | grep nvidia
dpkg -l | grep cuda
“`
* cudaとdriverの削除
“`
sudo apt-get –purge remove nvidia-*
sud

元記事を表示

OpenAI GYMでFrozen Lakeをrenderする際のエラー解決方法

Frozen Lakeをrenderする際に下記エラーが発生する。
“`
elf_img = pygame.transform.scale(elf_img, elf_dims)
TypeError: integer argument expected, got float
“`
下記のようにFrozenLakeの元ファイルの302-303行目をintでキャストすることで解決する。
“` diff_ruby:\gym\envs\toy_text\frozen_lake.py
# prepare images
last_action = self.lastaction if self.lastaction is not None else 1
elf_img = self.elf_images[last_action]
elf_scale = min(
– small_cell_w / elf_img.get_width(),
+ int(small_cell_w / elf_img.get_width()),
– small_cell_h / elf_img.ge

元記事を表示

SQLite3を使ったFlaskアプリケーションをとりあえずデプロイ

# はじめに
自分が現在個人開発しているFlaskアプリケーションをささっととりあえず外部に公開したいなと思い、何がいいんだろうと色々調べていたところ、Render.comという良さげなものを見つけたので、これを使ってFlaskアプリケーションをデプロイしていこうと思います。

# Render.comとは?
WEBアプリケーションのデプロイをGUIで簡単に操作できるPaaS。Herokuは有料になってしまったっぽく、その代わりとしてRender.comが注目を集めているようですね!

https://qiita.com/tks_00/items/73cf04c225e5f6113cd8

Githubでのデプロイをトリガーにして自動的にデプロイしてくれる(もちろん無効化することもできる)ので、わざわざデプロイ操作し直さなくていいところが便利ですね。

# 早速デプロイ
## 1. app.pyを作成
Blueprintを使って分割したFlaskアプリケーションの核となるファイル`app.py`だけこちらで公開します。詳しくは[こちら](https://github.com/RIKU-

元記事を表示

[Django]Viewのテストを作成してみる

## はじめに
自分用の個人開発のメモ/備忘録として記録していきます。

## 環境
django5.0
↓ dockerでの開発環境作成はこちら

https://qiita.com/mkthrkw/private/588226d30690c707d2b8

↓ 認証ユーザーモデルはこちらをそのまま利用

https://qiita.com/mkthrkw/private/b2ea8fb8f33a68faab87

## やりたいこと
Viewのテストを一通り書いてみる

## 前回

https://qiita.com/mkthrkw/items/c3fcebcbc17fe761bdd1

## テストについて下調べ
おもに下記のようなことを考えてる必要がある模様。
|No|カテゴリ|内容|
|–|—-|—-|
|1|アクセス制御テスト|適切なユーザーがリソースにアクセスでき、不適切なユーザーがアクセスできないことを確認。例えば、認証されたユーザーのみが特定のエンドポイントを利用できるか、また特定のロールを持つユーザーのみがリソースを編集または削除できるかなど|
|

元記事を表示

HaystackでLlama3, ElasticsearchDocumentStoreを使った質問応答システム構築を試してみました。

## はじめに
ローカルに作成した情報に関する質問応答システムを作ってみたかったので、Haystackのパイプライン構造を使ったRAGを試してみました。

## RAG(Retrieval Augmented Generation)とは?
RAG(Retrieval-Augmented Generation)は、自然言語処理(NLP)タスクのための最新の機械学習モデルの一つです。RAGは、質問応答、文章生成、要約作成などのタスクに適用されます。このモデルは、あらかじめ学習された情報を取得(retrieval)し、その情報を利用して文を生成(generation)することが特徴です。

## 今回のターゲット
ElasticsearchDocumentStoreに回答の元になる情報を入れて、ElasticsearchのRetrieverを使い、Llama 3 をgeneratorにするRAGのパイプラインを Haystackで構成して動かしてみました。

実際に使用する場合は、もっとローカルな設計データなどをDocumentStoreに入れてその内容に関して質問応答できる様にしますが、今

元記事を表示

Pythonのfloat型の算術演算

# `float`型とは

小数点を含む数値のことで、小数点以下が0のみの場合も`float`型に分類される。
例)1.1, 2.0, 0.03, …

# `float`型の演算

`float`型を含む演算は結果も`float`型になる。

“`python
>>> 2 + 1.0 # 加算
3.0

>>> 2 – 1.0 # 減算
1.0

>>> 2 * 1.0 # 乗算
2.0

>>> 2 / 1.0 # 除算
2.0
“`

また、演算式中に`int`型しか含まれない場合でも除算の場合は結果は`float`型になる。

“`python
>>> 3 / 2
1.5

>>> 3 / 3
1.0 # 割り切れてもfloat型
“`

除算結果を小数点以下を切り捨てた`int`型にしたい場合は整数除算(`//`)を用いる

“`python
>>> 3 // 3
1
“`

整数除算の結果割り切れた場合でも演算式に`float`型を含む場合、出力は`int`型ではなく`float`型になる。

※演算式中のオペランドの中でもっとも広い型に合わせて結果が

元記事を表示

Pythonの備忘録 (超初心者)

僕がPythonの使い方をド忘れした時のための備忘録を作成します。

PythonのList, Tuple, Dictionaryの使い方は下の図で表したような感じになっています。
![スクリーンショット 2024-04-22 12.03.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575336/e19bf248-960a-7689-0026-132c19021b3a.png)

:::note warn
あくまで上記はイメージです
厳密さを必要とする場合は下記LINKを参照してください。
https://www.python.org/
:::
今回はListの使い方の基本を書き下ろしておきます。

Listを設定

“`python
list = []
“`
:::note info
出力
:::
listを設定するだけでは何も出力はありません。


<

元記事を表示

【Python】 GitHubレポジトリのバージョン更新に合わせて自動的にPyPIのバージョンも更新する

## はじめに
自作ライブラリを`pip`コマンドでインストールできるようにするには、`PyPI`に投稿しないといけません。

手動で自作ライブラリを`PyPI`に上げる手順は、下記の通りですね。
[PyPIパッケージ公開手順](https://qiita.com/shinichi-takii/items/e90dcf7550ef13b047b5)

新規投稿だけではなく、バージョンアップの手順も同様です。
しかし、メンドウですよね。

我々は[自動化の王、自動化キング](https://qiita.com/uts1_6/items/11e348ead4bae71571b8)なので、`GitHub`を更新した時点で、`PyPI`への更新も同時にやってしうまうように、`GitHub`をいじりましょう。

## 結果
[この手順](https://github.com/konbraphat51/AnimatedWordCloud/blob/dev/CONTRIBUTING.md#updating-pypi)だけで `PyPI`の更新ができるようになります。

すなわち、`Release`

元記事を表示

python GUI tcl/tk ウィンドウ全体のスクロールバー、スクロールバー操作時に処理実行

# 実行サンプル
・python GUI tcl/tk ウィンドウ全体のスクロールバーを実装
・垂直スクロールバー操作時に処理実行
 下図のように、垂直方向のスクロールバーをユーザー操作で動かすと、
 プログラム起動したコマンドプロンプトにメッセージが表示される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423803/1982d3e1-b91a-cf6a-72bd-2730f3ac153f.png)

# 実行環境
windows10
python3.9.5

pythonモジュール tcl/tk

# 実行手順
ソースコードを作成する
windowsコマンドプロンプトでプログラム作成したフォルダに移動し、下記実行する
“`
python プログラム名.py
“`

# 参考 URL
https://qiita.com/thruaxle/items/0fc3e89bd15e3d2f79a1
https://daeudaeu.com/scrollbar/#google_v

元記事を表示

【Python】Ryeで始めるPythonプロジェクト

## はじめに

PoetryやPipenvではなく、**Rye**を使って開発を進めたい方向けの記事になります。
本稿は、ハンズオン形式で誰でも気軽にプロジェクトを作れるようになっています。

### ハンズオン環境

– Ubuntu / MacOS
– VSCode
– Rye : 0.24.0

## 0. Ryeとは?

RyeはPythonのための包括的なプロジェクトおよびパッケージ管理ソリューションです。
使用感としては、`Anaconda`のように独立してインストールでき、`pipenv`や`poetry`のように利用できる良いとこどりのような感じです。

https://rye-up.com/

また、大元のAstralは、`ruff`や`uv`等、今後のPython実行環境を刷新するようなパッケージを多数生み出しているため、`Rye`含めAstaral製のエコシステムが主流になっていくのかなと思います。
(ちなみにどれもRust実装で軽快に動いてくれます)

https://github.com/astral-sh

## 1. インストール編

基本的には、公式

元記事を表示

個人的に作っておくと便利な関数

大学の3年から大学院でPython使って個人事業主でもPython使っていて思うのが「これ作っておくと便利だな」と思った関数が何個かあるので紹介します。
というか自分の備忘録でもあります。
※なお、この記事は思い付きで書いていますので思い立った時に更新します。

# JSONの自動解析
正確には辞書型配列(連想配列)を自動的に解析する関数です。
やり方としては再帰アルゴリズムを応用した深さ優先探索で辞書・リストじゃないデータまで探索して、キーを表示するものです。
“`Python3
def depth(jsn, var=””):
if isinstance(jsn, dict):
for row in jsn:
depth(jsn[row], var=var+”[\””+row+”\”]”)
elif isinstance(jsn, list) and jsn != []:
for i in range(len(jsn)):
depth(jsn[i], var=var+”[“+str(i)

元記事を表示

Amplify functionでLayerのバージョンを上げようとしたらハマった話

## はじめに
私が携わっているプロジェクトでは、AWS Amplifyを活用し、ランタイムがPython 3.8のLambda functionとLayerを使用しています。
Python 3.8のサポート終了が近いため、問題を未然に防ぐためにPython 3.12へのアップグレードを決意しました。
詳細はAWSの公式ドキュメントを参照してください。
[Lambda ランタイム](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html)

## 環境
– Amplify: 12.11.1
– Python: 3.12.2
– Pipenv: 2023.12.1

## 遭遇した問題
バージョンアップの過程で、以下のファイル内のruntimesやpython_versionを3.12に更新しました。
– amplify/backend/function/laynerName/parameters.json
– amplify/backend/function/laynerName/lib/pyt

元記事を表示

Python変数と組込型

## 数値を使う

数値は、プログラムのなかで数量を記録するために利用します。

Pythonにかぎらず、プログラムではたくさんの数値を活用し、処理を行います。

Pythonでは、数値を扱うためのデータ型として、**整数型**と**浮動小数点型**が別に用意されています。

– 整数型

小数点以下の値を含まない、「100」のような数値を扱うために利用します。

– 浮動小数点型

小数点以下の値を含む、「3.14」のような数値を扱うために利用します。

Pythonには、実はもう1つ、**複素数型**という数値型がありますが、特に必要なし

### 数値を使った四則演算

「+」「-」「*(×)」「/(÷)」といった**演算子**を使った四則演算が可能です。

三角関数などを使った、より高度な演算も可能です。

“`python
>>> 1867 – 1603
264
“`

引き算例

累乗を計算するためには「**」を使います。ここでは、2を20乗してみます

“`python
>>> 2 ** 20
1048576
“`

累乗の例

Pyt

元記事を表示

Pythonの備忘録 (超初心者) <繰り返し処理>

僕がPythonの使い方をド忘れした時のための備忘録を作成します。

PythonのLoopでは制御構造を使用して、同じコードブロックを繰り返し実行することができる
![スクリーンショット 2024-04-22 12.03.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575336/e19bf248-960a-7689-0026-132c19021b3a.png)

:::note warn
あくまで上記はイメージです
厳密さを必要とする場合は下記LINKを参照してください。
https://www.python.org/
:::
今回はfor loopの使い方の基本を書き下ろしておきます。

for loopを設定

“`python
for i in range (10):
print(i)
“`
:::note info
出力
0
1
2
3
4
5
6
7
8
9
:::
r

元記事を表示

OTHERカテゴリの最新記事