- 1. python-note(:基本)
- 2. 【Python】ttkbootstrapを使用してGUIアプリ作ってみた!
- 3. Python3でクラス変数をオーバーライドする関数を作成する
- 4. matplotlibで日本語を表示する方法
- 5. Python初心者の備忘録 #05
- 6. pythonでAWS Lambda を使った、どんなプロジェクトでも使える共通基底クラス群の雛形を書いてみた
- 7. VSCodeでJupyter Notebookを使う
- 8. 個人用scikit-learn
- 9. コーディングテストで便利だと思った機能 (Python)
- 10. Windows(x64) の Python 3.10 で PyCrypto を pip install
- 11. windows10のgoogle chrome 114でseleniumを使う準備
- 12. Python 仮想環境(venv)作成・削除
- 13. abc 310考察(A~C)
- 14. BERTScoreの基本的な使い方
- 15. 【推し活】推しから寝起きとか仕事終わりにLINEが来たら嬉しくないか???〜疑問解決編その2〜
- 16. Locustをローカル環境で動かす
- 17. プログラム課題(paizaの森)
- 18. Python3で関数作成
- 19. Matplotlib
- 20. SwitchBot API v1.1を使って、スマートプラグ プラグミニの状態をZabbixでモニタリングできるようにした
python-note(:基本)
# 概要
Pythonノート基本系 ※自分用メモ (or cheat sheet)# 基本
## 文・式
基本的にインタープリタなので1文ずつ解釈して動作改行が文の区切りになる
“`
print(“Hello”)
print(“Goodbye”)
“`コロンで区切っても良い
“`
>>> print(“Hello”); print(“Goodbye”)
Hello
Goodbyeprint(“Hello”); print(“Goodbye”)
“`## コメント
`#`で始まる行はコメントとして扱われる
“`
# comment xxxx
“`# 制御構文
## インデント
制御構文のブロックは一般的に括弧{ …… }で表すことが多いが、pythonはインデントによってブロックを表現する
## if文
“`
if a is b:
print(“a is equal to b”)
else:
print(“a is not equal to b”)
“`## while文
`while condition:`
【Python】ttkbootstrapを使用してGUIアプリ作ってみた!
今回はttkbootstrapについて動画を見ながら勉強したのでその記録を残したいと思います。
まだまだソースコードの方は改善します。ちょっと、長すぎます…
また、今回のは基本なのでもう少し自分なりにアレンジしていきます。参考にした動画はこちらになります。
## 参考動画
## 実際に作成した成果物
①勤怠計算
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2759758
Python3でクラス変数をオーバーライドする関数を作成する
# はじめに
[django REST framework](https://www.django-rest-framework.org/)にある[Serializers](https://www.django-rest-framework.org/api-guide/serializers/)では、以下のようにクラス変数で定義されたフィールドをオーバーライドして、書き換えたり独自のバリデーションを付与したりすることができます。
“`py
from rest_framework import serializersclass BlogPostSerializer(serializers.Serializer):
title = serializers.CharField(max_length=100)
days_since_joined = serializers.SerializerMethodField()def validate_title(self, value):
if ‘django’ not in value.lowe
matplotlibで日本語を表示する方法
## 記事内容
以下の画像のように、日本語を使ってmatplotlibのグラフ表示を行えるようにする。
![japanese_matplotlib.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3509941/c0b1e564-9768-8522-1d08-f3480d8e05fa.png)## 状況
matplotlibを用いて折れ線グラフを生成しようとしていた時のこと。日本語のタイトルや、日本語のラベル値を設定しようとしていた。以下のプログラムは、例として用意したプログラムである。
“`python
import sys
import matplotlib.pyplot as pltdef main():
section = [“りんご”, “みかん”, “ぶどう”, “メロン”]
# 日本語ラベルを指定
x = range(len(section))
plt.xticks(x, section)# グラフ生成
plt.xlabe
Python初心者の備忘録 #05
# はじめに
今回私は最近はやりのchatGPTに興味を持ち、深層学習について学んでみたいと思い立ちました!
深層学習といえばPythonということなので、最終的にはPythonを使って深層学習ができるとこまでコツコツと学習していくことにしました。
ただ、勉強するだけではなく少しでもアウトプットをしようということで、備忘録として学習した内容をまとめていこうと思います。
この記事が少しでも誰かの糧になることを願っております!
**※投稿主の環境はWindowsなのでMacの方は多少違う部分が出てくると思いますが、ご了承ください。**
最初の記事:[Python初心者の備忘録 #01](https://qiita.com/Yushin-Tati/items/961dc47d6163f944f7e9)
前の記事:[Python初心者の備忘録 #04](https://qiita.com/Yushin-Tati/items/83aa101d7673e69d9279)
次の記事:まだ今回の記事はStyle Guide、ErrorとException、ファイルの入出力、テスト、Da
pythonでAWS Lambda を使った、どんなプロジェクトでも使える共通基底クラス群の雛形を書いてみた
# はじめに
pythonでAWS Lambda を業務利用で量産するにあたって、自分があると便利だと思うクラス構成の雛形を作成してみました。
どんなプロジェクトに入っても、これに近いクラス階層や構成を用意したり、なければ自作することになるであろう階層たちなので、雛形として作成&公開してしまおう。という考えです。
# 機能群
+ 環境変数でのログレベル指定
+ オブジェクト指向の多重継承クラス
+ 非同期処理の直列待ち合わせ
+ 入出力JSONのログ出力(Lambdaで便利)ここら辺が量産用の雛形として、プロジェクトに用意してあると嬉しいですね。
# クラス設計
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281768/f1304181-9823-2be2-c052-30304e235e5b.png)
AWS Lambda基盤から直接実行される、lambda_function.pyと、業務処理クラスは切り離したいのと、各クラス階層ごとに、どのレベルの共通処理をするか定め
VSCodeでJupyter Notebookを使う
最近説明する機会が多いので書いておきます。
Jupiter Notebook自体はシステムにインストールしたPythonで動かせますが、Global環境を汚したくないので仮想環境(pipenv)で実行します。
pipenvは仮想環境を管理するためのパッケージです。
[Pipenv: Python Dev Workflow for Humans — pipenv 2023.7.12.dev0 documentation](https://pipenv.pypa.io/en/latest/)## この記事でやること
– 仮想環境(pipenv)のインストール
– 仮想環境(pipenv)の作成
– Jupyterカーネルのインストール
– Jupyter Notebookファイルの実行## 前提
– Python3のインストール
– インストール時にPATHの設定をチェックしておく
– VSCodeのインストール
– 以下の拡張機能をインストールしておく
– Python(https://marketplace.visualstudio.com/items
個人用scikit-learn
# 回帰
## 線形回帰
“`python
from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(X, y)
y_pred = lin_reg.predict(X)
lin_reg.score(X, y) #R2スコア
lin_reg.get_params()
lin_reg.set_params(**params)
“`## Ridge回帰(L2正則化)
“`python
from sklearn.linear_model import Ridge
ridge = Ridge(alpha=1)
ridge.fit(X, y)
y_pred = ridge.predict(X)
ridge.score(X, y)
“`
グリッドサーチによるモデル選択
“`python
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV
p
コーディングテストで便利だと思った機能 (Python)
# はじめに:point_up:
僕はエンジニアを目指している大学生です。
コーディングテストで使って便利だなと思ったPythonの機能を紹介しようと思います。## 便利な機能たち
### リストをN個に分割
“`python
def split_list(l, n):
for i in range(0, len(l), n):
yield l[i:i + n]l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = list(split_list(l, 3))
print(result) # [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]“`
関数に `yield` を含めることで、ジェネレータになり反復可能になります。
また、ジェネレータを用いることで、都度必要な分だけ値を生成するので、メモリを効率的に使用できます。### 累積和を生成
“`python
import itertoolsl = [1, 2, 3, 4, 5, 6]
print(itertools.
Windows(x64) の Python 3.10 で PyCrypto を pip install
注意
—-
pycrypto は古いので pycryptodome を使いましょうきっかけ
——–
Windows(x64) の Python 3.10 で PyCrypto を pip install しようとするとwinrand.c のコンパイル中に inttypes.h で未定義エラーが出る
古い情報だと stdint.h を置き換えるとか inttypes.h を書き換えるとか出て来るが、もっと簡単に解決出来たのでメモ
結論
—-これだけ
“`
set CL=-D”intmax_t=long long” -D”uintmax_t=unsigned long long” -DPY_SSIZE_T_CLEAN
pip install PyCrypto
“`参照
—-
[python3.6でpycryptoをインストールする際にはまったのでメモ](
https://web-technical.hatenablog.com/entry/2018/08/16/165137 )
[Windows(x64)でPython3.6.0(x64)にP
windows10のgoogle chrome 114でseleniumを使う準備
# 目的
今日は3連休最終日!
土日何もしなかったので、何かしたいと思いました…webサイトのテストを自動化するとき、pythonのseleniumが使われるようなので、
それについて今日は実行できるように準備までします。# 今回やること
今回の目標は以下の4つ。
* pythonのインストール
* VScodeのインストール
* seleniumのインストール
* テストコードの実行# 環境
* windows 10
* Python 3.11.4
* google chrome 114.0.5735.199# いざ出陣
### sleniumとは
Webアプリケーションをテストするためのフレームワークいろいろできると思って触ってみたかったが、調べて多く出てきた手順ではできなかったので主にそれの備忘録。
### pythonのインストール
以下のサイトからインストーラーをダウンロードして実行します。
今回はpython 3.11.4のインストーラーをダウンロードしました。https://www.python.org/downloads/
Python 仮想環境(venv)作成・削除
## 概要
Python 仮想環境(venv)の作成と削除方法を記載する。
## 前提
– Python がインストール済みとする。
## 動作確認済み OS、 Python バージョン
– Windows 10
– Python 3.8/3.9/3.10/3.11## 作成
– Python コマンド
“`Python
python -m venv 仮想環境名
“`– py コマンド
Python 3.8 の場合。
“`Python
py -3.8 -m venv 仮想環境名
“`## 起動
“`
venv/Scripts/activate
“`## 終了
deactivate だけでも可能である。
“`
venv/Scripts/deactivate
“`## Python ライブラリのインストール
“`python
pip install numpy
“`## Python ライブラリのアンインストール
“`python
pip uninstall numpy -y
“`## インストー
abc 310考察(A~C)
今回はバーチャル参加で回答を提出しました。
# A問題(Order Something Else)
[問題文](https://atcoder.jp/contests/abc310/tasks/abc310_a)
**提出したコード**
“`python:abc_310_A.py
N, P, Q = map(int, input().split())
D = list(map(int, input().split()))payment = P
for i in range(N):
payment = min(payment, D[i]+Q)print(payment)
“`
**振り返り**
今回の問題の標準出力は最小の支払金額である。
よって最小の支払金額を求めるコードをかけばよい。
以下二点に注目すれば上記のようなコードが書けると思う。**1. 支払金額は具体的にどう表せるのか。**
P(通常料金) か D[i]+Q(セット割引料金)で表せる。**2. 支払金額のうち最小のものをどう求めるか。**
今回の制約はゆるいのでループによ
BERTScoreの基本的な使い方
## はじめに
本記事は私自身の活動記録、および備忘録を目的としているので、間違っている内容が含まれているかもしれません。もし誤解を招くような内容や、間違っている内容があった場合はコメントをいただけると幸いです。## 動作環境
“`console
pip3: 23.1.2
python3: 3.9.6
numpy: 1.23.5
SentencePiece: 0.1.99
“`
BERTScoreのより詳しい情報は下記のリンク先などをご確認ください。
– https://www.nogawanogawa.com/entry/bertscore
– https://github.com/Tiiiger/bert_score## 基本的なスコアの出し方
まずはインストールをする。SentencePieceについては、計算に用いるモデルによっては必要になる。
“`python
pip3 install bert_score
pip3 install SentencePiece
“`
次にスコアを計算する教師データと検査データを用意する。ここでは例として以下のデータを用意する。
【推し活】推しから寝起きとか仕事終わりにLINEが来たら嬉しくないか???〜疑問解決編その2〜
# きっかけ
前回の記事でもともと持っていた疑問点は解決したが,それを踏まえて新たにディレクトリを作ったところ`no module named ‘requests’`というエラーが出て動かなかった.そこでプログラミングが得意な弊研究室の後輩たちに相談したら30分ほどで解決したので記事にする.結局パスの問題だった.# 前提
以下の2記事を見てきた人へ向けて
– [【推し活】推しから寝起きとか仕事終わりにLINEが来たら嬉しくないか???](https://qiita.com/NAT/items/eeb40ac5fc59be86a468)
– [【推し活】推しから寝起きとか仕事終わりにLINEが来たら嬉しくないか???〜疑問解決編その1〜](https://qiita.com/NAT/items/56cded8bedf6f148b7b4)# 今回やること
1. 環境確認パート
2. 解決パート
3. 意味のなかったこと
4. お知らせ# 1.環境確認パート
“`
pip install requests
“`
の結果は要約するとpipの新しいバージョンが存在するってことと
Locustをローカル環境で動かす
# この記事は何か
Locustという負荷検証ツールを、ローカル環境で動かしてみました。# Locustとは
Python製の負荷検証ツールです。
Web UI付きで、手軽に操作することができます。
[ドキュメント](https://docs.locust.io/en/stable/)# ローカル環境で動かしてみた
## 動作環境を用意
Docker環境を用意しました。https://github.com/tatsukoni-pra/Locust-local
コードは↑を参照ください。ポイントは以下。
– WebUI用に、`8089`ポートを開けておく
– Python環境にて、`pip install locust`でLocustをインストールする(`build-essential`がないとインストールに失敗したので、入れておく)“`shell-session
# python –version
Python 3.9.17# locust –version
locust 2.15.1 from /usr/local/lib/python3.9/site-
プログラム課題(paizaの森)
***paiza***様のpaizaの森のプログラム課題からこんな問題を解きました。
>1行目に入力する数を決める
>2行目以降に2つの数を入力し、2つの数が同じなら2つの数を掛け、2つの数が異なるなら2つの数>を足す。これを1行目に入力するデータの数だけ行い、計算結果を表示する。プログラムで書きました
“`Python3
# coding: utf-8
# 自分の得意な言語で
# Let’s チャレンジ!!
num = int(input())
sum1 = 0
for i in range(num):
ans1 = 0
data = input()
array1 = data.split(‘ ‘)
A = int(array1[0])
B = int(array1[1])
if A == B:
ans1 = A * B
else:
ans1 = A + B
sum1 += ans1
print(sum1)
“`
Python3で関数作成
***Python3***で関数を作成しました。
“`Python3
# 文字表示の練習
# Create 2023/7/16#文字表示関数
def display(msg):
print(msg)str1 = “test”
#文字の連結
str1 += “46”
display(str1)str2 = “山下美月”
display(str2)“`
Matplotlib
## Matplotlibのインストール
“`python
import matplotlib.pyplot as plt
“`##
SwitchBot API v1.1を使って、スマートプラグ プラグミニの状態をZabbixでモニタリングできるようにした
# 背景、事の始まり
私はSwitchBotのスマートプラグミニを3カ月ほど使用してきましたが、せっかくなら電圧や消費電力といった情報を取得したいと考えました。そこで調べてみたところ、SwitchBotには開発者用APIがあり、私でも利用することが可能であることを知りました。実は私はAPIを使用したことがなかったのですが、この機会に挑戦してみることにしました。また、Grafanaを使ってモニタリングしている方がいるというのもTwitterで知り、私もそれにならって試してみようと考えましたが、自宅には既にZabbixが導入されているため、折角ならZabbixを利用して管理することにしました。
## 調べ始め
### SwitchBotAPI v1.0でのモニタリング
どうやら同じことを考えた人は居たようです。
こちらの方は温湿度計をZabbixでモニタリングしているようですが、v1.0で利用しているみたいです。https://satoweb.net/2021/09/switchbotonzabbix/
### SwitchBotAPI v1.1について
2022年9月にAPI