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

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

Discord.pyV2.0にてcogとSlashCommandを一緒に使う方法

# 前置き
本記事では**discord.py 2.0**を使います。
まだダウンロードしてない場合は
“`shell:cmd
$ python -m pip install -U discord
“`
でインストールしてください

# 1.commands.Botには…?
discord.pyV2.0にはSlashCommandを使うための`app_commands`が入ってます。
`discord.Client`は別の記事で`tree = app_commands.CommandTree`を定義する必要がありましたが、`commands.Bot`には`app_commands`が入った`discord.Client`を継承してるので定義は必要ないです。

# 2.実際に試してみる
“`py:main.py
import discord
from discord import app_commands
from discord.ext import commands

INITAL_EXTENSIONS = [
“cogs.help”,
“cogs.veri

元記事を表示

アルゴリズム実技検定(PAST) 第11回 F問題 Python解答例

Supership VPoEの名畑です。
趣味で競プロやっています。

アルゴリズム実技検定(PAST)の過去問題解答例シリーズです。[アルゴリズム実技検定(PAST) 第11回 E問題 Python解答例(二分探索)](https://qiita.com/nabata/items/ad3797a54658bbc410eb)の続きです。

今回は第11回のF問題の私の解答例(Python3)を公開します。

ちなみにA問題からF問題までの合計点が46点なので、ここまで来れば初級(45点)ですね。
[高橋様のつぶやき(2019年時点)](https://twitter.com/chokudai/status/1196371845563346944)によるとAtCoderでは茶色相当ってことになります。

## そもそもアルゴリズム実技検定とは?

そもそもアルゴリズム実技検定ってなんですか? という方は[アルゴリズム実技検定(PAST)について 並びに 第11回A〜C問題 Python解答例](https://qiita.com/nabata/items/0421f20e8ec849ee

元記事を表示

paiza メモ

1 2 3   # 入力値(文字列で与えられた設定値)
H, W, N = map(int, input().split())

結果(スペース(省略)で分割して、数値化して、変数に入る)
H = 1 ; W = 2 ; N = 3
======================================
1 2 3   # 入力値(1行目)
4 5 6   # 入力値(2行目)
H = 2   # 行数をHとして
P = [list(map(int,input().split())) for _ in range(H)];

結果
P = [[1,2,3],[4,5,6]]
======================================
ABCD   # 入力値(連続で与えられた配列値)
S = list(input())

結果(1文字ずつ分割して配列に)
S = [“A”,”B”,”C”,”D”]

======================================
ABCD   # 入力値(1行目)
EFGH   # 入力値(2行目)
H = 2  

元記事を表示

【FastText】簡単な精度向上術

## 前置き
Twitterのツイートを分類するAIを開発する中で、分かったことやハマったことについて共有してきたいと思います。
FastTextの設定で改善できることは微細かつ、分類内容によるので今回は取り上げません。
主にクレイジングについて熱く語っていこうと思います。

## 絵文字について
FastTextに絵文字を読み込ませると絶望的な精度になります。
本当に絵文字の除去は徹底してくださいね。

“`Python:exsample.py
# テキスト
text = “ほげほげ!?”
bytes_emoji = text.encode(‘shift-jis’, errors=’ignore’)
text = bytes_emoji.decode(‘shift-jis’, errors=’ignore’)
“`
大抵これで絵文字は消えるはずです。

しかし、ツイッター上では絵文字がコミュニケーションで多用されています。
例えば…

〔絵文字除去する場合〕
「?が食べたい」→「が食べたい」

この様にツイートの意図が読めなくなってしまい、精度が大幅に落ちてしまいます。
そこ

元記事を表示

【Tkinter】ネット上の画像を表示する方法

## 前置き
私はPythonのシステム開発でTkinterを使用するのですが、ネット上の画像を表示するために奮闘していました。
便利なライブラリを見つけましたので共有したいと思います。

## どんなライブラリ?
「tkhtmlview」というtkinter上にHTMLを表示できるライブラリです。

【参考】
https://torimakujoukyou.com/python-tkinter-htmllabel/

## インストール
pipインストールでOKです!
“`:cmd
>>pip install tkhtmlview
“`
## サンプル
“`Python:exsample.py
from tkhtmlview import HTMLLabel
import tkinter as tk

