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

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

python GUI tcl/tk ウィンドウ全体リサイズ時にフォームサイズも伸縮させる

# 実行サンプル

tcltk の GUIレイアウト配置で
grid や pack のオプションを適切に設定して
ユーザーがウィンドウを大きくしたり、小さくしたときに
配置された各部品(フォーム) が同時にサイズ伸縮するようにした例。

設定していないと、フォームのサイズが変わらず、
違和感のある表示になってしまう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423803/a2d20aae-4678-8c4d-f02b-a67d81707f52.png)

# 実行環境
windows10
python3.9.5

pythonモジュール tcl/tk

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

# 参考 URL
https://tkdocs.com/tutorial/grid.html

# ソースコード

https://github.

元記事を表示

【Python】「FileExistsError: [Errno 17] File exists: ‘xxx’」エラーには`exist_ok=True`オプションを

# エラー内容
Pythonアプリで以下のエラーが発生。

> FileExistsError: [Errno 17] File exists: ‘loggings’

# 原因と解決方法

BEFORE:

“`py
import os

os.makedirs(“loggings”)

# FileExistsError: [Errno 17] File exists: ‘loggings’
“`

AFTER:

“`py
import os

os.makedirs(“loggings”, exist_ok=True)
“`

`os.makedirs`関数は、既に存在するディレクトリを作成しようとすると`FileExistsError`を発生させる。

これを防ぐためには、`os.makedirs`関数の`exist_ok`パラメータを`True`に設定すると良いです。デフォルトでは`False`になっています。

`True`にすると、ディレクトリが既に存在していてもエラーが発生せず、ディレクトリが存在しない場合のみ新たに作成されるようになりました。

元記事を表示

python GUI tcl/tk 子ウィンドウ起動 改善版:起動引数

# 実行サンプル
子ウィンドウ起動

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423803/6bc2b158-ec33-a9a1-c926-df86e9aa1c94.png)

・ボタン押下で mode 指定して、子ウィンドウ起動
 モード指定により、画面GUIが違うものとして表示される

・ChildWindowが既に存在する場合はメッセージボックスで通知し、新たに開かないようにする

・childWin.py で mode を引数として受け取る

・childWin 起動後、画面が閉じられるまで、次の処理は実行されないようにする

・00_mainWin.py と childWin.py で情報受け渡しする

