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

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

discord、どう動いてる?

# 動機
普段使用しているpycordはどのようにして動いているのか気になったので。

# 仕組み
ベース:
APIのバージョンは8以上が推奨されています。[参考](https://discord.com/developers/docs/reference#api-versioning)

**下準備**
“`python
from pprint import pprint

API_VERSION = 9
BASE_URL = “https://discord.com/api/v{}”.format(API_VERSION)

TOKEN = “YOUR_BOT_TOKEN”
HEADER = {“Authorization”: “Bot {}”.format(TOKEN)}

APP_ID = 000000000000000000 # BotのID
GUILD_ID = 111111111111111111 # 対象とするサーバーのID
CHANNEL_ID = 222222222222222222 # 対象とするチャンネルのID
“`

# [メッセージ送信](ht

元記事を表示

FastAPI: SQLAlchemy で MariaDB を使う (その 4)

こちらのプログラムを改造しました。
[FastAPI: SQLAlchemy で MariaDB を使う (その 3)](https://qiita.com/ekzemplaro/items/d0c6321080ee14e2de36)
>API に PUT を追加

## プログラム ##

フォルダー構造

“`text
$ tree
.
├── __init__.py
├── crud.py 変更
├── database.py
├── main.py 変更
├── models.py
└── schemas.py 変更

“`py:crud.py
from sqlalchemy.orm import Session
import sys
from datetime import datetime

from . import models, schemas
#
def get_city(db: Session, city_id: str):
return db.query(models.City).filter(models.City.i

元記事を表示

Pythonで作るスネークゲーム

## はじめに
 今回はPythonで、ヘビ状のオブジェクトにエサを食べさせて成長させる「スネークゲーム」を作ってみたいと思います。前回の記事で取り上げたPing Pongゲームに引き続き、Python初心者向けのゲームの一つです。Youtubeなど、ネットに多く教材がありますので、ぜひ参考にしてみてください。
 今回はpygameという、Pythonでゲーム作成をするときに便利なライブラリを使用しています。
今回のソースはこちらの動画に基づいて作成しています。
[“How to build SNAKE in Python!”](https://www.youtube.com/watch?v=9bBgyOkoBQ0)

## ゲーム概要と必要なオブジェクト及び処理
 そもそもスネークゲームとはどのようなゲームでしょうか。こちらが今回作るスネークゲームの外観です。

![スクリーンショット 2022-04-28 8.33.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1676583/5d931adc

元記事を表示

asyncio、コルーチン、async/await

# asyncio

>async/await 構文を使い 並行処理の コードを書くためのライブラリです
https://docs.python.org/ja/3/library/asyncio.html

では、`async/await`とは?

# async/await

* 非同期で実装する際に使用する

“`sample.py
async def edit():
results = await get()
return results
“`

次の様にawaitを使わない場合、

“`sample.py
async def edit():
print(get())
# > RuntimeWarning: coroutine ‘SampleController.get’ was never awaited
“`

「コルーチンがawaitされていない」と。
**コルーチンを単に呼び出しただけでは実行出来ず、コルーチンオブジェクトが返るため**

コルーチンとは?

# コルーチン

async/await 構文で宣言された関数はコルーチンと呼ば

元記事を表示

JPXのデータを用いてデータ分析をしていく【データ読み込みからデータの中身理解】(Kaggleコンペ)

みなさんこんにちは。
現在、Pythonを勉強している社会人3年目の転職希望者です。
プログラミングスクールに通い、様々な分析手法を学びました。これからは、更に実践で活躍できるようになる為、自らデータを探し、データの分析のみならず基礎から学んでいこうと考えています。
このブログが様々な人の役に立てれば光栄に思います。

さて、本題ですが今回使用するデータセットは下記のとおりです
https://www.kaggle.com/competitions/jpx-tokyo-stock-exchange-prediction
JPXが主催のコンペディションになっています。

ここで、JPXとは何か簡単に説明していきます。

日本取引所グループ(JPX)は、世界最大級の証券取引所である東京証券取引所(TSE)と、デリバティブ取引所である大阪取引所(OSE)および東京商品取引所(TOCOM)を運営する持株会社です。

今回はこのコンペディションのデータを用いて、データの読み込みからデータ手法まで幅広く学んでいきたいと思います。

1.データの読み込み
与えられたデータがかなり多いですが、まずは一

元記事を表示

boto3を使って、さくらのオブジェクトストレージにファイルをアップしてみる

# はじめに
最近になって、さくらのクラウドを触り始めた初心者(筆者)が四苦八苦しながら
オブジェクトストレージにファイルをアップロードしてみたのが前回の内容。

https://qiita.com/nkmr_RL/items/9b15c2eaddb97a830887

上記のアップロードができるようになったら
**「なんかPythonから操作できる気がしてきたわ…」**
と思い立ったので、Pythonから操作してみるのが今回の内容。

あと、先に言っておきますが、**AWS公式ライブラリboto3を使った方法**になるので
**さくらインターネットの公式サポート対象外のやり方**です。(多分)

だから、1年後には使えなくなっているかもしれない。(バナージ…悲しいね)

# 予想される検索ワード
以下、この記事を求めているであろう方が入力しそうな
(というか実際に私が必死で検索した)検索ワードです。

さくらのクラウド, オブジェクトストレージ, アップロード方法, Python, boto3

# 実行環境
– ubuntu 18.04(Dockerで構築)
– Pytho

元記事を表示

データフレームのある列をインデックスに設定する df.set_index()

ある列をインデックスに設定したい!
そんな時に、用いるのが`set_index()`です
df = df.set_index(“インデックスに設定したいカラム名”)

例えば、3列目くらいに`age`というカラムがあったとします。
年齢ごとにデータをまとめたいとき、一番左の列(インデックス列)にあればとてもデータとして
見やすいですよね。
是非使ってみてください!

元記事を表示

FastAPI: SQLAlchemy で MariaDB を使う (その 3)

こちらのプログラムを改造しました。
[FastAPI: SQLAlchemy で MariaDB を使う (その 2)](https://qiita.com/ekzemplaro/items/e4a89757858c4c85e271)
>データベースとテーブルを変更
>API に delete を追加

## プログラム ##
フォルダー構造は同じです。

“`text
$ tree
.
├── __init__.py
├── crud.py
├── database.py
├── main.py
├── models.py
└── schemas.py
“`

“`py:crud.py
from sqlalchemy.orm import Session

from . import models, schemas
#
def get_city(db: Session, city_id: str):
return db.query(models.City).filter(models.City.id == city_id).first()
#
def get_cities(d

元記事を表示

FastAPI: SQLAlchemy で MariaDB を使う (その 2)

こちらのプログラムを改造しました。
[FastAPI: SQLAlchemy で MariaDB を使う](https://qiita.com/ekzemplaro/items/9f84596fba2c532d45a9)
変更点
 id を string に
 age を追加

## プログラム ##

フォルダー構造は同じです。

“`text
$ tree
.
├── __init__.py
├── crud.py
├── database.py
├── main.py
├── models.py
└── schemas.py
“`

“`py:crud.py
from sqlalchemy.orm import Session

from . import models, schemas

def get_user(db: Session, user_id: str):
return db.query(models.User).filter(models.User.id == user_id).first()

def get_user_by_email(db: S

元記事を表示

超初心者が適当に選んだC問題を解きまくってみた【Python】

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

116 Grand Garden

https://atcoder.jp/contests/abc116/tasks/abc116_c

“`python:practice.py
def judge(hlist):
if len(hlist)==0:
return 0
mini = min(hlist)
idx = hlist.index(mini)
hlist = [h-mini for h in hlist]
return mini + judge(hlist[:idx]) + judge(hlist[idx+1:])

n = int(input())
hlist = list(map(int, input().split()))
print(judge(hlist))
“`

この問題で必要な考え方は、最初に一番背の低い花の必要な数だけ全体に水を与えて

元記事を表示

【AtCoder参加記】PythonでABC249のA, B, C, Dを解く

自分がコンテストでやった考察と実装を書いてみます.

* [A問題 『Jogging』](https://qiita.com/yassu/items/95f53238774e0d34489b#a%E5%95%8F%E9%A1%8C-jogging)
* [B問題 『Perfect String』](https://qiita.com/yassu/items/95f53238774e0d34489b#b%E5%95%8F%E9%A1%8C-perfect-string)
* [C問題 『Just K』](https://qiita.com/yassu/items/95f53238774e0d34489b#c%E5%95%8F%E9%A1%8C-just-k)
* [D問題 『Index Trio』](https://qiita.com/yassu/items/95f53238774e0d34489b#d%E5%95%8F%E9%A1%8C-index-trio)

## A問題 『Jogging』

問題ページ: [A – Jogging](https://atcoder.jp/cont

元記事を表示

【AtCoder解説】PythonでABC249のA,B,C,D,E,F問題を制する!

**ABC249**の**A,B,C,D,E,F問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM

元記事を表示

Pillowで図形を描く

# インストール
“`
$ pip install Pillow
“`

# 使い方
## 1. インポート
“`python
from PIL import Image
“`

## 2. 画像ファイルを開く
### 画像ファイルを読み込み
“`python
im = Image.open(fp, mode=’r’, formats=None)
“`
* __fp__ – ファイルのパス

### 新しく生成
“`python
im = Image.new(mode, size, color=0)
“`
* __mode__ – モードを選択
* __size__ – タプル`(width, height)`をピクセルで指定
* __color__ – 画像の色 デフォルトでは`’black’`

## 3. 図形を描く
### インポートとdrawオブジェクトの生成
“`python
import ImageDraw
draw = ImageDraw.Draw(im, mode=None)
“`

### 直線,折れ線
“`python
draw.l

元記事を表示

FastAPI: SQLAlchemy で MariaDB を使う

次のページを参考にしました。
[SQL (Relational) Databases](https://fastapi.tiangolo.com/ja/tutorial/sql-databases/)

Ubuntu でのライブラリーのインストール

“`bash
sudo pip3 instal mysqlclient
“`

MariaDB に次のデータベースを作成します。

“`text
host =’localhost’
data_base = ‘db_test’
user =’scott’
password = ‘tiger123’
“`

## プログラム ##

“`text
$ tree
.
├── __init__.py
├── crud.py
├── database.py
├── main.py
├── models.py
└── schemas.py
“`

“`py:crud.py
from sqlalchemy.orm import Session

from . import models, schemas

def get_user(db

元記事を表示

【Python + OpenCV】簡易寸法測定(画像に寸法描写)

## はじめに
画像を用いた寸法測定ツール作成は、カメラからの遠近によるサイズミスマッチや精度の問題があって敬遠しておりました。

https://qiita.com/okm_6880/items/0f964484d570208d715d

しかし先日、面白そうな記事を見つけました。

https://protopedia.net/prototype/2928

https://github.com/esc122/opencv_draw_binarize

## ちょっとした改良
2か月前に 1 commitされているのみで、開発が進んでいるのか止まっているのかわかりません。ひとまずfork / git clone し自分でも使ってみて、必要に思った機能を追加しました。詳しい操作方法などはREADME.mdをご覧ください。二値化して面積求めたりする機能もあるようですが、私には必要なさそうなので説明を省略しています(元リポジトリには一切の説明がありません)。

https://github.com/youichi-io/opencv_draw_binarize

#### メイン画面
w

元記事を表示

【Python OpenCV】画像 から 横線 のみ検出する(おまけで縦線も)

## はじめに
OCRするうえで「枠線」は避けて通れません。文書のOCRを進めていると、表の枠線が検出の邪魔をすることがあります。一方で、OCRをする領域を絞り込むために枠線の位置情報を必要とすることもあります。今回は、そんな枠線の情報を取得することを目指します。

![out_64.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577794/789ea6a2-2b70-276a-bb37-85950aa019a7.jpeg)
![out_ver.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577794/ecbb6c87-5f9d-3f65-cd11-4696f6954a57.jpeg)

## 対象者
この記事は下記のような人を対象にしています。
– OCRのために枠線の情報を取得したい人

## 参考元
参考にしたサイト様を以下に示します。書かれている通り、微調整が重要でした。この記事ではその微調整した部分をまとめ

元記事を表示

にゃんこスイーパー

Python+Cursesで、にゃんこスイーパーを書いてみました。
Ubuntuのターミナルで動きます。
ファイルに、chmod +x nyankosweeper.pyとして、実行権を付けて動かして下さい。

$./nyankosweeper.py [number of cats]として、動かします。
[number of cats]は、省略できます。省略すると、猫の数は58個となります。

スペースキーで、開き、’z’キーで、マークを付けます。カーソルは矢印キーで動かします。
’q’キーで抜け出せられます。

pyinstallerで、コンパイルできます。コンパイルしなくとも、そもそも速度はあんまり問題ないですが。

“`nyankosweeper.py
#!/usr/bin/python3

import curses
import random
import locale
import select
import sys

xsize = 40
ysize = 23
vvram = [[0 for i in range(ysize)] for j in range(xsize

元記事を表示

『Python1年生』で勉強中(その3)

## この記事について
『Python1年生』(以下、書籍)でPythonを学習する超初心者の記録です。
後述の「やったこと」にも書いていますが、ようやく書籍を最後まで進めました。
その1, その2に引き続き、超初心者の学習記録ですので、今回も大したことは書いていないと思います。

■ バックナンバー
・[『Python1年生』で勉強中(その1)](https://qiita.com/megrim_q/items/c1417f507e96c1fb7015)
・[『Python1年生』で勉強中(その2)](https://qiita.com/megrim_q/items/333be033e5b4637d0eed)

## 実行環境
| OS・MW | バージョンなど |
|:-:|:-:|
| OS | Windows 10 Pro 21H2 19044.1645 |
| Python | 3.10.4 |
|IDLE |3.10.4|

## やったこと

前回(「その2」)の続きから書籍の最後まで、サンプルプログラムを試しながら読み進めました。
具体的には「第4章 アプリを

元記事を表示

Loguruでライブラリのログを出力する

[Pythonのライブラリが出力するログを活用しよう](https://www.rhoboro.com/2020/12/29/logging-and-debug.html)
をloguruでやる方法

# logging版

“`py:a.py
import requests
import logging

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler())

try:
requests.get(“https://expired-rsa-dv.ssl.com/”)
except requests.exceptions.SSLError:
logger.info(“SSLError”)
“`

“`
$ python3 a.py
Starting new HTTPS connection (1): expired-rsa-dv.ssl.com:443
SSLError
“`

# loguru版

[Wan

元記事を表示

MacのPython環境構築で3系にならないときの解決方法

先日、ふとAIをやってみたいと思い立ち、Pythonの環境構築を行ったのだが、手順通りにやったはずなのに、Pythonのバージョンが変わらない。
__Python2.7.16__ から __Python3.10.2__ にしたいのに、なんでか変更されない。。。。。。

## 環境
PC:Mac
Version:BigSur
shell:bash
  →bashかzshでインストール方法が若干変わるみたい。私はbashだったので、ここではbashの場合の解決方法

## やりたいこと
Macには初期でPythonがインストールされているが、
__Python2.7.16__ であるため、最新の __Python3.10.2__ をインストール、メインバージョンとしたい

## インストール手順
インストールは以下サイトを参考に実施した
参照:[Pythonの開発環境を用意しよう!(Mac)](https://prog-8.com/docs/python-env)

## 現状
インストールを手順通りに実施した後に、適用バージョンを確認したところ、
期待値としては

“`
$ pytho

元記事を表示

OTHERカテゴリの最新記事