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

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

要素数の出力 Python3編

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_output_step1

二次元配列の要素数を出力せよという問題。
二次元配列はちょっとPHPでも苦手にしている部分なので、これを機会にしっかり覚えたいところ。

今まで勉強してきたところからこういうふうにしたが
“`py
x = “1 2 3 4 5 6”.split()
y = “8 1 3 3 1 8”.split()
x.append(y)
print(sum(len(v) for v in x))

“`
このときのxをみてみるとこうなるので多分間違えてる気がする。
“`
[‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, [‘8’, ‘1’, ‘3’, ‘3’, ‘1’, ‘8’]]
“`

答えを見てみると

“`py
li = [[1, 2, 3, 4, 5, 6], [8, 1, 3, 1, 3, 8]]
print(len(li) * len(li[0]))

“`
え、そういうふうな書きかたでよいのか。

元記事を表示

GitLab CI/CD でDBのテストをする

## はじめに
これは、[富士通クラウドテクノロジーズ Advent Calendar 2023](https://qiita.com/advent-calendar/2023/fjct) の4日目の記事です。

## SQLAlchemy2.0について

SQLAlchemy 2.0が2023年1月にリリースされました。1系からの大きい変更点としてはORMクエリの変更です。

https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#migration-orm-usage

例として社員テーブルを定義しているとすると
“`src/database/schema.py
from sqlalchemy.orm import Mapped, DeclarativeBase, MappedAsDataclass, mapped_column
from sqlalchemy import String

class Base(MappedAsDataclass, DeclarativeBase):
“””これを継承

元記事を表示

【Python】【julia】フーコーの振り子の測定データから地球の自転の角速度を求めてみた

# 概要
 2015 年 4 月 4 日のフーコーの振り子の観測結果を用いて、地球の自転の角速度を有効数字二桁で求めた。
 測定開始からある程度の時間が経過したときの振動面の回転角度と、フーコーの振り子の運動方程式を解いて得られた振動面の回転角度を比較して、最もよく測定値を再現する角速度の値を求めることで、地球の自転の角速度を求めた。
 粘性抵抗の場合の空気抵抗を考慮したとき、地球の自転の角速度の値は四桁目まで理科年表2022 の値と一致した。慣性抵抗の場合の空気抵抗を考慮したとき、地球の自転の角速度の値は二桁目まで理科年表 2022 の値と一致した。
 再現性を示すため、求まる地球の自転の角速度の値の有効数字を増やすため、優位に働く空気抵抗の種類を決定するために、求まる値の有効数字がより多い実験手法による、異なる初期条件での、追加の実験が必要である。

# 動作環境
– Windows10(64bit)
– Python 3.7.7
– julia 1.8.4

# 実験の目的
フーコーの振り子を用いて、地球の自転の角速度を求める。

# 実験原理
 例えば、物体の運動を十分な精度

元記事を表示

お手軽にダッシュボードを作ってみた

## はじめに

これは[RetailAI Adventurers Advent Calendar 2023](https://qiita.com/advent-calendar/2023/rai-adventurers)の4日目の記事です.

昨日は@yoshitake_tatsuhiroの記事「[形式的意味論ってなんですか?](https://qiita.com/yoshitake_tatsuhiro/items/177df09bae8288a41ebd)」でした.

主題について,フロントエンド経験0(比喩ではない)の私がダッシュボードを作ることになった際,お世話になったpython製のライブラリであるstreamlitについて書きます.ダッシュボードのようなある程度決まった画面なら,1時間程度でできてしまう優れものです.

記事を書くにあたり,どうせなら自分の役に立つものを作ろうということで,1自由度線形振動系の加振応答を見る画面を作ろうと思いました.質量を持つ物体が,ばねと減衰器で固定されている状態で振動的な外力を作用させたときの物体の振動応答です.streamlitの紹介と

元記事を表示

【Django】テスト用に単独Pythonスクリプトを(manage.pyを使わずに)実行させる方法

# 概要
DjangoフレームワークでPythonプログラムを実装している時、試験用に単独のスクリプトファイルを実行させたくなるケースってありませんか?

通常、Djangoアプリケーションは`manage.py`スクリプトを介して実行されますが、プロジェクト構造とは独立した状況でスクリプトを実行させたい時があります。

私は、DjangoのORMの出力結果(DBとのやり取り)を見たい時やプロジェクトやアプリケーションディレクトリとは無関係にどんな挙動をするのか確認したい時に使いたくなったりします。
本記事では、どのように単独スクリプトを実行させるかを紹介します。

コードのベースは、Djangoチュートリアルから取ってきた`polls`アプリで紹介していますが、あまりそこは関係ありません。
[はじめての Django アプリ作成、その 1](https://docs.djangoproject.com/ja/4.2/intro/tutorial01/)

### 前提

ディレクトリ構造は以下。

“`
.
├── mysite
│ ├── mysite
│ │ ├──

元記事を表示

Pythonプロジェクトにlinter・formatterを導入してコードの品質を向上させる

# 作るもの
既存のPythonプロジェクト(ここではFastAPI)にlinterとformatterを導入します。
チーム開発をしているので、コードの品質向上とプルリク時にレビュアーの負担を下げるのが目的です。

# やること
* linter・formatterツールをプロジェクトに導入
* コミット前に自動で実行してくれるようにする

# 使うツール
### 1. black
PEP8に準拠したコードフォーマッター。
細かい設定をする必要もないので、導入しやすいです。

https://github.com/psf/black

https://black.readthedocs.io/en/stable/

### 2. flake8
PythoのLinter(静的解析ツール)で、pycodestyle、pyflakes、mccabeをラッパーしています。

https://pypi.org/project/flake8/

### 3. isort
import文のフォーマットをしてくれます。
PEP8の規定に基づいて自動で修正してくれますので、こちらも導入します。

ht

元記事を表示

AtCoder アルゴリズムと数学演習問題集「アルゴリズムのための数学の基本知識」「基本的なアルゴリズム」全問題 Python解答例

[Supership](https://supership.jp/)の名畑です。公開されたてほやほやの「[TVアニメ『ヒプノシスマイク-Division Rap Battle-』Rhyme Anima + OPテーマ「RISE FROM DEAD」 MV](https://www.youtube.com/watch?v=k6VU82c9edo)」大好きです。

:::note info
こちらは[競プロ Advent Calendar 2023](https://adventar.org/calendars/8745)の3日目の記事となります。
Twitterでのハッシュタグは[#競プロAdC](https://twitter.com/search?q=%23%E7%AB%B6%E3%83%97%E3%83%ADAdC&src=typed_query)です。
:::

## はじめに

前も触れましたが、[AtCoder](https://atcoder.jp/)では、競技プログラミングの世界で有名な[E869120](https://twitter.com/e869120)さん執筆の

元記事を表示

iPhoneで画面を録画しOCRで文字を抽出する(Google Colab編)

iPhoneの画面に表示された文字列は、1枚であればスクリーンキャプチャして文字列をコピペできますが、何画面もスクロールしないといけないほどの情報量だと大変です。そこで、画面を録画して1枚コマごとにOCRで処理する方法を考えてみます。

まず、最初のおまじない。Google ColabにGoogle Driveへのアクセス権を与えます。

“`py
from google.colab import drive
drive.mount(‘/content/drive’)
“`
この2行を実行すると、ブラウザ上でポップアップ画面が出るので許可ボタンを押します。

次に動画を処理するffmpegとフリーのOCRであるtesseractをインストールします。ちょっと時間かかります。

“`py
!pip install ffmpeg-python
import ffmpeg

!apt install tesseract-ocr libtesseract-dev tesseract-ocr-jpn
!pip install pyocr
import pyocr

ocr_tools =

元記事を表示

画像データに対するGraph Neural Network(GNN)入門

# はじめに
最近、グラフニューラルネットワーク(Graph Neural Network; GNN)を用いた気象予測の論文が話題を呼んでいました。

>Learning skillful medium-range global weather forecasting | Science
>https://www.science.org/doi/10.1126/science.adi2336
>Google DeepMindの気象予測AI「GraphCast」、1分で前例ない精度の10日間予報を出力
>https://www.techno-edge.net/article/2023/11/15/2259.html
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76983/8aec1c7a-1f3b-10b3-9ca5-b07ecff8acd9.png)
 Learning skillful medium-range global weather forecasting (Lam et a

元記事を表示

Poetry で pytest

pytest の使い方がときどきよくわからなくなるので備忘録。

# ディレクトリ構成

– 単体テストは tests/test_hello.py に記述
– hello/hello.py で Hello Class を定義
– hello/main.py で Hello Class インスタンスを作成,say メソッドを実行した際に “Hello, World!“ を print

“`
├── hello
│   ├── __init__.py
│   ├── hello.py
│   └── main.py
├── poetry.lock
├── pyproject.toml
└── tests
└── test_hello.py
“`

# Poetry のインストール

[Poetry Installation](https://python-poetry.org/docs/#installation)

“`
curl -sSL https://install.python-poetry.org | python3 –
“`

# pyproject.

元記事を表示

PythonでSwitchBotのAPIをしばく

# PythonでSwitchBotのAPIをしばく

この記事は[**四工大アドベントカレンダー2023**](https://qiita.com/advent-calendar/2023/yonko_univ)に参加しています。
この記事は[**ひとりアドベントカレンダー2023**](https://github.com/Chroma7p/one-man-advent-calendar2023)にも参加しています。

2日目です。

## 概要
– Pythonを使用したSwitchBot API v1.1でのデバイス制御
– 各デバイスのクラスを作ってより使いやすくする

## 要約
SwitchBot API v1.1を使用して、Pythonでデバイスを制御する方法を紹介します。
また、デバイスごとにクラスを作成して、より使いやすくする方法も紹介します。

## Pythonを使用したSwitchBot API v1.1でのデバイス制御
SwitchBotのデバイスをPythonで制御するためには、API認証とデバイス情報の取得を関数化して整理することが効果的です。以下は、

元記事を表示

BMP280をI2C接続したmilk-v duo上でPythonを使って温度と気圧を測定する

## はじめに
秋葉原ロボット部の有志で、milk-v duoを購入し、個々人が様々な実験を行って、勉強会内で報告しています。

Milk-v duoは9ドルのrisc-vコンピュータとして知られています。
ハードウェアは以下の通りです。

1. CPUはCVITEKのCV1800B (C906@1Ghz + C906@700MHz)
2. 最高1 GHzで動作するデュアルRV64コア
3. 64 MBのラム
4. オプションのアドオンボードを接続すると10/100Mbpsの速度でイーサーネットに接続可能

現在配布されているディスクイメージV1.5.0には、Python、Pipが含まれていますので、本体の上でプログラミングが可能です。
本稿では、milk-v duoに温度と圧力のセンサであるBMP280を接続して、pythonのプログラムで、温度と圧力の測定を行います。
## 用意するもの
・milk-v duo本体
・3.3Vで動作するBMP280モジュール
・本体とモジュールを接続するジャンプワイヤ

## BMP280とmilk-v duoの接続
以下の様に接続します。
B

元記事を表示

AI時代(仮)のVimmer

本記事は、 [mediba Advent Calender2023](https://qiita.com/advent-calendar/2023/mediba) の2日目の記事になります。

## ヤクの毛刈りの前に

– Python環境を手を抜かずに整備しましょう 😥
– Pythonに依存する我々は、[PEP668](https://peps.python.org/pep-0668/)は避けて通れません(通れるけど)。今回こそ、Pythonの環境問題と対峙しましょう(対峙したのは約2日前) 😥
– 覚悟を決めましょう、我々には心強い仲間が出来ました
– Homebrew等パッケージマネージャーでVimを管理していたあなた(約2日前の私)、makeするのです。ソースコードからビルドするのです。私達には、AIという心強い味方が出来ました。
– 仲間はたくさん作りましょう
– 心強い仲間は、OpenAI社だけではありません。たくさんのAIを~~おもちゃ~~仲間にしましょう。ヒンメルならそう言うでしょう

## ヤクの毛刈り

### mac

元記事を表示

PythonでAtCoderを解く時にちょっと得するメモ 2

# はじめに
 以前、[PythonでAtCoderを解く時にちょっと得するメモ](https://qiita.com/T_death/items/c415728b309173c2521f)というタイトルで、PythonとAtCoderに関する内容を書きました。それの続きになります。
以下に書く内容は、思いついた順番です。

## その1(逆順)
“`sample.py
sample_list = [“a”, “b”, “c”, “d”, “e”, “f”, “g”]
sample_txt = “abcdefg”

# 逆順にする方法1
sample_list.reverse()
print(sample_list)
>>> [“g”, “f”, “e”, “d”, “c”, “b”, “a”]
print(sample_txt.reverse())
>>> AttributeError: ‘str’ object has no attribute ‘reverse’

# 逆順にする方法2
print(sample_list[::-1])
>>> [“g”, “f”, “e

元記事を表示

【Python】機械学習を使って自分の顔に似合う髪型を出してくれるアプリ

# はじめに
皆さんこんにちは!僕は大学二年生のメディア関係の学科で学んでいるものです。今回は夏休み期間を使ってaidemy premium に入会して、PythonのAIアプリ開発について学習しました。その最後に、ここで学んだことを応用して、一つアプリを作ることになりました。

自分が作ったのは、**撮影した自分の顔に似合う髪型を紹介してくれるアプリ**です!        大学生になると、垢抜けをして髪を染めたり髪型を大きく変えたりする人が増えていきます。僕もそれにあこがれて、雰囲気を少しでも変えてみたいと思うのですが、髪型が多すぎて迷ってしまいます…
そこで、自動で自分に似合う髪型を提案してくれるアプリがあったらいいなと思って、今回の制作に至りました。

それでは、制作を始めていきます。

## ※実行環境
Google Colaborator
Visual Studio Code
Anaconda3
Python3

# 1.モデル制作

ここでは、アプリ開発におけるモデルを作っていきます。ここでいうモデルでは、男女別に顔写真をブラウザ内で検索して、そ

元記事を表示

Python3のCGIスクリプトでバイナリデータが出力したい

Python3でCGIを書いたとき、画像データ(PNG)をレスポンスしたくてハマったので方法をまとめておきます。

## HTTPレスポンス
HTTPではWebサーバーにデータをリクエストし、Webサーバーはリクエストされたデータ(HTMLファイルや画像など)をレスポンスとして返します。
以下はHTMLファイルを返すときのレスポンス例です([HTTPリクエスト、HTTPレスポンスとは](https://qiita.com/minateru/items/8693538bbd0768855266))。
“`php
HTTP/1.1 200 OK
Date: Mon, 23 May 2022 22:38:34 GMT
Server: Apache/2.4.1 (Unix)
Last-Modified: Wed, 08 Jan 2022 23:11:55 GMT
Content-Type: text/html
Content-Length: 438



An Example Page


Hello W

元記事を表示

Pythonの自作APIラッパーでChatGPTをしばく

# PythonでChatGPTをしばく

この記事は[**四工大アドベントカレンダー2023**](https://qiita.com/advent-calendar/2023/yonko_univ)に参加しています。
この記事は[**ひとりアドベントカレンダー2023**](https://github.com/Chroma7p/one-man-advent-calendar2023)にも参加しています。

## 概要
– OpenAIが提供するPythonのAPIの変化
– ChatGPTのAPIにおける諸機能
– Pythonで作ったChatGPT関連の自作APIラッパーについて(本題)

## 要約
結局PythonにしてもAPIめんどくさいのでオレオレラッパー作ったよ!見て!
前振りはほとんどぼやきと前提知識だからお急ぎだったら最後の項目へ……

## OpenAIが提供するPythonのAPIの変化
最近(gpt-4-visionが追加されたあたり?)OpenAIが提供しているPythonパッケージに変化があり、だいぶ書き方が変わりました。一応もとのバージョンも使えるよう

元記事を表示

元素種Oを含むPOSCARファイルのパスのみ抽出(ログ)

## 目的
多原子イオンを含まない酸化物において,酸素のみではどういう構造になっているのかを確かめる.

## 目標
元素種O(酸素)を含むPOSCARファイルのパスのみを抽出する.

## 参考
過去ログ[1]を参考に行った.
[1] 元素種C,Oを含むPOSCARファイルのパスのみ抽出(ログ)- Qiita

## スクリプトの説明
* get_O_existed_poscar_path_list.py[1]
* 入力:poscar_existed_file_path_list.npy
* 出力:O_existed_poscar_file_path_list.npy,O_existed_poscar_folder_path_list.npy

[1] https://github.com/k-morii-toridai/scripts_get_O_existed_poscar_path_list.git

## スクリプト実行の流れ
シェルスクリプトを実行する.:
* get_O_existed_posca

元記事を表示

巨大な数の足し算(繰り上がりなし) Python3編

https://paiza.jp/works/mondai/string_primer/advance_step10

巨大な数の足し算。
あれ、、、これじゃだめだっけ?と思ってたけど
OKだった

“`py
S = int(input())
T = int(input())
print(S + T)

“`
え、これでいいのか?
と思ったが、意図は違ったらしい。

>S , T を数値として扱うとオーバーフローが発生します。

> 答えとなる値も数値として扱うことはできない

なるほど。。。だから文字列でしないとだめなのか。
繰り上がりがないとすると、計算はたしかにこうなるよな。。。
でもそれなら、オーバーフローさせて正解にしないほうがいいんじゃないかな?
まあ、勉強ってことで。。

“`py
s = input()
t = input()

ans = “”
for i in range(len(s)):
ans += str(int(s[i]) + int(t[i]))

print(ans)
“`

じゃあ繰り上がりがあるときはどうするのかな?
次の問題もやって

元記事を表示

炭酸イオンを含むPOSCARを,POSCAR.nnlistを用いて判定し,その精度検証を行う(ログ)

## 目的

## 目標
ある結晶構造が炭酸イオンを含むかどうかを判定する.加えて,その精度を検証する.

## 流れ
* ある結晶構造が炭酸イオンを含むかどうかを判定.
1.元素種C, Oを含むPOSCARファイルパスのリストを取得.
2.炭酸イオンの大きさ(半径)を見積もる.その距離(半径)と,1. で得たPOSCARファイルからPOSCAR.nnlistファイルを作成する.
3.2.で得たPOSCAR.nnlistファイルを用いて,POSCARファイルが炭酸イオンを含むかどうかを判定する.
4.3.で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する.

* その精度を検証する.
5-1.3.の炭酸イオンかどうかの判定の精度を検証するため,2.で指定する距離(炭酸イオンの半径)を変え,4.の炭酸イオンだと判定されるPOSCARファイルの数が変わるかどうかを確認する.
(5-2.4.で取得した炭酸イオンを含むと判定されたPOSCARファイルを可視化して,炭酸イオンを含むかどうかを検証する.)

## 詳細ログ
### 1.元素種C, Oを含むPOSCARファ

元記事を表示

OTHERカテゴリの最新記事