- 1. 簡単なPySimpleGUI①~二次関数の解の公式~
- 2. pyenvを使ってEC2(Amazon Linux 2)にpython3.9.10をインストールする。
- 3. 【初心者】Pythonデコレータとは?を分かりやすく解説
- 4. spreadsheet API KeyError: ‘access_token’
- 5. “localhost”をやめて…というお話…
- 6. 【pythonメモ】回数指定のfor文(for .. in range)の使い方
- 7. kivyMDチュートリアル其の肆什陸 Behaviors – Magic篇
- 8. コロナ第6波東京:簡易実行再生産数(Rt)を使ったピークアウト動的予測
- 9. ディレクトリ・モジュール操作について(pathlib, os, sys)
- 10. 2022年からの新しいとりくみ
- 11. WordleをPythonに解かせる
- 12. 【Django】 django-environでシークレットキーを読み込んだ際に起こりうるエラー
- 13. Windows10でpythonを用いた仮想環境の構築方法
- 14. デッキ画像から駒名称を抜き出す【特徴点マッチング編】
- 15. GCPで冪等性を実現しようと頑張った
- 16. 知らない人は損しているなと思うChromeDriverを自動更新するPythonライブラリ
- 17. seleniumインストールに失敗したけどpipアップグレードして解消した
- 18. Python3でUUIDを生成する
- 19. 動画圧縮する(MP4 to mp4) on python3
- 20. 地震波形データをPythonで読み込んでみよう
簡単なPySimpleGUI①~二次関数の解の公式~
PysimpleGUIの使い方メモとして、二次関数の解を「解の公式」で求めるGUIを作成しました。
# この記事で扱う要素
**入力**
・数値入力ボックス(sg.InputText)
・ボタン (sg.Button, sg.B)**出力**
・画面出力 (window[‘hoge’].update(‘hogehoge’))# コード
“`Python:Code
import PySimpleGUI as sgdef main():
layout = [[sg.Text(“解の公式GUI”, size=(15, 1), justification=’center’, font=(“Helvetica”, 20), relief=sg.RELIEF_RIDGE)],
[sg.T(“ax^2+bx+c=0”, size=(15, 1), justification=’center’)],
[sg.Text(‘a :’), sg.InputText(“1”, key=’a’, size=(25, 1)
pyenvを使ってEC2(Amazon Linux 2)にpython3.9.10をインストールする。
#はじめに
最近AWSについて勉強中で、EC2環境にDjangoアプリをデプロイしようと思っているので、備忘で記載します。
( 初投稿? )
#Python3.9.10 インストール
###1. pyenvのインストール
基本的に[pyenvの公式サイト(?)](https://github.com/pyenv/pyenv#understanding-path)のReadMeに従えば良い気がする。
**pvenv**とは、Pythonのバージョン管理を行えるツールのこと。まずはpyenvをクローンする。
※gitが入っていない場合は、gitのインストールが必要。(“$ yum install git“でインストールできる。)“`sh
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
“`続いて、pyenvのパスを通す。(実際のコマンドは、[pyenvの公式サイト(?)](https://github.com/pyenv/pyenv#understanding-path)からコピぺした方が良いかも。)
`
【初心者】Pythonデコレータとは?を分かりやすく解説
# 初心者にはわかりにくいデコレータ
頭に`@ooo`つけるやつ。初心者だと聞いたことあるけど、なんか処理を付け足せるらしいくらいしかわかっていないと思うので解説。
初心者勉強用の資料に書きます。![python_logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260345/b516902a-fcfe-dee6-cc91-da228c5aa53a.png)
デコレータとは名前の通り、デコレーションする者ってこと。
まずは超簡単な関数を準備。“`deco1.py
def deco1():
print(‘テストです’)deco1()
“`“`
$ deco1.py
テストです
“`これは解説するまでもないですね。
## 事前知識: 関数もオブジェクト
Pythonの関数って実はオブジェクト。intとかstr型みたいに変数に代入することもできるし、引数として渡すこともできます。“`sample.py
def sample():
print(‘さんぷ
spreadsheet API KeyError: ‘access_token’
pythonでspreadsheetを操作するものを作成中にエラーが出た
遭遇したエラー
“`
KeyError Traceback (most recent call last)
~\anaconda3\lib\site-packages\google\oauth2\_client.py in jwt_grant(request, token_uri, assertion)
195 try:
–> 196 access_token = response_data[“access_token”]
197 except KeyError as caught_exc:KeyError: ‘access_token’
“`<解決>
変更前“`
SCOPES = [
‘https://spreadsheets.com/feeds’,
‘https://www.googleapis.com/auth/drive’,
]
SERVICE_ACCO
“localhost”をやめて…というお話…
# 今すぐ、”localhost”をやめよう!
`localhost`は時にとって、開発時の妨げになる。
これはサンプルコードで、例を投稿したり、マニュアルなどで使われたりする付属する厄介者のお話だ。例えば、ここにはあるサンプルコードを使って簡易的なサーバーを立てて欲しい。
参考例: [WebSockets](https://fastapi.tiangolo.com/advanced/websockets/) – by.FastAPI
実行時は、`uvicorn main:app –host 0.0.0.0 –reload `としてサーバーを起動してみよう。“`
from typing import Listfrom fastapi import FastAPI, WebSocket, WebSocketDisconnect
from fastapi.responses import HTMLResponseapp = FastAPI()
html = “””
【pythonメモ】回数指定のfor文(for .. in range)の使い方
#1.はじめに
様々なプログラミング言語で使われるforループ。
pythonでは回数指定のforが3種類ある。
今更だけど、どうにも使いずらいので自分用のメモとしてまとめてみた。#2.実行環境
OS:windows10
Python 3.8.10(jupyter notebook上で実行)
PHPはpaiza.ioで実行#3.for .. in range
###`パターン1)for 繰り返し変数 in range(N1)`
N1:指定回数
指定回数だけある処理を実行したい場合使える。“`python
for i in range(5):
print(“Loto6”)
“`
“`:出力結果
Loto6
Loto6
Loto6
Loto6
Loto6
“`
ただし繰り返し変数も利用したい場合は、その値は__0~N1-1__となることに注意が必要になる。“`python
for i in range (5):
print(“Loto6トライ:”+str(i)+”回目”)
“`“`:出力結果
Loto6トライ:0回目
Loto6トライ:1回目
kivyMDチュートリアル其の肆什陸 Behaviors – Magic篇
ハロー、Qiita!いかがお過ごしでしょうか。
もうはや1ヶ月が過ぎようとしていますね。このままだと年末までもういくつ
数えると状態になってしまいそうです。(意味不明)今週は目立ったニュースなどはありませんでしたが、最近、Twitterで技術
トレンドが多く載るような気がしてなりません。今週とかだとMacに関する
Linux/Unixの話題なんかがありましたし、TypeScriptの話題なんかも
あったような。。もう技術者がそこら中にいらっしゃるのか、非技術者が技術トレンドを扱う
ようになったのか、、街歩くとこの人もフロント技術者、あの人はバック
エンド技術者とかなっているのでしょうか。そういうスカウターがあれば
またそれもトレンドになるのだろうなー。はい、余談も過ぎてはいますが、いつものごとくKivyMDのことをやって
いきます。今週はというと、タイトルにもある通りMagic篇となります。
ではさっそく、レッツラゴ。## Magic
冒頭では一言で説明がありますね。ここにも掲載をしておきます。
> Magical effects for buttons.
これ
コロナ第6波東京:簡易実行再生産数(Rt)を使ったピークアウト動的予測
# 初めに
全国的にコロナの第6波が襲来中ですが、コロナの波については、簡易実行再生産数(Rt)、勾配、新規陽性者数の中で、Rtが最も早くピークアウトすることが経験的に分かっています。Rtがピークアウトした後は、Rtの日次減衰率の値から、将来の新規養成者数のピーク日と最大新規陽性者数の予測値を計算することができます。この方法を用いて、東京のピークアウトを予測してみます。
##### 簡易実行再生産数(Rt)とは
https://www.niid.go.jp/niid/ja/diseases/ka/corona-virus/2019-ncov/2502-idsc/iasr-in/10465-496d04.html“`{python}
import os
import numpy as np
import pandas as pd
import random
import seaborn as sns
import datetime as datetime
import matplotlib.dates as dates
import matplotlib.pyplot as plt
ディレクトリ・モジュール操作について(pathlib, os, sys)
# この記事で紹介するライブラリ
– pathlib
– os
– sys# この記事で紹介するライブラリの使用方法
## pathlibの使用方法
| クラス/メンバー | 使用方法 | 動き |
| — | — | — |
| Path() | – | 実行場所のパス取得 |
| Path(\_\_file__) | – | 実行ファイルのパスを取得 |
| resolve() | Path(\_\_file__).resolve() | 絶対パスを取得 |
| parent | Path(\_\_file__).resolve().parent | 親ファイルのディレクトリ取得 |
| joinpath() | path.joinpath(‘./folder/file.py’) | パスの連結 |## osの使用方法
| クラス/メンバー | 使用方法 | 動き |
| — | — | — |
| basename() | os.path.basename(\_\_file__) | 実行ファイル名の取得 |
| abspath() | o
2022年からの新しいとりくみ
備忘録を兼ねて日々のプログラミング生活で行ったことの概要メモを作ることにしました。
すでに多少の公開メンタリティも身につけたので、特に始めることへの躊躇のカベはなかったです。プログラミングをすることが日常になってしまっているのですが、たまに自分のコード体系に質的な大転換があったりして、それはそれで脳内革命というか机上革命という内的激動があったりするのですが、いかんせん人間とは忘れる生物であり、あの時の変化がいつあったのかを遡及できなくなったりします。
また、プログラムとしては、秒単位までは言わなくても日単位でいつの時点で思いついたものかという遡及がしたくなります。日単位により、自分のプログラミングの変化の履歴の時間感覚が身につき、意外と時間感覚がプログラミング・スキルにとって重要だったりします(あまり、経験という肉感的言葉は重視はするものの強調しすぎたくない気持ちがあります)。
どちらかというと人間が意味(Sinn)として理解できる質レベルでの記録が便宜にかなうと思ったので、日記形式となりえるQiitaを選択しました。日本在住であれば、このサイトが一番ではないかとも思いました。
WordleをPythonに解かせる
## Wordleとは
URL:https://www.powerlanguage.co.uk/wordle/Wordleは2021年末に公開された,巷で話題の英単語推測ゲームです.お題となる5文字の英単語が存在し,それを合計6回の試行で特定します.
回答者は一度英単語を入力すると,その単語とお題の単語のどの文字が一致しているかを知ることができ,文字も場所も一致している場合は緑,文字は合っているが場所が一致していない場合は黄,文字も場所もあっていない場合は黒で表示されます.
1日1題出題だけされ,なかなか楽しいゲームなのですが,やっぱりコンピュータにも解かせてみたいですよね.ということでWordleをPythonに解かせてみました.
## 5文字の英単語リストを取得する
まず,Wordleのお題になる条件である”5文字の英単語”のリストを作成する必要があります.
【Django】 django-environでシークレットキーを読み込んだ際に起こりうるエラー
#はじめに
・django-environを使用し、シークレットキーを読み取れなかった時の対処法を書きます。今回些細すぎるミスにより、4時間ほど解決のために時間を費やしたので、自分への戒めと備忘録として書きます。
また、どの記事にも単純なミスすぎて記載されてなかったので、記事を書きます。#前提
– Python 3.9.7
– Django 3.2.5
– django-environ 0.4.5
– 仮想環境
– venv# 解決方法
環境におけるdatabase.ymlを参照できていなかった。今回はcredintialsにdatabase.ymlのデータベースの設定を入れ、参照させることで解消した。“`
app
├── base
├── config
│ └── settings.py
├── manage.py
├── requirements.txt
└── secrets
├── .env.dev
└── .env.prod
“`
今回、開発環境でシークレットキーを渡したかったため、「.env.dev」ファイルとしています。“`
Windows10でpythonを用いた仮想環境の構築方法
## 仮想環境作成
“`
python -m venv [name]
“`
## 仮想環境立ち上げ
### ・Windows
“`
.[name]\Scripts\Activate
“`
### ・Linux
“`
source .[name]/bin/activate
“`
## 仮想環境から抜ける
“`
deactivate
“`
## 仮想環境を削除
### ・Windows
“`
rmdir /s [name]
“`
### ・Linux
“`
rm -s [name]
“`## ライブラリエクスポート
“`
pip freeze > requirements.txt
“`## ライブラリインポート
“`
pip install -r requirements.txt
“`
## 動画で確認する
デッキ画像から駒名称を抜き出す【特徴点マッチング編】
# はじめに
こんにちは。逆転オセロニアのYouTubeチャンネル「まこちゃんねる」の中の人です。
本稿では、以前にも挑戦した[デッキ画像から駒名称を抜き出すこと](https://qiita.com/macochan/items/f74c87e7c708dd6e7ed5)を目標にします。
今回は**特徴点マッチング**を使った方法を利用してみます。# モチベーション
前回は**[テンプレートマッチングを使った方法](https://qiita.com/macochan/items/f74c87e7c708dd6e7ed5)**を利用することで、テンプレート画像から駒名称を取得しました。が、この方法は**テンプレート画像を用意する手間があるのが問題点**でした。
そこで、今回はテンプレート画像を作らなくても良い手法で、かつ汎用性の高く、画像から駒名称を抜きだしたいと思ったのが始まりです。
GCPで冪等性を実現しようと頑張った試行錯誤の備忘録・日記です
## 結論
– GCPのリソースを自分なりに宣言的に定義できるようになったので、気軽に試行錯誤できるようになった
– 作ったPythonスクリプトは [こちら](https://github.com/kozohosok/gcp-cli-helper)## 経緯
### 1. GCPを触り始めた
よく使うクラウドはAWSだったが、世の中の風潮はマルチクラウドなのでGCPにも慣れておこうと思った。
(まだまだ勉強し始めた程度)### 2. コンソールで恐る恐る作業
必要な作業はGCPコンソールで実施できることを体感できた。
しかし、コンソール作業は指が疲れるし間違えやすいので、作業は自動化したい。
(使い慣れていたAWS CloudFormationのありがたみを回想する日々)### 3. Deployment ManagerでIaCを目指すが
構成管理サービスであるCloud Deployment managerがGCPにはあることに思い至った。
ドキュメントを見ると対応しているサービスがまだあまり多くはなさそうで今後の発展に期待したいと
知らない人は損しているなと思うChromeDriverを自動更新するPythonライブラリ
# 記事はこちらに移管しましたmm
seleniumインストールに失敗したけどpipアップグレードして解消した
# 記事はこちらに移管しましたmm
Python3でUUIDを生成する
##はじめに
PythonでUUIDを生成する方法です。
本記事はPython3.8を使用しています。uuidというモジュールを使ってUUIDを生成するのですが、
Python3では標準ライブラリとしてバンドルされているので、
importしてすぐに使用できます。https://qiita.com/shimajiri/items/464275c5027ab09bc330
##UUIDとは
UUID(Universally Unique Identifier)とは、世界で同じ値を持つことがない一意な識別子です。##バージョン1
“`python
uuid.uuid1(node=None, clock_seq=None)
“`バージョン1は、時刻とMACアドレスを利用したUUIDで、
uuid1はホストID、シーケンス番号、現在時刻からUUIDを生成します。“`python
uuid.uuid1()
“`引数なしでも利用可能です。
nodeがなければuuid.getnode()で、ハードウェアアドレスを取得しそれが適用されます。clock_seq
動画圧縮する(MP4 to mp4) on python3
こんにちは.
実験動画を圧縮する機会が増えてきました.
実験の動画を撮影した場合は,拡張子「MP4」で記録されます.
結果を記載するページは「mp4」のみ許可されています.
といっても,自作のwikiなので,拡張子の権限を増やしてやればいいだけなのですが...まぁ,めんどくさいし,コマンド何回も打ち込むのだるいので,pythonで一気にやらしちゃおう!という内容です.
まず,ffmpegは必須です.
以下のコマンドでインストールしましょう.
※apt-get updateは行っておいた方が良いでしょう.“`
sudo apt-get install ffmpeg -y
“`私のPCにインストールしたffmpegのバージョン
少し古いかもしれません.“`
$ ffmpeg -version
ffmpeg version 4.3.2-0+deb11u2 Copyright (c) 2000-2021
the FFmpeg developers built with gcc 10 (Debian 10.2.1-6)
“`## ソースコード
“` vid
地震波形データをPythonで読み込んでみよう
# 本稿の方針
本稿では、地震波形データをPythonで読み込む方法についてご紹介します。Pythonを使って地震波形データを処理したい方に参考になればと思います。特に、地震の勉強・研究・業務をしてきた方で、Pythonを今まで使ってこなかった方や、反対に、Pythonは使いこなせる方で地震波形データに新たに手を出すような方々を想定しています。ちょっとしたフィルタリングや描画ができるようになったり、データ解析(機械学習を含む)のための基礎となったりしてお役に立てればと思います。
ここでは、自分で試した範囲のことを書いておくつもりです。網羅的な説明はしません。また、Pythonの説明などはしません。
(2022年1月25日追記)限定公開で同僚に内容を確認してもらいましたが、それほど問題なさそうなので、全体公開に切り替えました。
## 環境
Python 3系を使うことにします。今回はPython 3.7.2とObsPy 1.2.1を使っています。—
# ObsPyとは
[![alt](https://docs.obspy.org/_static/obspy-logo.