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

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

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

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

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

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

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

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
よかったら**LGTM**や**拡散**していただけると喜びます!

# 目次

[ABC265 まとめ](#abc265-まとめ)
[A問題『Apple』](#a問題apple)
[B問題『Explore』](#b問題explore)
[C問題『Belt Conveyor』](#c問題belt-conveyor)
[D問

元記事を表示

discordのイベント検知の方法

# 動機
自分がよく使っているdiscordのBOTがどう動いているのかが気になった。

# 仕組み

自分なりに解釈したものが混ざっています。
図が下手なので言葉で。

送受信はwebsocketを使います。

– websocketでゲートウェイを開拓。
– string形式でwebsocketにtokenを送り、自分の情報を伝える。(send_str()のop: 2で承認を求める)
https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes

“`py
string = {
“op”: 2,
“d”: {
“token”: “YOUR_BOT_TOKEN”,
“properties”: {},
“intents”: 3276799
}
}
“`
– `op`: discord側からの通知の種類の番号。2 は `Identify`、
> Starts a new session du

元記事を表示

ローカル環境のStable Diffusionで大量に画像を生成して比較する

# はじめに
Stable Diffusionをローカル環境で動かしつつ大量生成した画像をサムネイル表示して比較したかったので、VSCodeのJupyter Notebookで実行する手順と便利関数を作ってみました。
プロンプト用の英単語調べるのが面倒なので、ついでにDeepLのAPIで日本語を翻訳する関数もいれてます。
※細かい手順は後程追記予定

# 検証環境
* OS: Windwos 10 Pro
* CPU: AMD Ryzen 5 5600X
* GPU: NVIDIA GeForce RTX3080 (Game readyドライバーバージョン516.94)
* Memory: 32GB

# 必要なソフトウェアのインストール
* CUDA1.6インストール ※GPU使いたい場合
* cuDNNインストール ※GPU使いたい場合
* python3インストール
* pytorchインストール
* diffusers libraryインストール
* VSCodeインストール
* Jupyterエクステンションインストール
* gitクライアントインストール ※huggingf

元記事を表示

【Python】陰陽座『廿弐匹目は毒蝮』をシミュレート

## 概要

陰陽座の楽曲『廿弐匹目は毒蝮』の状況を、Pythonでシミュレートしてみました。

前回の投稿では、「ほんのわずかな確率でも、繰り返していれば起こる」ことをシミュレーションしました。理論上の数値と実際の結果を比較してみるのが楽しかったです。

https://qiita.com/AnPanda/items/ae3fbd9cee2248a7abb5

他のネタでもやってみようと思い、この曲のことを思い出しました。

https://www.uta-net.com/movie/219717/

### シチュエーション

> 「この茂みから100回に1回、もしくは1%の確率で毒蛇が出る」と言われたとします。人によりますが、これは概ね「ではこの1回は大丈夫だろう」と思える確率だと言えるでしょう。しかし、確率1%が持つ本当の意味は“100回やれば必ず1回出る”ではありませんし、逆に“100回やるまでは出ない”という保証もまったくありません。そういうときに限って、中途半端な“22回目”くらいのところで出たりもする…

http://mttb.jugem.jp/?eid=1139

元記事を表示

Stable DiffusionをGoogle Colaboratory上で動かして神絵ガチャを回してみる

## はじめに

最近神絵生成AIが話題ですね。
絵描きの端くれとしてこの波に乗り遅れるわけにはいかない!ということで、つい最近公開された [Stable Diffusion](https://github.com/CompVis/stable-diffusion) を [Google Colaboratory](https://colab.research.google.com/) (以下Google Colab)上で実行して遊べるようにしてみました。 :paintbrush:
[こちら](https://github.com/CompVis/stable-diffusion#diffusers-integration) に記載されている [diffusers library](https://github.com/huggingface/diffusers/tree/main#new–stable-diffusion-is-now-fully-compatible-with-diffusers) を使用してサクッと動かすのがゴールです。

以下環境構築をしてコードを動かすまでのま

元記事を表示

話題の Stable DiffusionをColabで作ってみた!

今話題のAI画像生成の簡易的なソースを作りましたので、試してみたい方は是非使ってみてください!

# 実行環境
Google colab
Python 3.7.13
diffusers 0.2.4

# 前提条件
Googleのアカウントがある
huggingfaceのアカウントがある

# 環境構築手順
1. ライセンスの確認
モデルカードにアクセスしてライセンスを確認します。
https://huggingface.co/CompVis/stable-diffusion-v1-4
![CompVis_stable-diffusion-v1-4 · Hugging Face – Google Chrome 2022_08_23 23_01_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396776/234a7eac-b69d-b31a-da5f-8a4968424d2d.png)

2. アクセストークン発行
https://huggingface.co/settings/tokens
![C

元記事を表示

Python小技集 – #2 多次元リストの平坦化 (flatten)

こんにちは!beatbox4108です。
今日はPythonで多次元リストを平坦化 (flatten)する方法について説明していきます。

# まず平坦化とは?
平坦化とは、簡単に言えば、
“`python3
[
[0,1,2,3,4],
[5,6,7,8,9],
[10,11,12,13,14]
]
“`

“`python3
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
“`
のようにネストされたリストのネストを外すような操作です。

このような操作を行う方法はいくつかあります。
# 1.sum関数を使う方法
pythonのsum関数には初期値が設定できるので、その初期値に`+`演算をする原理で合成してしまおうという魂胆です。
“`python3
l=[[0,1],[2],[3,4,5]]
print(sum(l,[]))
“`
“`python3
[0,1,2,3,4,5]
“`
:::note warn
第二引数にリストを設定するのを忘れないようにしましょう。
:::
# 2. itertools.chain

元記事を表示

ひたすら素数を生成するプログラムを書いてみた

アタマの体操がてら、ひたすら素数を生成するプログラムを書いてみた。
# Source
“`prime_num.py
import math
import sys

def check(num, prime_num):
index = 0
if not prime_num:
prime_num = [2]
min_factor = prime_num[index]
max_factor = math.floor(math.sqrt(num))
while min_factor <= max_factor: remainder_big = num % max_factor remainder_small = num % min_factor if remainder_big == 0 or remainder_small == 0: return False else: index += 1 min

元記事を表示

~/.python_history の場所を変更する

ホームディレクトリに存在する`.python_history`の場所を変更する方法を紹介します.

# この投稿の概要
– `.python_history`は Python の対話モードの履歴を記録するファイル
– デフォルトの設定では,ホームディレクトリに保存される
– ホームディレクトリに dotfiles が多く存在する状況は気持ちが悪い
– 本稿では,`.python_history`の保存場所を変更する方法について紹介

# 環境
– macOS 12.5.1 Monterey (2022 M2 MacBook Air)
– Python 3.10.6 (バージョン管理ツール asdf でインストール)
– zsh 5.8.1 (x86_64-apple-darwin21.0)

本稿では,macOS を対象として説明します.
ですが,Linux においても同様の方法が適用可能だと思われます.

# やること
– 環境変数`PYTHONSTARTUP`にインタプリタ起動時に自動で読み込むスクリプトを設定
– 今回は,`~/.config/python/pythonstart

元記事を表示

Twitterに対してtweepyを使って、Pythonでツィートする

# はじめに
Twitterに対して、tweepyというpythonのモジュールを使って、ツィートする方法を説明します。
初めてのQitaの投稿になります。
これから少しずつでも投稿して、技術力を伸ばしていけたらと思います。

## tweepy をインストールする

“`
pip install tweepy
“`
## サンプルコード
“`python:tweet.py
import tweepy

def twitter_bot() -> None:
# XXXXXXXXXXXXXXXXXXには自分のコードを設定してください
ck = ‘XXXXXXXXXXXXXXXXXX’
cs = ‘XXXXXXXXXXXXXXXXXX’
at = ‘XXXXXXXXXXXXXXXXXX’
ats = ‘XXXXXXXXXXXXXXXXXX’

client = tweepy.Client(consumer_key=ck, consumer_secret=cs,
access_toke

元記事を表示

discordのwebhookはdiscord.pyで楽して作ろう

こんにちは!beatbox4108です。
ところで、discordにはwebhookという機能があるのはご存じですか?
discordのwebhookは、認証なしで、簡単なHTTPリクエストだけで、
特定のチャンネルにメッセージを送信する機能です。
ですが、APIはbotと比べると簡単ですが、やっぱり面倒くさいのが事実。
ってことで、今回はpython用のdiscordAPIラッパーのdiscord.pyを使って、簡単にメッセージを送信してみましょう!

# [Webhookの作成方法](https://support.discord.com/hc/ja/articles/228383668-%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB-Webhooks%E3%81%B8%E3%81%AE%E5%BA%8F%E7%AB%A0)は、[こちら](https://support.discord.com/hc/ja/articles/228383668-%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB-Webhooks%E3%81%B8%E3

元記事を表示

研究で使ったプログラムや、アルゴリズムの実装過程(初心者)

研究で使ったプログラムやコードを実装する過程をメモしておきます。
今後実装するついでにメモがてら書いていこうと思います。

元記事を表示

『読書好きな方必読』自分の好きな「作家」や「シリーズ本」の新刊情報のスクレイピング

> 毎月、大変な量の新刊が発売されるので、「自分の好みの作家」や「シリーズ物」の新刊の状況を確認できるようにしたいと思い作成しました。

##### DATAは『TRC新刊図書オープンデータ(図書館流通センター)』をからスクレイピングで取得し加工してます。
![スクリーンショット 2022-08-22 10.28.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634708/8f6f716d-03b2-e954-472e-2d7863ebfa5f.png)
##### Terminalの表示例
![IMG_6603.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634708/028584a4-6ee3-40bf-9188-6642ccd4b6ce.png)
##### Numbersの表示例
![スクリーンショット 2022-08-22 10.29.06.png](https://qiita-image-store.

元記事を表示

Pythonのフォーマッタをblackに移行してみたので色々所感をまとめてみる

最近以下の個人開発のPythonライブラリでフォーマッタをautopep8からblackに移行したので雑多に所感などをまとめておきます。

https://github.com/simon-ritchie/apysc

# blackとは

– Python界隈でこの記事執筆時点で一番スターの付いているPythonのフォーマッタライブラリです(執筆時点でGitHubのスターが約3万)。
– Pandasやscikit-learnなどのPython界隈の有名ライブラリ含め、非常に多くのリポジトリで使用されています(記事執筆時点でGitHub上のUsed byの表示が約17000リポジトリ)。
– 色を混ぜて別の色にできない黒色のごとく、基本的にスタイルの調整が効きにくくなっているのと調整せずに使うのが基本となっているようです。
– 融通が効かない代わりにプロジェクトごとにスタイルが異なっていたりといったことを避けられたり、最初のスタイルを決めたりする手間を省くことができます。つまり各プロジェクトでスタイルが統一されるためblackに慣れていればblack採用プロジェクトでは違和感

元記事を表示

DjangoでBootstrapを導入する

# 1. はじめに
今回はDjangoにBootstapを導入する方法を紹介します。
また、Bootstap導入後に前回の「[DjangoのWebアプリケーションにユーザ認証を追加する(django-allauth)](https://qiita.com/t-shirayama/items/11d022d78ea3c5623c80)」で作成したログイン画面に適用していきます。

# 2. django-bootstrap5をインストール
pipでdjango-bootstrap5をインストールします。
“`
pip install django-bootstrap5
“`

# 3. settings.pyの変更
settings.pyのINSTALLED_APPSにdjango_bootstrap5を追加します。
“`
INSTALLED_APPS = [

‘django_bootstrap5’, # 追加
]
“`

# 4. テンプレートに適用
テンプレートの先頭行に下記のコードを追加します。
“`
{% load django_bootstra

元記事を表示

Codeforces Round #816 (Div. 2) のA, B, C問題をPython3を使って解く

## 初めに
こんにちは。この記事では先日(2022/08/20)に行われたCodeforces Round #816 (Div. 2)のA, B, C問題の解説をPython3を用いてしていきます。Codeforcesは解説がAtCoderほど十分にないこと、そもそもPythonを使って解いている人も少ないことから、自身の解法とコードを共有しようと考えました。解説はコンテスト中に解けた問題+1問のみとしています。宜しくお願いします。

### コンテストへのリンク
[Codeforces](https://codeforces.com/) \
[Round #816 (Div. 2)](https://codeforces.com/contest/1715)

– [初めに](#初めに)
– [コンテストへのリンク](#コンテストへのリンク)
– [Problem A Crossmarket](#problem-a-crossmarket)
– [問題文](#問題文)
– [入力](#入力)
– [出力](#出力)
– [解法](#解法)
– [ACコード](

元記事を表示

[0から始めるQISKIT#3-1]量子プログラミングで必要な量子計算を説明してみる (要追記)

$$
\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}
$$
# 概要
量子プログラミングはざっくりと以下の手順で計算を解く認識です。
##### 手計算→実装→実装結果と手計算の結果をすり合わせる。
なので自分の復習のためにどのような計算を行うか記述してみました。

また自分の持っている入門書では数式が優しく書かれているが、細かい計算の仕方が足りないなと感じる部分もあったため取り組んでみました。

# 量子回路
前回使用した回路で使われる計算を書いてみる
https://qiita.com/Y10-JP/items/7f826277d95b422f281c
“`Sample.py
from qiskit import QuantumCircuit
import matplotlib.pyplot as pl

元記事を表示

【日曜大工】pythonでスロットマシンを開発した話。

色々な実行基盤での実行効率やスピード(メモリー消費量や処理速度)を調べています。
(例えば、JSの実行環境としては、Googleクラウドが最速と言われておりますね。)
そんな訳なので、Java、Python,JS,R等で色々と負荷の掛かるプログラムを作って、パフォーマンス分析をしております。
そんな作業の一環として、スロットマシンゲームを作りました。
尚、このサイトを大いに参考にしました。
https://camp.trainocate.co.jp/magazine/java-game/

下記のリールが3列あるスロットです。
“`
REEL_MARK_LIST = (‘7’, ‘BAR’, ‘?’, ‘?’, ‘Reply’,’♢’,’♢’, ‘Reply’, ‘?’,’Reply’,’♢’,’Reply’,’?’)
“`
1ゲームが、1枚ずつのBetです。
777が大当たりで、120枚のコイン払出。BAR並びなら30枚払出とかです。
尚、1リールは、13個絵柄があるので、トリプル7が揃う確率は、1/13**3=1/2197 となります。
これを、自分で何枚のコインで勝負するか

元記事を表示

Webカメラで猫を検出したときにLINEに画像を送る

# 目的
### Webカメラで猫を検出したときにLINEにメッセージとして画像を送るようにすること

# 前提条件
このシステムを構築したときの条件について
## システム構成
開発用PC
Line ⇐ RaspberryPi4 ⇐ Web Camera

## 環境
### 開発用PC
Ubuntu18.04
Python3

### Raspberry Pi4 ModelB
microSD 128GB
Ubuntu18.04
Python3

# コーディング
必要なライブラリをインポートする

“`Python:
import cv2
import requests
import os
“`

Lineに送るための初期設定をする

“`Python:
def init():
url = “https://notify-api.line.me/api/notify”
access_token = ‘トークン’ #取得したトークンを入力
headers = {‘Authorization’: ‘Bearer ‘ + access_token}
“`

元記事を表示

discord.py 2.0.0ついにリリース

2022/8/18、12時ごろ、ついに[discord.pyのバージョン2.0.0](https://pypi.org/project/discord.py/)がリリースされました。
# 主な変更点
# `pip install discord.py[speed]`
というのができたらしい?

## `app_commands`の追加
スラッシュコマンドのこと。
これは僕の前の記事や、他の記事もいろいろ出ているのでググればわかる。

## `cog`の非同期化
`client.load_extension`や`client.add_cog`が非同期になった。
`on_ready`の実行時に`await client.add_cog`とする。
## `Intents`の必須化
`client=discord.Client()`に`intents=Intents.なんか=True`として`intents=intents`とする。
## `discord.ui.View`
主に、ボタンやセレクトメニュー、テキストインプットの実装。
これもさまざまな記事が書かれているので省く。
## `Co

元記事を表示

OTHERカテゴリの最新記事