- 1. AsanaのAPIを使ってタスクのストーリー(アクティビティ)までを取得してみる
- 2. SVGベースのPythonフロントエンドライブラリを作っているという話
- 3. AWS Lambda + S3 + Python で PDF を扱う際のTips
- 4. if文(条件分岐)
- 5. pytestのparametrizeを使用してテストコードを書いてみる
- 6. paiza「十億連勝 (paizaランク S 相当) 」をpython3で解いてみた
- 7. Bash シェルスクリプト+ cURL+ Python3 標準モジュールで作る Webex bot 用 Zabbix Alert Script
- 8. Python関係のググり方Tips集
- 9. tkinterで表・ボタン・時間表示
- 10. pythonでログのファイル出力とコンソール出力を両方できるようにする。
- 11. AOJトライに関する知識知見の記録共有:Volume0-0054
- 12. [npsocket] 画像のような大規模データを容易にpython通信処理する
- 13. kivyMDチュートリアル其の肆什参 Behaviors – Elevation篇
- 14. 【Python3】Base64を用いた符号化の復習
- 15. Windows10 で GWSL を利用して Opencv を利用する
- 16. Python 辞書
- 17. Python タプル
- 18. PythonでTLE, MLEが出たときに試すといいこと
- 19. プログラミング学習Ⅱ Day1(クラスとは)
- 20. Python3でCGIチャレンジ4 dictionary型でファイル読み書き
AsanaのAPIを使ってタスクのストーリー(アクティビティ)までを取得してみる
こんにちは。
これはHameeの2021年のアドベントカレンダー、6日目の記事です。
https://qiita.com/advent-calendar/2021/hamee
同じくアドベントカレンダーの @yamamoto_hiroya さんの[4日目の記事](https://qiita.com/yamamoto_hiroya/items/4063e8b31c2ecd9193c7)にもあるのですが、この11月からHameeの開発部署のプロジェクト管理をRedmineからAsanaに変更しました。その関係で、旧来できていた運用の再現や、手間をはぶく新しい運用の適用やツールの作成が急ピッチで進められていました。
https://qiita.com/yamamoto_hiroya/items/4063e8b31c2ecd9193c7
そしてタスクのステータスをAsana上のセクションで管理するようになったのですが、あるとき、そのタスクの差し戻し回数や、保留されている時間を知り、プロジェクト管理の見える化をはかろうとしました。ここではそのためにおこなったAsanaのAPIの疎通方法
SVGベースのPythonフロントエンドライブラリを作っているという話
# TL;DR
今年からPythonで書けるapyscという名前のSVGベースのフロントエンドライブラリを作り始めたのでその1年のまとめです。
どんなライブラリなのか、何故作っていっているのか、現在どこまでできるようになったのか、その他使い方の詳細や今後どの辺を実装していこうと考えているのかなどについて触れていきます。
# ライブラリ基本情報
GitHub:
https://github.com/simon-ritchie/apysc
ドキュメント:
https://simon-ritchie.github.io/apysc/index.html
PyPIに登録済みのため以下のようにpipでさくっとインストールすることができます(Python 3.6以降をサポートしています)。
“`
$ pip install apysc
“`※本記事では執筆時点で最新の0.55.9のバージョンを使っていきます。
“`
$ pip install apysc==0.55.9
“`# どんなライブラリなのか(現在までにできるようになっていること)
## 様々なSVG
AWS Lambda + S3 + Python で PDF を扱う際のTips
# 初めに
PDF を `AWS` で扱う際に、ローカルの環境と `Lambda` や `S3` では少し扱いに注意が必要だったので、忘れないようにまとめておきます。
## 1. S3 から PDF を読み込む
`Python` で PDF を扱う場合は `PyPDF2` を使うことが多いかと思います。
ローカル環境で読み込む場合は
“`.py
# example code
from PyPDF2 import PdfFileReaderPDF_PATH = ‘pdf/xxx.pdf’ # ローカルのディレクトリ
pdf = PdfFileReader(PDF_PATH)
“`とパスを指定するだけで簡単に読み込むことができます。
`S3` から PDF を読み込む場合は少し工夫が必要です。
“`.py
# example code
import boto3
from PyPDF2 import PdfFileReader
from io import BytesIOPDF_PATH = ‘data/pdf/xxx.pdf’ # S3バケットの
if文(条件分岐)
# 今回の授業資料
# 本日の内容
どんなプログラミング言語に限らず,
・(前々回扱った)リスト
・(今回扱う)if文
・(次回以降…)繰り返しの処理
は日常どーーんなアプリケーションでも使われているアルゴリズムになります.そこで今回は,### if文でコードが書け,実行までできるようになろう!
例えば…
**【条件分岐前までの順次処理】** moneyという変数を宣言(手持ちの値段と想定)
**【条件】** お寿司が1500円
とすると,moneyが仮に3000だとしたらTrue, 1000だとしたらFalseへ分岐することになります.これをコードにすると…![スクリーンショット 2021-12-06 7.34.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271604/71b0de27-de87-7fa9-50a2-9b561489f024.png)
エディタの**新規作成**はVS Codeにて,**Cmd/Control** を押しながら,**N**を押すと,作成できます
pytestのparametrizeを使用してテストコードを書いてみる
## 目的
pythonでテストコードの基本を身に着けること。
pytestのモジュールを使用して、大量データのテストコードを想定してテストが実行できるようにしてみること。#### 注意点
テストコード実務未経験者が書いています。何か不備がありましたら、ご指摘いただけると幸いです。テスト対象のファイルはこちらです。↓
“` simple_calc.py
def add_func(x,y):
z = x + y
return zdef subtract_func(x,y):
z = x – y
return zdef multiple_func(x,y):
z = x * y
return zdef add_string(x,y):
z = f’苗字は{x}です。名前は{y}です。’
return z
“`このコードをテストするためのテストファイルはこちらです。
ファイル名には「test_」という接頭辞を付ける必要があります。
まずは一番シンプルな形で、テストコードを書いてみます。↓“`
paiza「十億連勝 (paizaランク S 相当) 」をpython3で解いてみた
# 初めに
paizaの「[十億連勝 (paizaランク S 相当)](https://paiza.jp/works/mondai/real_event/continuous_winning)」を、python3で解いてみた。というよりも、解けなかったので、「解説を見てコードを考えた」というのが正しいかも。# 方針
解説を、自分なりに解釈したものです。– 帰納的に、i – 1 番目のステージまでの組み合わせの数から、i 番目のステージまでの組み合わせの数を求める。
– 各ステージ終了時に出現する状態を表すために、
– ステージ終了時点での連勝数 w と過去に X 連勝したことがあるかの真偽値 b の組 (w, b) を利用する。
– ステージ終了時点での各状態の組み合わせの数 c を dict で保存する。
– 組は、dict のキーにするために、hashable な tuple で表す。
– 初期状態は、(0, False) で表せて、組み合わせの数は 1 である。
– i – 1 番目のステージ終了時の状態の1つが (w, b) で組み合わせの数が
Bash シェルスクリプト+ cURL+ Python3 標準モジュールで作る Webex bot 用 Zabbix Alert Script
この記事はシスコの有志による Webex Advent Calendar 2021 の 5 日目として投稿しています。
Webex Advent Calendar 2021: https://qiita.com/advent-calendar/2021/webex# はじめに
今回は Bash シェルスクリプト、cURL および Python3 の標準モジュールで、Webex bot 用 Zabbix Alert Script を作ってみたので紹介します。Bash シェルスクリプト+cURL または Python3、どちらかだけでも実現できそうですが、下記の理由から組み合わせることにしました。* Bash スクリプト+cURL だけで作成した場合、Webex bot に投げる body の JSON 作成が大変(Python の方が文字列処理が楽)
* Python だけの場合、Webex bot に POST するために requests モジュールなど非標準モジュールが必要になる(Zabbix サーバに追加のインストールをしたくない)上記の理由から、おそらく Zabbi
Python関係のググり方Tips集
# はじめに
2021年現在、**Python**は新たなライブラリや機能が盛んに開発されている言語であり、知識のアップデートや問題解決のために**「ググる」頻度が高い**と想定されますそこで今回、Python関係でGoogle検索する際に**意識すると検索効率が上がるTips集**を、記事にまとめてみました
# ググるときの流れ
一般的には、以下の流れでググるかと思います。
1. ググるためのワードを考える
2. グーグル検索を実行し、検索結果から適切なサイトを選択する順を追って、検索効率アップに繋がると感じたテクニックを紹介します。
# 1. ググるためのワードを考える
まず、Python関係で検索が必要となる事態には以下のようなパターンが多いかと思います。
A. あるライブラリの使い方や機能がが分からないので、使い方を調べたい
B. コード実行中にエラーが発生したので、解決策を調べたいそれぞれ、検索ワードを決める際に有効だと感じたTipsを紹介します。
## A. あるライブラリの使い方や機能を調べたい
Pythonは様々なライブラリを組み合わせて使用するこ
tkinterで表・ボタン・時間表示
#はじめに + tkinterとは
ロボットを操作する際に色んな環境と競合せず,簡単に使用できるpythonのためのGUIライブラリはないかなーとなったときにtkinterを発見しました.ボタンやラベルを使って比較的簡単にUIを作ることができます.[参考]tkinter
https://docs.python.org/ja/3/library/tkinter.html
[参考]python用のGUIインターフェース一覧
https://www.simugrammer.com/python_gui_matome/ちなみにpythonにはどうやらたくさんGUIを作れるライブラリがあるっぽいです.
正直,比較していないので特にtkinterが良い理由はないです(笑),,,その中で今回はロボットのような状態を命令したり表示したりすることが求められる際に利用できる書き方を以下に示したいと思います.
tkinterを使って何か操作したり表示させたい場合はぜひ参考にしてください.
ただ長らくお世話になっている先人たちが丁寧に説明してくださっているので,ここでは割愛してコメントのみ記載して
pythonでログのファイル出力とコンソール出力を両方できるようにする。
## 目的
– ファイル出力とコンソール出力の両方のログを出力できるようにする。
– ファイル出力については、エラーレベル以上のみ出力されたファイルも作る。## 注意点
ログについては最近勉強を始めたばかりなので、ここ少しおかしいなとか、もっと効率的に書けるなというところがあれば、コメントいただければ幸いです。## ライブラリのインポート
“`
from logging import ERROR, Formatter, getLogger, StreamHandler,FileHandler,DEBUG
“`
## ログの出力形式を設定
“`
formatter=Formatter(‘[%(levelname)s] %(asctime)s – %(message)s(%(filename)s)’)
logger = getLogger(__name__)
“`
## コンソール表示用ハンドラーの生成
“`
stream_handler = StreamHandler()
“`
## テキストファイル出力用ハンドラーの生成
デバッグレベルとエラーレベルに分ける。`
AOJトライに関する知識知見の記録共有:Volume0-0054
# タスク概要
Sum of Nth decimal places
https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0054
# コード実装例
TIPS1. 例外処理含む評価パターンを追加
1. 素数5に着目し高速化“`Python
import pprint, sys, time
import sympydef core(arg, acc=True):
if acc:
prime_factors = {n: sympy.factorint(n) for n in range(2, arg) if n % 5 == 0}
ret = [sum([prime_factors[v][5] for v in prime_factors if 5 in prime_factors[v]])]
else:
prime_factors = {n: sympy.factorint(n) for n in range(2, arg)}
[npsocket] 画像のような大規模データを容易にpython通信処理する
#はじめに.socket通信とは?
「TCP/IPのソケット通信」を簡単にする手法を紹介します.
そもそもsocket通信とは,主にプログラム部とTCP/IP部をつなぐ特別な出入り口のことを意味し,TCP/IPのトランスポート層を指す.まあ単純にいうと,同じネットワーク下にある複数のパソコンのデータの共有をする手法です.ちなみに私は大学院時代にAIロボット系のことをやっていたのですが、その時使用していたロボットのメモリが少なすぎたか私の技量が足りなすぎたか(笑)で,tensorflowの環境をロボット付属のメモリに格納できませんでした.そこでロボットのPCと高性能PCをEthernetハブで通信接続することで,画像とロボット情報の処理を送受信できるようにすることを試みました.その時に使用したのがsocket通信であり,それを**python(numpy)**で容易にしたのが**npsocket**というモジュールです.gitに天才様が作ってくださったこれがなければ私は卒業できませんでした笑
とりあえず
[今回紹介:npsocketのURL]
https://github.com/
kivyMDチュートリアル其の肆什参 Behaviors – Elevation篇
年もおしせまり、何かと忙しい頃となりました。
>linked by 手紙の書き方 > 手紙の基本 > 時候の挨拶さて今年も残り1ヶ月を切りましたが、いかがお過ごしでしょうか。
忙しい時期にはなると思うのですが、小生、残念ながら年末に忙しくなるという
境遇に至ったことがありません。。なので、この時期がなぜ忙しいのかだとか、どの業界などがどういう風に忙しい
のかなど分からずここまでやってきました。自分の組織ではこういう理由で忙し
いんだよ!というようなコメントを頂けるととても嬉しいです。前置きを一旦を置いておいて、今週はというとBehaviors章の2回目となります。
今日は今までよく出てきたElevationを取り扱おうと思います。それでは参ります。
※先に言っておくとElevation篇は2週連続としたいと思います## Elevation
冒頭は丁寧に始めていますが、いつものごとくマテリアルデザインのリンクは
ぶっきらぼうにス
【Python3】Base64を用いた符号化の復習
Base64によるテキストデータと画像ファイルの符号化の復習です。
#1.基本
最も単純なもの。コード内で定義された文字列の符号化/復号の確認。“`python:b64_1.py
import base64plaintext = ‘base64’
b64_text = base64.b64encode(plaintext.encode())
print(b64_text)plaintext = base64.b64decode(b64_text).decode()
print(plaintext)
“`
- b64encode()の引数はbytes型であるため、encode()による変換が必要。
- b64decode()の返り値はbytes型であるため、decode()によってstr型に変換。
b64_1.pyの実行結果は以下の通り。
“`
b’YmFzZTY0′
base64
“`#2.テキストファイルの読み込み
テキストファイルに書かれた文字列の符号化と、テキストファイルに書かれた符号化文字列の復
Windows10 で GWSL を利用して Opencv を利用する
## 経緯
– WSL で、Python の画像処理ライブラリ Opencv を利用する際にそのままだと GUI が準備されていない為、画像を表示させらずに処理が止まってしまいました。
– Windows11 から利用できる WSLg に Update すれば問題なさそうのですが、利用している PC でインターネットバンキングなど、まだ動作確認がとれていないものがあり、もし何かあれば仕事に支障をきたす為、Windows11 に未だバージョンアップしたくない、とう状況でした。上記の理由から、Windows10 の WSL でも GUI を動かして Opencv を利用する必要がでてきました。
## 解決策
Microsoft store にある「GWSL」を利用して解決しました。## GWSL とは
GWSLは、Microsoft store から Install できる WSL 用の X Window システムです。
Linux のデスクトップアプリが Windows のデスクトップに表示できるようになります。ターミナル画面では、画像や PDF ファイルの表示ができないの
Python 辞書
#はじめに
基礎から定着させていこうということで辞書についてまとめました。
Python 3.8.2#辞書の作成
“`python:dict.py
d = {“x”:1,”y”:2}
print(“d is”,type(d))
print(d)d2 = dict(x=10,y=20)
print(“d2 is”,type(d2))
print(d2)d3 = {“x”:”hello”,”y”:”world”}
print(“d3 is”,type(d3))
print(d3)
“`“`:出力結果
d is
{‘x’: 1, ‘y’: 2}
d2 is
{‘x’: 10, ‘y’: 20}
d3 is
{‘x’: ‘hello’, ‘y’: ‘world’}
“`#辞書の書き換え、追加
“`python:dict.py
d = {“x”:1,”y”:2}d[“x”] = 11
print(d)d[“y”] = “yyy”
print(d)d[“z”] = 3
Python タプル
#はじめに
基礎から定着させていこうということでタプルについてまとめました。
Python 3.8.2#タプルの作成
“`python:tuple.py
t = (1,2,3,4,5)print(“t is”,type(t))
print(t)
“`“`:出力結果
t is
(1, 2, 3, 4, 5)
“`要素が一つでもタプルは作成できるが、「,」を忘れずに
“`python:tuple.py
t1 = (1,)
t2 = 1,print(“t1 is”,type(t1))
print(t1)
print(“t2 is”,type(t2))
print(t2)
“`“`:出力結果
t1 is
(1,)
t2 is
(1,)
“`#タプルの要素の追加
“`python:tuple.py
t = (1,2,3,4,5)
print(t[0])
t[0] = 10
“`タプルに要素を追加しようとするとエラーが発生する
“`:出力結果
1
PythonでTLE, MLEが出たときに試すといいこと
[う え き ぷ に き あ く ん 笑 Advent Calendar 2021](https://adventar.org/calendars/6939 “うえきです”) 4日目です
##環境
[AtCoderコードテスト](https://atcoder.jp/contests/apg4b/custom_test “AtCoderコードテスト”)
Python 3.8.2
PyPy 3.7.0
Cython 0.29.16##この記事について
競技プログラミングをPython3でやっている際にTLE, MLEが出たときの対処法を、あまり見かけない情報に絞って書き連ねていきます。※計算量改善ではなく、定数倍高速化についての記事です
本記事内でのそれぞれの言語のバージョンは、「環境」で示したものとし、以降バージョンは省略させていただきます。
本記事内では、「環境」で示した3つの言語の総称として”3言語”という言葉を使用いたします。
実行は全てAtCoderコードテストで行っています。
細かい仕様などに触れた記事ではありません。チートシートの様な使い方をしていただけたら幸いです、
プログラミング学習Ⅱ Day1(クラスとは)
# クラス
– オブジェクトを定義する機能をクラスという
– クラスから作成されたオブジェクトをインスタンスという
– クラス内で関数を定義するとそれはメソッド。”.”で表現する
– l.append()もメソッド
– クラスとインスタンスは別
– クラスは定義をするだけ
– 中身ができたものがインスタンス“`python
class クラス名:
ブロック
“`
Python3でCGIチャレンジ4 dictionary型でファイル読み書き
#作業フォルダ
ps4#作業
##index.htmlの作成
“`html:index.html
“`##cgi-binフォルダの作成
##dictWrite.pyの作成。cgi-bin配下に