・ childWin.py func_initを複数用意することで、GUI表示や、渡す引数を自由度高く切り替えできるようにする
  例)↓これらを 00_mainWin.py から呼び出す
  func_init_01(),
  func_init_02(self,

元記事を表示

Pythonの例外ハンドリング

## Pythonの例外ハンドリングについて学習
Javaと同じ点や異なる点を整理しながらPythonの例外ハンドリングについて学習する。

## try節
Javaと同じで、例外が発生する可能性のある箇所で使う。exceptかfinallyのどちらかは必須。

## except節
Javaのcatchと同じで例外を捕まえることができる。
asで一時変数を定義することができる。

## else節
すべてのexcept節よりも後ろにelse節を置くことができ、例外が発生していない場合の処理を記載することができる。

:::note info
どのような使い方をすれば効果的なのかを調べる。
:::

## finally節
Javaと同じで、例外の発生有無にかかわらず実行される処理を書くところ

## 基底クラスでの例外捕捉
Javaと同じで、except節で基底クラスを指定することで、継承しているクラス例外を捕捉することができる。

## raiseで例外送出
Javaのthrowsと同じようにraiseで例外を送出することができる。

## with文
Javaの[try-with

元記事を表示

機械学習における重み減衰率を理解して過学習を防ごう

モデルの過学習を防ぐための手法の1つ。数学的にはL2正則化と同義。

重みの値が大きくなりすぎるのを防ぐために、重みの大きさに比例したペナルティを損失関数 L に与える。

$$L’ = L + \frac{\lambda}{2} \sum_{i=1}{w_i^2}$$

ここでλは正則化の強さを調整するハイパーパラメータであり、Transformersライブラリに含まれるTrainingArgumentsで引数として使えるweight_decayではこの値を設定している。

– λの役割: 過学習の防止

重みが大きいと、小さな入力の変化に対しても出力が大きく変動することがある。

これはモデルがデータの微小な変動やノイズに対して敏感に反応している状態を示しており、過学習の典型的兆候である。

λを増やすことで、モデルはデータの本質的なパターンを捉えつつ、訓練データのノイズに過剰に適合することを防げる。

その結果、モデルによる予測は入力データの微小な変化に対して頑健になる。

元記事を表示

SMILES 化合物構造を文字列でPythonに入力する方法

# はじめに
こんにちは、@sasshi_iです。

ケモインフォマティクスの分野では、化合物の構造を計算機に入力するため様々な表現方法があります。

今回は文字列で分子構造を表現するSMILESについて紹介します。

# SMILESとは?
## 概要
SMILES(Simplified Molecular Input Line Entry System)は、**分子の構造を表現するために文字列を使用する表記法**です。

1980年代に開発されたこの表記法は、分子や化学反応をコンピュータプログラムに簡単に入力し、保存するために広く使用されています。

例えば、解熱鎮痛薬のバファリンの成分であるアスピリンはSMILESだと `CC(=O)Oc1ccccc1C(=O)O`と表現されます。

SMILESはrdkitを用いてプログラムに入力できます。
rdkitはケモインフォマティクスの分野で広く使用されるpythonのライブラリです。

“`python
from rdkit import Chem
Chem.MolFromSmiles(‘CC(=O)Oc1ccccc1C(=O)O’

元記事を表示

pycordで作成したdiscord botのトークンをenvファイルに保存して、githubにpushしよう

# はじめに
前回の記事で[pycordを使ったdiscord botの作成記事](https://qiita.com/maooz4426/items/2c39929756af5541648f)を書いたのですが、discordbotのアカウントトークンを直書きしていました。
これをGitでpushすると、、、

“`
git push origin main
Enumerating objects: 8, done.
Counting objects: 100% (8/8), done.
Delta compression using up to 8 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 1.02 KiB | 1.02 MiB/s, done.
Total 6 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local

元記事を表示

Pythonの備忘録 (初心者) <数学の基礎計算(三角関数)>

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

:::note warn
あくまで記事は使用例です
厳密さを必要とする場合は下記LINKを参照してください。
https://docs.python.org/ja/3/library/math.html
:::

math libraryのimport

“`python
import math
“`
:::note info
:::

三角関数の使用例

“`python
theta = math.radians(45)
print(theta)
“`
:::note
出力
0.7853981633974483
:::
角度からラジアンに変換
詳細は下記wiki参照
[^KEY]:
https://ja.wikipedia.org/wiki/%E4%B8%89%E8%A7%92%E9%96%A2%E6%95%B0

三角関数の計算結果

“`

元記事を表示

Pythonの備忘録 (超初心者)

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

Pythonのif文では制御構造を使用して、同じコードブロックを正誤判定を実行することができる
![スクリーンショット 2024-04-22 14.24.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575336/19c43b75-d615-a729-5d44-3510f747cffc.png)

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

if文を設定

“`python
if 5/2 = 2.5
print(“5は2で割った時2.5になります”)
“`
:::note alert
エラー
if 5/2 = 2.5
^
Sy

元記事を表示

包括的に効果検証を自動化する関数を作ってみた

以前に効果検証のプログラムを作ったのですが、

https://qiita.com/murasaki1994/items/1b3bc37ee01203363edc

これについて図を作り差・t値・p値を各因子から自動で算出するプログラムを作ってみました。
# 関数
“`Python3
import scipy.stats as stats
import matplotlib.pyplot as plt
def effecttest2(df, columns, y_name, auto=False):
ave = []
dtr = []
pos = []
lab = []
x = 0
for col in columns:
values = list(set(df[col].values))
tmp_ave = []
tmp_dtr = []
tmp_pos = []
tmp_lab = []
for val in values:

元記事を表示

ROS2とQt5を使って自作UIを作ろう!!(1)

# はじめに
ロボコンをしていると、強豪校は自作のコントロールUIを作ったりしているのをよく目にします。
今回私がUIを書こうと思ったのは、それが単純にかっこいいと思ったからです。しかし、いざ書こうとすると、どのように書いたらいいかわかんなくなると思います。そんな人のためにこの記事を書きました。少しでも役に立つと幸いです。思ったより長くなりそうなのでpartを分けます。今回はROS2とQt5の連携の仕方です。
# 今回の学ロボで作ったUIの機能(ざっくり)
今回のUIに求めた機能は以下のようになっています。
* ロボットに乗せてあるカメラの画像の表示
* ボタンによってロボットに司令を送信する
* ロボットが今どこにいるのかの可視化
* ロボットの状態の表示
完成品はもう少しタイマー等の機能が増えて以下のようになりました。
![IMG_8558.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531353/1104d68c-f8b1-fdee-bd7e-3045a1123874.jpeg)
この記事では

元記事を表示

[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-

元記事を表示

OTHERカテゴリの最新記事