root = tk.Tk()
root.title(“テスト”)
root.geometry(“800×500”)

# 画像表示(※「ここにURL」と書かれた箇所に画像のURLアドレスを入力してください)
html_label = HTMLLabel(root, html=

元記事を表示

【python】勉強メモ 速習Flask④

### DB更新(記事編集)

[【python】勉強メモ 速習Flask③](https://qiita.com/qiitataro/items/5f12300c4b238d2b6170)の続きとなります。

以下の様に変更。htmlファイルは変更の必要はありません。

“`app.py
from flask import Flask
from flask import render_template
from flask import request
from flask import redirect
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
import pytz

app = Flask(__name__)
app.config[“SQLALCHEMY_DATABASE_URI”] = “sqlite:///blog.db”
db = SQLAlchemy(app)

class Post(db.Model):
id = db.Column(db.Integer, p

元記事を表示

tkinterを使って、エクセルファイルを選択⇒読み込む

概要

簡単なファイル選択&データ読み込みをTkinterとpandasを用いて実行する。
複数のファイルを選択することも可能だが、今回は1つずつ選択すること想定する。

python コード

import tkinter as tk
import tkinter.filedialog
import pandas as pd

def dialog_test():
# ルートウィンドウ作成
root = tk.Tk()
# ルートウィンドウの非表示
root.withdraw()
# ファイル選択
filetypes = [(“データファイル”, “*.xlsx *.xlsm *.csv”), (“Excel ブック”, “*.xlsx”), (“Excel マクロ有効ブック”, “*.xlsm”), (“CSV (コンマ区切り)”, “*.csv”)]
target_file = tkinter.filedialog.askopenfilename(filetypes=filetypes, t

元記事を表示

【instaloder】PythonにてInstagramの情報を取得する神ライブラリ

## 前置き
以前趣味でInstagramからのビッグデータ収集を行っているのですがInstagramってスクレイピング対策堅いですよね。そんな対策を打破するライブラリをご紹介します!
## インスタのスクレイピング対策はTOPレベル
ユーザーページへのアクセスで、数十回ユーザーページにアクセスしただけで本人確認画面に飛ばされます。プロキシでアクセス、UA変更や人間らしい動きなどの対策をしても弾かれるようです。
## 希望のライブラリ Instaloader!
最終的に海外の掲示板を頼りに周回していると面白いライブラリが見つかりました。『Instaloader』という名前のライブラリでユーザーIDさえあればその人のプロフィールや投稿数、フォロワー、フォロー中の取得が数行で行えました。コンソール(cmd)で、
“`:cmd
pip install instaloader
“`
と入力すればインストールできます。

## できること
・特定のハッシュタグが付いた投稿の情報取得
・ストーリーや投稿画像のダウンロード
・投稿のいいね数
・プロフィール文やプロフィール画像、フォロワー数など取

元記事を表示

【Pyinstaller】Python exe化の様々なエラー解決策

## 前置き
この記事はPyinstallerのインストール方法やexe化について説明するものではありません。
Pyinstallerで発生するエラーを”解決するだけ為”の記事になります。
様々なエラーがありますので、早速説明していきたいと思います。

## Pyinstallerは複数インストールしている
### 原因
Pyinstallerが複数の環境にインストールされていると処理が正しく実行されない場合があります。
詳しい原因を調査しましたが、原因は判明しておりません。
### 解決策
コマンドプロンプト(cmd)を管理者権限で起動してください。
起動したら下記の様に入力してください。
“`:cmd
>>where pyinstaller
“`
パスが複数行表示された場合は多数の環境でインストールが行われています。
必要な環境の方だけPyinstallerを残し、他の環境のPyinstallerはpip uninstallでアンインストールしてください。

## exeファイルを実行後のエラーが「No such file or directory」
### 原因
エラー内容

元記事を表示

【Python】GoogleDriveからダウンロードしたファイルの操作時のエラー対策

## どんなエラー?
GoogleDriveAPIを使用し、何らかのファイルのダウンロード後にosライブラリ等でファイルを移動・削除など行うと…

“`エラー
PermissionError: [WinError 32] プロセスはファイルにアクセスできません。別のプロセスが使用中です
“`

はい、怒られました。
こんな感じでファイルがどこかで開かれたままになっています。

ちなみにコードは下記の通りです。

“`python:example.py
# ↑省略
# ######## Googleの認証 ##############
scope = [‘https://www.googleapis.com/auth/drive.file’]

# ↓ここにはサービスアカウントの鍵のJSONファイルの中身をコピペしてください
credential = {
“type”: “”,
“project_id”: “”,
“private_key_id”: “”,
“private_key”: “—–BEGIN PRI

元記事を表示

pytorchにおける最適化手法の観察

# はじめに
ディープラーニングによく使われている最適化手法がどのような動作をするのか気になったので、ライトコードさんの記事を参考に試してみました。

環境
WSL
ubuntu 22.04
python3.10.6
jupyter

# コード

“` as
%matplotlib inline
%matplotlib widget
from torch import optim
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
import numpy as np
import torch

#各データの格納リスト
classes = [‘SGD’, ‘Momentum’, ‘Adagrad’, ‘RMSprop’, ‘Adadelta’, ‘Adam’]
x_list = {}
f_list = {}
optimizers = {}

#各種optimizer毎に関数の最適化を行う
for key in classes:
x_list[key] = np.empty((0, 2))

元記事を表示

【python】勉強メモ 速習Flask③

## 1 はじめに

今回は、DBに登録された情報を表示する学習です。
– [【python】勉強メモ 速習Flask②](https://qiita.com/qiitataro/items/682faa9749d596cb3496) の続きとなります。
– 今回は、修正を行うファイルのみ掲載します。

## 2 コード編集
app.pyと、index.htmlを以下の様に編集。
“`app.py
from flask import Flask
from flask import render_template
from flask import request
from flask import redirect
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
import pytz

app = Flask(__name__)
app.config[“SQLALCHEMY_DATABASE_URI”] = “sqlite:///blog.db”
db = SQLAlchemy(app)

元記事を表示

正規表現を用いたPythonで動的に値を判定する方法

# 前提
ABC084-B問題での実装検討を端的にまとめる
> [ABC084_B問題](https://atcoder.jp/contests/abc084/tasks/abc084_b)

# 今回やりたいこと
* 正規表現を用いて変数の値を反映したい
* 毎回input値が変わるので動的に正規表現をかけて判定したい(今回動的に判定するのは文字数)

# 実装内容
“`ABC_084_B.py
import re

a, b = map(int, input().split())
s = input()

# aとbの値を受け取る値毎に動的に変更して文字数を判定する
print(“Yes” if re.search(fr'[0-9]{{{a}}}-[0-9]{{{b}}}’, s) else “No”)

“`

* fr”hoge”とすることでfstring関数とrow関数を併用することが可能
* `{` と `}`は2つ重ねればエスケープすることが可能

“`実行結果.py
# 下記結果の通り後は上記実装方法の様に、Noneなら”No”, matchするなら”Yes”とし

元記事を表示

Twitterのプロフィール画像を自動で更新するツールをGitHub Actionsで作った話

# はじめに
こちらの記事は[GitHub Actions Advent Calendar 2022](https://qiita.com/advent-calendar/2022/github-actions) 25日目の記事です。
TwitterのAPIの審査が通ったので何か作ろうと思い、Twitterのプロフィール画像を時間帯に合わせて更新するツールをGitHub Actionsで作成しました。

# 作ったツール
以下のように時間帯に合わせて自動でプロフィール画像を更新してくれます。
(微妙にダサいですが目をつぶってください)

| 7:30~9:30 | 9:30~17:30 | 17:30~23:30 | 23:30~翌日7:30 |
| ——— | ———- | ———– | ————– |
| Python 3 エンジニア認定実践試験に合格してPython試験をコンプリートしたので色々まとめてみた

:::note info
この記事は[Udemy Advent Calendar 2022](https://qiita.com/advent-calendar/2022/udemy) 25日目の記事です。
:::

筆者は3年前Python 3 エンジニア認定データ分析試験(受験当時はベータ試験)に合格した記念に投稿した以下の記事は御陰様で多くの方に読んでいただくことができ、同時に沢山の`いいね`を頂戴しました。

https://qiita.com/y-vectorfield/items/36fc6d773f01ae33cd2c

あれから3年の月日が経ち、新たに一般社団法人Pythonエンジニア育成推進協会主催の「実践試験」が開始されました。受験してみたところ、:cherry_blossom:無事合格:cherry_blossom:しました。これでPython試験は4つ全てに合格し、無事コンプリートしました。よって、今回も記憶が薄れないうちに実際に取り組んだ試験対策等の情報をdumpしておこうと思います。 :dancer: :da

元記事を表示

M1の審査員の審査能力を評価する方法について考えてみた

先日M1が開催されて、一部の審査員の採点が物議を醸していました。この件に関しては擁護派の方も多く、単に点数の幅を大きくとっているだけどいう意見もありました。
 そこで私は正しい採点とはなにか、それを数値化する方法はないかということを考え、pythonコードを書いてみました。 断っておくと、私の数学力は学部1年レベルですので、結構おバカなことをしてしまっているかもしれませんが、そんな場合は優しくご指摘いただければと思います。
また、()で囲っている部分は独り言のようなもので、そこまで重要ではないので、後々おかしいと感じた点などがあれば、その都度見返していただければと思います。

 審査員の採点能力を数値化する上での指針

1.ある審査員の審査能力を評価する場合、他の審査員の評価の平均を”正しい審査”の”うちの一つ”と定義する。
 (最終的に得られた審査能力を用いて重み付けをして繰り返し計算していく方法もあるように思えるが、私のキャパを超えている気がする。)
2.”うちの一つ”と書いたのは、平均値や標準偏差が違っても芸人さん達の点数の順位、及び、点数の差の比(日本語が下手で申し訳ないが言

元記事を表示

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

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

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

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

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

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

# 目次
[はじめに](#はじめに)
[A.Power](#apower)
[B.First Query Problem](#bfirst-query-problem)
[C.Cash Register](#ccas

元記事を表示

RaspberryPiでrequests_htmlを使用してハマる

# はじめに
Seleniumを使うのはWebドライバのバージョンを気にしたりと何かと不便。requests_htmlを使用すれば比較的簡単そうと思いRaspberryPi4にインストールしてみましたが結局ハマってしまったのでその記録を残しておきます。
# まずはインストール
“`shell
sudo pip install requests_html
“`
インストールはpipで行うだけ。いたって簡単です。
# 早速テストスクリプトで試してみるが…
次のようなスクリプトを作成して早速試してみます。
“`Python
from requests_html import HTMLSession

session = HTMLSession()
url = “https://www.google.com/”
r = session.get(url)
r.html.render()
“`
実行結果
“`Python
[INFO] Starting Chromium download.
100%|████████████████████████████████████████| 10

元記事を表示

【Django】 TemplateViewを使ってListページを作る

Templateviewを使ってListページを作ろうとしたときに
良い感じの記事と巡り会えず、思ったよりハマったのでTemplateviewを使ってListページを作る方法をまとめました

# 概要
TemplateViewを使ってListページを作成する方法です

# この記事で伝えたいこと
– Templateviewを使ったListページの作り方

– context_dataにデータを詰めれば上手くいく

# 結論
`[モデル].objects.all()`で取得したデータをcontext_dataに代入する

“`app1_views.py
from django.views.generic import TemplateView

from .models import TestData

class IndexView(TemplateView):
template_name: str = “app1/index.html”

def get_context_data(self, **kwargs):
ctx = super().ge

元記事を表示

【python】勉強メモ 速習Flask②

## 1. はじめに
今回は、**SQLite**を使い投稿したデーターをDBに保存するところまで行いたいと思います。

## 2. 全体の流れ
1.事前準備(SQLite3のインストール)
2.共通化
3.投稿内容のDB登録(今回のメイン)
4.DB登録処理(今回のメイン)

### 1. 事前準備 SQLite3のインストール
1. [SQLite3 ダウンロードページ](https://www.sqlite.org/download.html)へ移動。

2. 「Precompiled Binaries for Windows」まで移動し、
「sqlite-tools-win32-x86-3360000.zip」をダウンロード
![SQL-1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3014502/e031d10e-4d40-6ac9-bd36-b7dab17d1ee6.png)

3. ダウンロードしたら、任意の場所でZIPファイルを解凍。
4. 解凍すると、sqldiff.exe

元記事を表示

OTHERカテゴリの最新記事