Python3関連のことを調べてみた2022年12月05日

Python3関連のことを調べてみた2022年12月05日

FastAPI+SQLAlchemyでリレーションシップを使いこなす

SQLAlchemyはPythonでよく利用されるORMです。ですが、実際に使ってみたところ、リレーションシップの使い方にくせがあり、苦戦しました。特にSELECT時の挙動が分かりにくかったので、調査したことをまとめておくことにしました。

本記事で使用しているバージョンは下記です。

“`requirements.txt
fastapi==0.79.0
uvicorn==0.18.2
SQLAlchemy==1.4.39
PyMySQL==1.0.2
alembic==1.8.1
“`

# 1対多
1対多は、1つの親に対して複数の子がいるパターンです。
子テーブルが親テーブルのIDを外部キーとして持ちます。

## テーブル定義

親テーブルの定義はこのようになります。

“`python:models/parent1.py
from models.child1 import Child1 # noqa: F401

class Parent1(Base):
__tablename__ = “parent1_table”
id = Column(Integ

元記事を表示

Houdini を Python 3 でやる!!! Part.2

# はじめに

ずいぶん前の Advent Calendar で「[Houdini を Python3 でやる!!!](https://qiita.com/takavfx/items/a019427a1062b41fc8d6)」という記事を買いた。
この時は、様々な DCC ツール(良い意味で Blender を省く)が Python 3 に移行をしている段階で、Houdini もその検証段階にあった。そのため、内容はかなり壊滅的で、結論としては「今はまだ使えないかなぁ」という結論に至っていた。
しかしながら、あれから時も経ち、Houdini のバージョンも 18.5 -> 19.0 -> 19.5 へと経てきた。実際に、現時点で僕は Houdini に関するものはもちろん Python 3 で書いているし、特に問題ないと感じている。
ということで、あの記事だしっぱで名誉挽回の機会も与えないのは酷だと思うので(?)、ちゃんと使えますよ!という記事を書こうと思った次第。
ついでに、Python 3 の最新を使っていく事で何が嬉しいかをちゃんとサンプルを元に残しておこうと思う。

## 実

元記事を表示

FizzBuzz問題

## FizzBuzz問題とは
1から順に数を数え上げていき、3の倍数なら「Fizz」、5の倍数なら「Buzz」、両方の倍数(15の倍数)なら「Fizz Buzz」、いずれでもなければその数を言うゲームです。
元々は海外の言葉遊びでそのルールをプログラムに実装したものです。

プログラミングの初歩的な問題で扱われることが多いですが、使える予約語や演算子、関数やオブジェクトが制限されると、とたんに難易度が上がります。

まずコードを見てみましょう。

## 環境
“`
macOS Ventura 13.0.1
Google Colaboratory
“`

## コード

“`python
for num in range (1, 101):
if num % ( 3*5 ) ==0:
print (“Fizz Buzz”)
elif num % 3 == 0:
print (“Fizz “)
elif num % 5 ==0:
print (“Buzz”)
else:
print(nu

元記事を表示

f14: selenium / chrome webdriver 動作環境の検証

.
selenium の chrome webdriver + headless
を用いたスクレイピング手法については、
多くの方が情報共有をされておりますので、
実現の詳細は他の方の記事におまかせし、

いくつかの環境で試してみましたので、
動作検証結果をメモします

※ OK 環境、NG 環境、動作不安定環境、ともに
実際の検証結果ですが、OS や 各々の環境により、
必ずしも同じ結果になるとは断定できませんので、
参考程度で捉えてください

※ python は、3.x 系です

※ google chrome + webdriver + headlees で実施してます

※ サンプルとしてヤフー天気の大阪の気温を取得してます

“`python:sample1.py
driver.get(“https://weather.yahoo.co.jp/weather/”)

highs = driver.find_elements(By.XPATH, ‘//*[@id=”map”]/ul/li[8]/a/dl/dd/p[2]/em[1]’)
lowss = driver.fin

元記事を表示

pythonの浮動小数点について(備忘録)

## pythonの浮動小数点は、不正確!?

~~~python
>>> 0.3
0.3
>>> 0.1 + 0.1 + 0.1
0.30000000000000004
>>> 0.3 == (0.1 + 0.1 + 0.1)
False
~~~

合計に違うのは、コンピュータが浮動小数点を表現して処理の際に、「丸め誤差が生じるから」IEEE 754規格のCPUを採用している場合は、python以外でも同じ結果になるらしい…
⇒IEEEは、2**53以上の整数値を表現できない

~~~python
>>> float(2**53) == float(2**53) + 1
True
~~~

## より正確に計算をしたい場合は、「組み込み関数decimal」を使おう!

浮動小数点のまま(不正確なまま)、decimalに引数として渡しても意味がない!
~~~python
>>> import decimal
>>> x = decimal.Decimal(0.1)
>>> x
Decimal(‘0.10000

元記事を表示

自己紹介 ~たまご?から孵化して最強ピヨピヨ?になる予定系大学生~

# 自己紹介
初めまして。現在、情報系の大学に通っているだいちと言います。
これから、そろぼちプログラミングを頑張ろうと思って登録しました。
授業などでしかプログラミングに触れたことがなく、授業ではpython,C,javaを扱いました。しかし、本当に授業でしか触れたことがないので?よりも酷いレベルです。これから1年かけて頑張っていこうと思います。
よろしくお願いします。

# 年内までの目標
まずは何か成果物を作成してモチベーションを高めたい!!
実際にアプリケーションを一人で作ったことがないので
### 「Webアプリケーションを年内までに作る!!」
ということを目標に頑張っていこうかなと思います。
そのため、毎日どれくらい勉強をしたかを日記程度に書いていこうかなと思います。
とりあえず今後も授業や研究などで触りそうなpythonに触れながら頑張っていこうかなと思います。

# 最後に
これから自分の日記程度に進めていくともに、もし仮に自分みたいに飽き性かつプログラミング全くやったことない人の希望になれたらな思い、3日に1回のペースで書いていきたいなと思います。よろしくお願

元記事を表示

マイコン不要 Poke-Controller+BluetoothでSwitch自動化

# はじめに

表題の通り、このたび、Poke-ControllerでBlutoothを使用した自動化が可能になるライブラリを開発しました。この記事では、Bluetooth自動化環境の導入を解説します。

Python + OpenCVでらんてくんとキュゥべえの類似点を検出する

# 概要
この記事では、顔認証の技術などでも使われる顔の類似度判定を、OpenCVを使い実装したいと思います。
OpenCVは、画像・動画に関する処理機能をまとめたオープンソースのライブラリです。今回はらんてくんとQB(キュゥべえ)の特徴点を比較してどれだけらんてくんがQBに似ているのかAKAZEという検出器で検証しました。

# 類似点判定の例
類似点を判定するために
– 2つの画像の特徴点を抽出する
– 2つの画像の特徴点から類似点を判定する

の手順で進めていきます。

下図の円で囲まれたところが特徴点です。特徴点抽出はその名の通り、画像の中から”特徴的な”ポイントを抽出するアルゴリズムです。使われる特徴としては角 (コーナー) が多いようですが、輝度の勾配なども使われるそうです。
![runtequn_02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2520341/00c56d2a-76ed-8d94-9105-07f8d2813cdd.jpeg)![runtequn_03.jpg](htt

元記事を表示

Pythonista3 のKeyboard で、Pythonista3 のコーディングを楽にする。人生を豊かにする。

この記事は、[Pythonista3 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/pythonista3) の04日目の記事です。

https://qiita.com/advent-calendar/2022/pythonista3

一方的な偏った目線で、Pythonista3 を紹介していきます。

ほぼ毎日iPhone(Pythonista3)で、コーディングをしている者です。よろしくお願いします。

以下、私の2022年12月時点の環境です。

“`
— SYSTEM INFORMATION —
**System Information**

* Pythonista 3.3 (330025), Default interpreter 3.6.1
* iOS 16.0.2, model iPhone12,1, resolution (portrait) 828.0 x 1792.0 @ 2.0
“`

他の環境(iPad や端末の種類、iOS のバージョン違い)では、意図としない挙動(エ

元記事を表示

【AtCoder】ABC280のA,B,C,D における Python解説

ABC280のA,B,C,D問題を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。

この記事は @u2dayo さんの記事を参考にしています。見たことのない方はそちらもご覧ください。とても勉強になります。

また、diffは問題の難易度を表す指標です。[Atcoder Problems](https://kenkoooo.com/atcoder/#/table/tsuru1471) から引用しています。このサイトは勉強した問題を管理するのにとてもオススメです。

質問やご指摘はこちらまで
Twitter : [Waaa1471](https://twitter.com/Waaaa1471)

作者プロフィール
Atcoder :[緑 829](https://atcoder.jp/users/tsuru1471)
22/1203 現在

# 目次
[はじめに](#はじめに)
[A.Pawn on a Grid](#apawn-on-a-grid)
[B.Inverse Prefix Sum](#binverse-prefix-sum)
[C.Extr

元記事を表示

pythonのcopyについて(備忘録)

## 変数と代入文(=)

オブジェクトを格納する箱ではなく、オブジェクトを参照するための名札をイメージすると良い
pythonの代入文は、オブジェクトそのものをコピーするのではなく、オブジェクトの参照をコピーする!

## オブジェクトをコピー?参照をコピー?
~~~python
>>> your_colar = [‘red’, ‘bule’, ‘black’]
>>>my_colar = your_colar
>>> your_colar
[‘red’, ‘bule’, ‘black’]
>>> my_colar
[‘red’, ‘bule’, ‘black’]
>>> your_colar[2] = ‘green’
>>> your_colar
[‘red’, ‘bule’, ‘green’]
>>> my_colar
[‘red’, ‘bule’, ‘green’]
>>> id(your_colar), id(my_colar)
(1749125224128, 1749125224128)
~~~
オブジェクトそのものをコピーしているのではなく、オブジェクトの参照のみをコ

元記事を表示

「絶対import」を使ったら、Pythonのimport周りで詰まることがなくなった

# TL;DR
– Pythonでimportする際は、「実行ファイル(厳密には`モジュール検索パス`)から見たパス」で考える
– [例1](#例1-二階層の場合)の`b_2.py`参照
# この記事を書くに至った経緯
– 自分も数年Pythonを扱って来ましたが、`ModuleNotFoundError: No module named ‘xxx’`エラーを親の顔ほど見ましたし、苦しめられてきました
– 今までimportを相対的に考えていましたが、絶対的に考えることにより上手くいった部分があったので、共有しようと思います
– 実際にコードで説明した方がわかりやすいと思うので、例を交えながら説明します
# 注意点
– タイトルは誇張気味です。すみません。
– 実行環境は`Python 3.10.0`です
– 例で記述したコードは最短にすることを最重視しています
– `__init__.py`については本記事では対象外とさせていただきます
– これについても情報が散見される印象を受けるので、いつかまとめたいとは思っていますが……
– [Pythonの公式ドキュメント](

元記事を表示

tweepyを使って特定のワードの入ったツイートを取得する

おはこんばんちわ。

## 大まかな流れと準備
###### 最終目標
「特定のワードを指定したツイートを取得して、csv形式で保存する。」

裏テーマ「金曜ロードショー放送中のみんなのリアクションが見たい。」

###### 方法

1.Pythonでtweepyを利用し、ツイートデータを取得。
2.欲しいデータのみ抽出。
→今回はツイート本文とツイート時間を取得。
3.データの加工、整理。
4.結果をcsv形式で出力。

###### 準備

・TwitterAPI(v2)のデベロッパーアカウントを取得する。
・Pythonを実行できる環境を用意する。

###### 今回のコードの注意点
・時間指定
→元々のタイムゾーンがutcなので日本時間から-9時間しなければならない。
→TwitterAPIの機能で一週間前までしか遡ることができない。
・検索ワードのAND,ORなど
→できると思いますが、今回は割愛します。

## コード
“`php
import tweepy
import pandas as pd
import datetime as dt
import time

元記事を表示

python pandas :条件指定による抽出

# query
条件を付けて任意の行を抽出できます。

## code
適当なデータを使って、任意行の抽出を行いました。比較演算子、論理演算子で条件を絞ることができます。また、listや変数も扱うことができます。使用例を下記にまとめてみました。

“`python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import pandas as pd
data = {‘state’: [‘Ohio’, ‘Ohio’, ‘Ohio’, ‘Nevada’, ‘Nevada’, ‘Nevada’],
‘year’: [2000, 2001, 2002, 2001, 2002, 2003],
‘pop’: [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}

df = pd.DataFrame(data)
print(df)
# state year pop
# Ohio 2000 1.5
# Ohio 2001 1.7
# Ohio 2002 3.6
# Nev

元記事を表示

AtCoder Beginner Contest(ABC) 278 – Pythonでのバーチャル参加結果と内容整理

# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。

# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 278
– 開催日時
– 2022/11/19(土) 21:00 – 22:40
– 実施区分
– バーチャル参加
– 2022/11/21(月)

# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|10:44
(1NG,5:44+5min)|24ms|
|B問題|WA|-|-|
|C問題|TLE|-|2221ms|
|D問題|TLE|-|2206ms|

# 4. 解説

## 4-1. A問題

### 4-1-1.

元記事を表示

[python3][pandas]時間でroundを使う際の細かい話

# pyhton3のdt.round
時間を指定した区切りに丸めることができる。
“`python
rng = pd.date_range(‘1/1/2018 11:59:00′, periods=3, freq=’min’)

print(rng)
print(rng.round(‘H’)) # ‘H’:時間で丸める

“””出力
DatetimeIndex([‘2018-01-01 11:59:00’, ‘2018-01-01 12:00:00’,
‘2018-01-01 12:01:00′],
dtype=’datetime64[ns]’, freq=’T’)
DatetimeIndex([‘2018-01-01 12:00:00’, ‘2018-01-01 12:00:00’,
‘2018-01-01 12:00:00′],
dtype=’datetime64[ns]’, freq=None)
“””
“`
# ドキュメント
https://pandas.py

元記事を表示

プッシュボタンを押すと LINE に通知が飛ぶ Python アプリを、Cyclone V SoC のキット(Atlas)に実装してみた

# もくじ
●[1.はじめに](#1はじめに)
●[2.環境](#2環境)
●[3.構成](#3構成)
●[4.準備 ~Linux 環境作成~](#4-準備-linux-環境作成)
●[5.準備 ~Linux 上で GPIO の制御方法の確認~](#5-準備-linux-上で-gpio-の制御方法の確認)
●[6.準備 ~LINE の送信~](#6-準備-line-の送信)
●[7.Python コード](#7-python-コード)
●[8.実行結果](#8-実行結果)
●[9.おわり](#9-おわりに)

## 1.はじめに
以前、[Intel® Cyclone V SoC のキット(Atlas)と PC を LAN ケーブルで繋ぎ、Python で UDP パケット通信させてみた](https://qiita.com/uchiita/items/7326091acc9a6da77622) の記事を作成した際、SoC FPGA を Python で動かすことができれば、色々面白そうと思いました。

センサーで取得したデータや FPGA 側のデータを、Python の豊富なライブラリ

元記事を表示

AtCoder Beginner Contest(ABC) 277 – Pythonでのバーチャル参加結果と内容整理

# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。

# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 275
– 開催日時
– 2022/11/12(土) 21:00 – 22:40
– 実施区分
– バーチャル参加
– 2022/11/13(日)

# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|4:02|22ms|
|B問題|AC|14:39|25ms|
|C問題|未提出|-|-|

# 4. 解説

## 4-1. A問題

### 4-1-1. 問題文
> (1,2,…,N) を並び替えた数列 P と整数 X が与えら

元記事を表示

AtCoder Beginner Contest(ABC) 279 – Pythonでのリアルタイム参加結果と内容整理

# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。

# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 279
– 開催日時
– 2022/11/26(土) 21:00 – 22:40
– 実施区分
– リアルタイムRated参加

# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|7:14|24ms|
|B問題|AC|10:59|24ms|
|C問題|TLE|-|2208ms|
|D問題|RE|-|24ms|

# 4. 解説

## 4-1. A問題

### 4-1-1. 問題文
> v と w のみからなる文字列 S が与えられま

元記事を表示

OTHERカテゴリの最新記事