- 1. Pythonの依存パッケージとダウンロード先URL一覧をゲットする方法
- 2. 初心者がDjangoを勉強したのでざっくりとアウトプットします
- 3. ffmpegの処理とtkinterのGUI画面を連動させる(その3: キャンセルボタン)
- 4. 【自動化】pyautoguiでクリックマクロ
- 5. 【Django】 Formsetを使ってテーブルの中にフォームを入れる
- 6. pythonでAPIのレスポンスで取得したjson形式(に見える)データを利用する
- 7. 【関数について】pythonとJavascriptのスコープの違い
- 8. enpit振り返り(by Keisuke)
- 9. [備忘録] Optunaの探索結果をUMAPで可視化する
- 10. 家庭教師がオンライン授業のためのホワイトボード共有サイトを作ってみた(その2)
- 11. ffmpegの処理とtkinterのGUI画面を連動させる(その2: コンソール風出力表示)
- 12. 5分で作る【VS Code×Docker×Python環境】の作り方
- 13. 【AtCoder】ABC251E Takahashi and Animals Python解説
- 14. Kaggleに挑戦 Tabular Ordinal Regression with a Wine Quality Dataset?
- 15. WEBスクレイピングGUIデスクトップアプリケーション feat.ひよっこフロントエンド
- 16. matplotlibでグラフを作ってOpenCVで好きな画像とアルファブレンドする
- 17. ファイル名が重複しないように自前のタイムスタンプをファイル名に入れるための備忘録メモ
- 18. Kaggleに挑戦 DigitRecognizer?
- 19. 【leetcode × Python】任意の英数字から隣り合う2つの文字が同じ型でないことを確認する
- 20. RollingHashクラスをPythonでつくった
Pythonの依存パッケージとダウンロード先URL一覧をゲットする方法
# はじめに
仕事で Python パッケージの依存パッケージ一覧と、そのパッケージのダウンロード先URL一覧が必要になったのですが、取り出す方法がなかなか見つからなかったので、(もっといい方法がありそうですが…) 方法をメモします。
例として Python 3.8 の pandas の場合、依存パッケージは下記で
“`
numpy==1.24.2
pandas==1.5.3
python-dateutil==2.8.2
pytz==2022.7.1
six==1.16.0
“`ダウンロード先は下のようになりました。
“`
https://files.pythonhosted.org/packages/bf/8c/3d36cef521739bd481e9a5b30e5c0f9faf8b7fe7b904238368908a9d149d/numpy-1.24.2-cp38-cp38-win_amd64.whl
https://files.pythonhosted.org/packages/ca/4e/d18db7d5ff9d28264cd2a7e2499b870110
初心者がDjangoを勉強したのでざっくりとアウトプットします
# Djangoとは
Djangoとはウェブアプリケーションを作る手助けをしてくれるフレームワークのことです。Djangoを用いることで、より安全に、より効率的にウェブサイトを作成することができます。
一般的なウェブサイトではブラウザから表示したいURLをサーバーにリクエストし、サーバーはそれに対応するファイルをブラウザにレスポンスとして返します。
一方、Djangoではリクエストを受け取ったあとサーバー内で処理を行った後に、レスポンスを返します。これにより、使うデータを指定できたり、見た目を変更したりすることができます。要するに、より便利なサイトを提供することが可能になるということです。# Djangoの構成
Djangoは以下の3つから構成されています。– Controller
`Model`に使うデータを指示したり、`View`に使うテンプレートを指示する。– Model
`View`にデータを受け渡す。– View
テンプレートとデータを組み合わせた情報を`Controller`に渡す。
以下、それぞれを実際にどう使うかを説明します。## Co
ffmpegの処理とtkinterのGUI画面を連動させる(その3: キャンセルボタン)
[その1: プログレスバーとリアルタイム出力表示](https://qiita.com/ytakeda-paleo/items/c3d33aef9d1c715702de)
[その2: コンソール風出力表示](https://qiita.com/ytakeda-paleo/items/c93ef9e1776414a0b263)
の続きです.# やりたいこととGUIの内容
– 処理を中止するキャンセルボタンをつける.
– 完成したもの↓
![Animation3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/736226/cde7626b-fe46-d302-5811-06cb6748099a.gif)## 環境
Windows 10 Pro, Python 3.7, miniconda(conda 4.11.0)# コード
“`python
import os, subprocess
import tkinter as tk
from tkinter import ttk, messageb
【自動化】pyautoguiでクリックマクロ
## 1.はじめに
何か悪いことをしたい人のために、記録を残しておきます。## 2.必要な知識
・Python(ループとか分岐とか使って好きに組める)
・pyautoguiのインストール
・threadingの使い方とか
・Windowsのスクショツールの使い方## 3.研究概要?
5年前ぐらいに挫折したプログラムを再度作り直してみました。
プログラムの中身を公開するというよりは、作り方のヒントをまとめます。## 4.作り方のヒント
### あくまでヒントです。組み立ててオリジナルマクロを作ろう!
##### まずはライブラリのインポート
“`python
import pyautogui as pag
import random as rand
import time
import threading
“`##### クリックする関数
引数のiconには何をクリックしたいかを渡すわけです。
そうすると、保存してある画像を読み込んで、その範囲内でランダムにクリックしてくれます。
__正直、これを動かすだけでもかなり楽しい。__
“`pyth
【Django】 Formsetを使ってテーブルの中にフォームを入れる
# この記事で伝えたいこと
– 画像のような画面の作り方
![Alt text](https://i.gyazo.com/e9182634b076b68ce734980a6c7b3f08.png)# 結論
Formsetとget_context_dataメソッドを使う
“`app1/views.py
from django.views.generic import TemplateView
from django.http import HttpResponse
from django import forms
from django.shortcuts import render, redirectfrom .models import TestData
class IndexView(TemplateView):
template_name: str = “app1/index.html”
object_list = TestData.objects.all().order_by(“number”)
max_num = object_li
pythonでAPIのレスポンスで取得したjson形式(に見える)データを利用する
PythonからAPIを使って、データを取得したときに、json形式だと思ったら、そうではなかったので、その対応をした記録です。
質問だったら、間違いなく:beginner:を付けるような内容ですが、あとになってあの時どうやってここに辿り着いたんだろうと思った時のために、メモを残しました。
最初に試したこと
“`
import os.path
p = “curl https://hoge.jp/results/123456789”
req = os.system(p)
“`
変数reqに値が入るかと思ったら入りませんでした。
そこで姑息な手段かと思いつつも、結果をファイルに出力しました
“`
import os.path
p = “curl https://hoge.jp/results/123456789 > result.json”
#req = os.system(p)
“`これで“やりたいこと”はできましたがカッコ悪いので、「requests.get」を使うことにしました。
“`
import requests
response = requ
【関数について】pythonとJavascriptのスコープの違い
# やろうとしていること
1.グローバルスコープ内で変数を宣言
x
y
z→こいつを関数の中で代入したら、その結果は反映されるのか?
2.関数内でグローバル関数スコープ内で代入
“`python:python
x = 100
y = 200
z = 0
def main():
z = x + y
main() //ここで呼び出し
print(z)
“`
![スクリーンショット 2023-02-09 13.39.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/714631/790ad9c0-d31a-9c28-6f7e-6122424aaf3e.png)
→関数内が反映されていないので、0になった
“`javascript
let x = 100;
let y = 200;
let z = 0;function main(){
z = x + y;
}
main()console.log(z)
“`
![スクリーンショット 2023-02-09 13.38.10.png](h
enpit振り返り(by Keisuke)
# 春学期(夏合宿)
## プロダクト名・概要
名前は「ココロミエル」.春学期discord上で顔が見えない中,「反応なくて寂しいな」とか「これ声聞こえてるのかな」が多発したことで,なんとかしようというプロダクトだった.
## エレベータピッチ![ココロミエル_リーン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121621/6d1bfb46-553c-749d-c56a-a5b50d82987d.png)## 使い方
画像行方不明&ローカルですら動かせないためわかりづらいですが...– 話したければ「次話したい」ボタンを押す
– なんか寂しいなと思ったら「わいわいしたい」を押す
上記二つは,押したタイミングで他の人の画面に表示される
– 「それな」「いいね」ボタンを押すとボールが降ってきて,それが溜まっていく
## メンバ構成と役割
毎日同じ割り振りではなかったが,基本的にバックエンドとフロントエンドで分業していた.– Aさん(プロダクトオーナー)
ほぼバックエンドをやってた.調
[備忘録] Optunaの探索結果をUMAPで可視化する
ハイパパラメータが3つ以上存在する場合,探索結果の可視化はなかなか難しいです.
今回はUMAPを利用して探索結果の可視化を行います.“`python
import matplotlib.pyplot as pltimport numpy as np
import optuna
import umap
DIM = 6
SEED = 42
N_SAMPLES = 1000
N_GRID = 50
LB, UB = -5, 5def func(X: np.ndarray) -> np.ndarray:
return np.sum(X ** 2, axis=-1)def objective(trial: optuna.Trial) -> float:
X = np.asarray([trial.suggest_float(f”x{d}”, LB, UB) for d in range(DIM)])
return func(X)def get_mapper():
rng = np.random.RandomState(SEED)
家庭教師がオンライン授業のためのホワイトボード共有サイトを作ってみた(その2)
## 前提
今回はログインせずにボードを使える機能の実装を行なった。
[前回の記事](“https://qiita.com/esakiryota/items/999a640abda68d49c9ac” “前回の記事”)
[ボードミート](https://board-meet.com/ “ボードミート”)## 技術
**バックエンド**
— 言語
– Python3— フレームワーク
– Django 3.0.6**フロントエンド**
— 言語
– CSS
– Javascript
– HTML— フレームワーク
– jquery
– materiallize.css**インフラ**
– AWS EC2
– AWS S3 storage
– AWS Route53## アーキテクチャー
![スクリーンショット 2022-11-01 18.48.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1860891/9ab885ca-2127-3908-bec2-4ce2e8
ffmpegの処理とtkinterのGUI画面を連動させる(その2: コンソール風出力表示)
[前回](https://qiita.com/ytakeda-paleo/items/c3d33aef9d1c715702de)の続きです.
# やりたいこと
– 前回は一行ずつffmpegからの標準出力が表示されるプログレスバーを作った↓
![before.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/736226/a35d301c-e5d9-2339-e1dd-b66fe72662d4.gif)
– これだと,通しで出力を確認することができない.出力内容をコピペすることもできない.
– そこで,コンソールで表示されるときと同じようにテキストボックスに表示させる.
– 完成したもの↓
![Animation.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/736226/6c99cab5-294b-621d-b521-c7d429679462.gif)## GUIの内容
– ffmpegで処理中に出力されるメッセージ
5分で作る【VS Code×Docker×Python環境】の作り方
# 概要
VS CodeとDockerのインストールが完了していることを前提に、5分程度でひとまず、Pythonを動かせる状況までもっていきます。**本当に必要最低限の環境だけ**作ります。VS CodeでDockerを使い、Pythonで開発したいと思ったので、その備忘録として。
## 環境
Windows11です。
あと、VS CodeとDockerDesktopのインストールができている状況を想定しています。## 事前準備
VS Codeの拡張機能から『Dev Containers』と検索してインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687015/9372edc0-90be-2e36-bbd8-075accc89a83.png)どこでも良いので、テキトーにフォルダを作ります。
“`
└ .devcontainer/
├ devcontainer.json
└ Dockerfile
“`そしたら、“`devcontainer.
【AtCoder】ABC251E Takahashi and Animals Python解説
# はじめに
ABC 251 E 問題 Takahashi and Animals を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。
# E.Takahashi and Animals
[問題ページ](https://atcoder.jp/contests/abc251/tasks/abc251_e)
難易度 : 水色 1227# 考察
$Ai$ すべてについて 払う,払わないを考えられれば簡単ですが、計算量が $2^N$ となるので間に合いません。
ここで、餌やりがどういうルールであるか理解するために可視化してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3012066/dd18cd7a-6830-717f-21e6-b6085db456d1.png)
つまり **$\ i ≦ k ≦ N\ $ 番目までの動物への餌やりが完了している状態** からは、$i-
Kaggleに挑戦 Tabular Ordinal Regression with a Wine Quality Dataset?
# はじめに
DNNの回帰タスクをやっています.特徴全部そのまま放り込んだら下から数えて10番くらいでした(´;ω;`)ウゥゥ
Kaggleは前処理コンペみたいな感じありますね~というかDeepはモデルより前処理がすっごく大事であるという話ですわ.
前処理を制すものは,Deepを制すってね.さぁ,やっていきましょう.Kaggele上で公開しているコードは[こちら](https://www.kaggle.com/code/shiraeharuto/dnn-regression/notebook)から.
# Import
必要なライブラリのインポートと,Deviceの指定です.
~~~
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import torchvision
import torchvision.transforms as transforms
from torch.utils.data import TensorDatas
WEBスクレイピングGUIデスクトップアプリケーション feat.ひよっこフロントエンド
## はしがき
できれば1月中に書きたかったけど寒くてできんかった。
毎日やってる某単純作業が面倒で自動化したいなって思ったのがことの発端。
スクレイピング(今回はブラウザ自動操作)の自動化はすでにできていたけど、CLIでコマンド流すだけなの機械的だなあてことでGUIの作成を考え始める。
今回全て初めて扱った技術なのでこんなの作ったよってのと所感とかを述べたいと思います。## 実行環境 & 使用技術
– macOS 12.2.1
– Python 3.11.1
– selenium 4.7.2
– tkinter 8.6## 構成
`構成図`
![attend.py.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3078763/9e3b8c2a-d5c4-65cf-14fb-d92834b7a562.png)`ディレクトリ構成`
“`
.
├── scraping.py // スクレイピング操作の関数
├── gui.py // GUIアプリのUI/
matplotlibでグラフを作ってOpenCVで好きな画像とアルファブレンドする
# 環境
python 3.9.6
Windows11
# 使用する画像
![221219_26.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134624/55855ad5-d7b4-59de-6275-b3271b5bcb79.jpeg)
# 下準備
下準備にコードを置く場所と同じ階層にアルファブレンドしたい画像を置こう!
# コード
“`python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import cv2def sin():
fig, ax = plt.subplots()
x = np.linspace(0, 18, 100)
for i in range(1, 10):
ax.plot(x, np.sin(x + i * .5) * (7 – i))
fig.savefig(‘fig.jpg’) # グラフのセーブax = si
ファイル名が重複しないように自前のタイムスタンプをファイル名に入れるための備忘録メモ
プログラムを実行した結果をプログラムに保存させる時に、ファイル名の重複チェックを入れずにそのまま上書き保存してしまっては目も当てられません。。。:scream: :scream_cat: そこでファイル名が重複しないように自前のタイムスタンプを入れる様にしたのですが、毎度書き方を忘れるため、備忘録メモ。
“`python
from datetime import datetimetoday = datetime.now()
tstamp = f'{today.year}{today.month:02}{today.day:02}{today.hour:02}{today.minute:02}{today.second:02}’
file_name = f’hogehoge_{tstamp}’
“`これで`hogehoge_202302061815`という形式で保存できます。これでも重複が発生する場合は、microsecondまで含めると良いでしょう。(筆者の用途ではsecondまでで十分)
Kaggleに挑戦 DigitRecognizer?
# はじめに
KaggleのDigitRecognizerタスクの解説です.
全コードを載せているので,参考にしてください.
[KaggeleのNotebook](https://www.kaggle.com/code/shiraeharuto/digitrecognizer-cnn-classification)# IMPORT
必要なライブラリのImportです.
~~~
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import torchvision
import torchvision.transforms as transforms
from torch.utils.data import TensorDataset
from torch.utils.data import Dataset
from torch.utils.data import DataLoader
# Validation
from torchvision
【leetcode × Python】任意の英数字から隣り合う2つの文字が同じ型でないことを確認する
# はじめに
以前にも、leetcodeは使用したことがあったのですが、今回、2年ぶりぐらいに解いてみました。
その時は`Easyモード`ですら難しく何時間もかけて解いていました。
当時は、Hintと回答を見ながらやっと解ける感じでした。そこで今回、久しぶりに`Easyモード`を解いてみることにしました。
# 目次
[1.実際に解いた問題](#1-実際に解いた問題)
[2.私が出した回答がこちら](#2-私が出した回答がこちら)
[3.リファクタリングしていく](#3-リファクタリングしていく)
[4.リファクタリング後のコード](#4-リファクタリング後のコード)
[5.最後に](#5-最後に)# 1. 実際に解いた問題
leetcodeではランダムに問題が選択できるのですが、そこから`Easy`を選びました
今回解いた問題がこちらです。https://leetcode.com/problems/reformat-the-string/description/
以下が問題を日本語訳したものです
“`
英数字の文字列sが与えられる(英数字の文字列とは、小文字の
RollingHashクラスをPythonでつくった
## 例題
https://atcoder.jp/contests/abc284/tasks/abc284_f
https://yukicoder.me/problems/no/2204
## つくったコード
“`Python
“””ローリングハッシュ文字列にハッシュをかけて1次元の数に置き換えます。
長い文字列でも、一致判定をO(1)くらいでできます。・使い方
rh=RollingHash(S): インスタンス作成。 計算量: O(len(S))
rh.value(l,r): 半開区間[l,r)のハッシュ値を返します。 計算量: O(1)
rh.merged_string_value(section_list):
半開区間をたくさん入れたリストsection_listについて、
各区間の文字列を連結させてできる文字列のハッシュ値を返します。
計算量: O(len(section_list)) (そんなにやばくない)
rh.same(section_list1,section_list2):
2つの文字列が同じならTrueを、そう