- 1. 【AtCoder】ABC214をPython3で解説(ABCD)
- 2. Pythonでエラーなく落ちる(Pillowのバージョン変更で対応)
- 3. 10行くらいのPythonコードでTikTokから動画情報を取得する方法
- 4. リモートカメラシステム (MQTT ブローカーに画像をそのまま送る)
- 5. リモートカメラシステム(MQTT ブローカーの検証)
- 6. ModuleNotFoundError: No module named ‘virtualenv.seed.via_app_data’
- 7. python3 リスト内包表記のデバッグ
- 8. GCPのCloud ShellのPython2.7.16をPython3.7.3に移行する
- 9. AtCoder参加記録 No.2 ーABC214
- 10. AtCoder参加記録 No.1ーABC195
- 11. AtCoder参加記録 No.0
- 12. pythonを使ってnetatmoのapiを叩く
- 13. 多くのPythonコードに型アノテーションしてみたので色々所感を書いてみる
- 14. SitarHarmonicsさんが書いた「物体の動き」を可視化する処理に、一般物体認識器の解析結果を重ねて表示するコードをMP4動画で動かして成功した件
- 15. 【ソース公開】コロナが怖いので冷蔵庫で生存報告するシステム作った
- 16. OpenAI Gymで環境を自作しKeras-RLで強化学習させてみた
- 17. SESAME3をWEB API経由で操作する
- 18. フィボナッチ螺旋をPython3+matplotlibで描く
- 19. Tkinterでダイアログをカスタマイズする方法
- 20. Python で文字列の末尾の改行を削除する
【AtCoder】ABC214をPython3で解説(ABCD)
ABC214のA-D問題の解説。
https://atcoder.jp/contests/abc214
## A – New Generation ABC
### 解説条件分岐の問題。
問題文のとおりに`if`を書いてあげると`AC`。### コード
“`python
n = int(input())if n <= 125: print('4') elif n <= 211: print('6') elif n <= 214: print('8') ``` ```python # 短縮コード n = int(input()) print(4 if n <= 125 else 6 if n <= 211 else 8) ``` ## B - How many? ### 解説 $a+b+c \leq S$かつ$a \times b \times c \leq T$を満たす非負整数を求める問題。 $(a, b, c)$の組み合わせなので、条件分岐と三重ループで求めることができる。 ### コード ```python # 愚直 s, t =
Pythonでエラーなく落ちる(Pillowのバージョン変更で対応)
## 状態の概要
VSCodeでF5で実行してみて、エラーも何も出ずに終了してしまう問題。自分はPyAutoGUIで起きました。コメントを入れながらデバッグしていると、`import`のところで問題が起きてるっぽい。深く追ってみると、Pillowの中でエラーが起きている…
“`Python
# import先のimport先の…と追っていくときに便利なコード
print(f’##{__file__}################################’)
“`## 解決策
自分の場合はPillow==8.3.1が悪さをしているみたいなので、バージョンを少し戻してみればOK。“`shell
pip install Pillow==8.2
“`
10行くらいのPythonコードでTikTokから動画情報を取得する方法
一応、TikTokは開発者向けにEndpointsの提供はしているんですが、TikTok自体のメインがモバイルなので、Webは完全に二の次という感じです。個人的には、TikTokから提供されているWebアプリと比べるとWeb向けのEndpointsはちょっと物足りないというかえらくシンプルという印象です。
https://developers.tiktok.com/
本国の開発者向けにはもう少し色々あるみたいなんですが、国外向けのTikTokのAPIはあんまり力入れていない印象です。下記はページに掲載されているサンプルです。
[oEmbed](https://oembed.com/)を利用したとてもシンプルなものになっています。Example
`https://www.tiktok.com/oembed?url=https://www.tiktok.com/@scout2015/video/6718335390845095173`response
“`json
{
“version”: “1.0”,
“type”: “video”,
“title”: “S
リモートカメラシステム (MQTT ブローカーに画像をそのまま送る)
次のシステムを構築するための検証です。
[Grove IoT スターターキット for SORACOM で作るリモートカメラシステム](https://qiita.com/ekzemplaro/items/541b82908cec46f6aa7b)調べている過程で、MQTT ブローカーに画像をそのまま送れることが分かりました。
次のページを参考にしました。
[mosquitto,paho-mqttで画像のやりとり](https://qiita.com/masa-ramenO/items/6dcb706107e9307a599e)パブリッシュ
camera.jpg という画像を送ります。“`sh:go_pub.sh
#
# go_pub.sh
#
# Aug/17/2021
#
BROKER=’violet.local’
TOPIC=’sample/imageTopic’
#
mosquitto_pub -h ${BROKER} -p 1883 -t ${TOPIC} -f camera.jpg
#
“`サブスクライブ
受け取った画像を output.jpg
リモートカメラシステム(MQTT ブローカーの検証)
次のシステムを構築するための検証です。
[Grove IoT スターターキット for SORACOM で作るリモートカメラシステム](https://qiita.com/ekzemplaro/items/541b82908cec46f6aa7b)>画像の受け渡しが MQTT ブローカー経由でできるか。
>画像ファイルは、計測した数値データと較べて、かなり大きい。以下のプログラムを作成しました。
>jpg を JSON に変換するプログラム
>JSON を publish するプログラム
>subscribe で JSON を受け取るプログラム
>JSON を jpg に変換するプログラムjpg を JSON に変換するプログラム
“`py:jpg_to_json.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# jpg_to_json.py
#
# Aug/17/2021
#
# ——————————————————————
ModuleNotFoundError: No module named ‘virtualenv.seed.via_app_data’
### 実行環境
Ubuntu 20.04.2 LTS
Python3.8### 状況
pipenv install コマンドを実行し、仮想環境を作成しようとしたときにエラー“`sh
Creating a virtualenv for this project…
Pipfile: /home/youichi_io/work/Pipfile
Using /usr/bin/python3.8 (3.8.10) to create virtualenv…
⠹ Creating virtual environment…ModuleNotFoundError: No module named ‘virtualenv.seed.via_app_data’✘ Failed creating virtual environment
[pipenv.exceptions.VirtualenvCreationException]:
Failed to create virtual environment.
“`### 思い当たる要因
以前、Anacondaをインスト
python3 リスト内包表記のデバッグ
“`python:python3
def debug(w):
print(f’word:{w}’)
return wlist_debug = [“apple”, “lemon”, None, “cat”, “inu”]
list_debug = [debug(s) for s in list_debug]
print(list_debug)
“`“`text:out
word:apple
word:lemon
word:None
word:cat
word:inu
[‘apple’, ‘lemon’, None, ‘cat’, ‘inu’]
“`
GCPのCloud ShellのPython2.7.16をPython3.7.3に移行する
##GCPでPython3が使いたい!
LINEBOTかLINE NotifyをGCPでPythonを定期で動かして作ろうとしていました。
そこでGCPのCloud Shellを使うことになりました。
###Cloud ShellのPythonのバージョン確認
Cloud ShellのPythonのバージョンを確認してみると…“`shell:cloud_shell
$ python -V********************************************************************************
Python 2 is deprecated. Upgrade to Python 3 as soon as possible.
See https://cloud.google.com/python/docs/python2-sunsetTo suppress this warning, create an empty ~/.cloudshell/no-python-warning file.
The command wil
AtCoder参加記録 No.2 ーABC214
#ABC214
今回参加したABC214についての参加記録2021年8月14日(土)のAtCoder Beginner Contest 214でした。
https://atcoder.jp/contests/abc214
##結果
A,B問題を正解
レート:16→28 (+12) Highest!
順位:7073/ 8405
時間: A問題53:33 B問題70:09
パフォーマンス:90##詳細
###A問題
[問題](https://atcoder.jp/contests/abc214/tasks/abc214_a)提出コード(AC)
“`python:A問題.py
a = int(input())
if a>=212:
print(8)
elif a>=126:
print(6)
else:
print(4)
“`[提出コード詳細](https://atcoder.jp/contests/abc214/submissions/25045449)
###B問題
[問題](https://atcoder.jp/contests/
AtCoder参加記録 No.1ーABC195
#ABC195
自分のモチベーションと記憶用にAtCoder参加記録を付けることにしました初参加は2021年3月13日(土)のパナソニックプログラミングコンテスト(AtCoder Beginner Contest 195)でした。
https://atcoder.jp/contests/abc195
##結果
A,C問題を正解
レート:0→16
順位:5007/7679
時間: A問題55:58 C問題97:08
パフォーマンス:330##詳細
###A問題
[問題](https://atcoder.jp/contests/abc195/tasks/abc195_a)提出コード(AC)
“`python:A問題.py
m ,h =map(int,input().split())
if h%m==0:
print(‘Yes’)
else:
print(‘No’)
“`[提出コード詳細](https://atcoder.jp/contests/abc195/submissions/20892291)
###B問題
[問題](https://a
AtCoder参加記録 No.0
##挨拶
始めましてこんどうです。
プログラミングもQiitaも初心者ですが自分用に記録をつけようと思います。
AtCoder参加記録を付けるうえでもし参考にする人がいたとき用に自分の経歴について書いておこうと思います。##バックグラウンド
国立大学工学部化学系大学3年生
プログラミングは大学2年の時に趣味で始める
大学2年の後期に[東京大学の公開講座GCI 2020Winter修了](https://gci.t.u-tokyo.ac.jp/gci-2020-winter/)
大学3年生の4月にITパスポート取得
TOEIC 560点取得 (2021年7月)##これまでの学習
プログラミングを始めようと思ったきっかけは、コロナで時間が余ったこと、プログラミングができたらかっこいいな、知識があって損はないよね!というすごく漠然とした理由で学習し始めました。
私は基本的に独学でプログラミングを学習しました。
すらPyや独学プログラマーで言語の基礎を学習したのち、データ分析に興味をもち東京大学で機械学習の講座をしているとのことなので参加しました。
また、[サポーターズ](https:
pythonを使ってnetatmoのapiを叩く
## netatmoとは?
室温とか湿度とかを計測するIoTの機械です。
この機械の中央管理のServerがあり、APIが生えており、こちらのAPIを利用します。
本記事ではAPIをpythonで叩くところまでを実施します。https://www.netatmo.com/en-us
## どのようなデータが取れるのか?
まずは管理画面のスクリーンショットを添付します。
![スクリーンショット 2021-08-13 18.05.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217551/7ceaddf9-29bf-b533-e059-d2fbd6f48fd3.png)
上の画像はnetatmoの管理画面のスクリーンショットです。
左枠にある、気温、湿度、気圧、CO2濃度、騒音を取得できます。
またこれら追加してAPIの場合には、緯度経度のデータも取得できます。## データ取得の方法
認証はOAuth2が使われてい使われているため、[Netatmo ウェザーステーションのAPIを使
多くのPythonコードに型アノテーションしてみたので色々所感を書いてみる
「JavaScriptをTypeScriptへの移行してみた」的な記事を結構見かける一方で、Pythonの型アノテーション関係で近い移行記事などはあまり見ないので「Pythonで型アノテーションってどうなの?」という点などを雑多に記事にしてみました。
# 今まで型アノテーションを使ってきた状況と規模感・前提など
– お仕事では50万行程度の残存するPythonコードで8割強くらいのカバレッジです。ファーストコミットから7年目くらいなので、Python2系から3系へ移行 → 型アノテーションの利用を本格的に開始…としてきたので途中からの型アノテーションの導入です。
– プライベートでは「[apysc](https://github.com/simon-ritchie/apysc)」と「[numdoclint](https://github.com/simon-ritchie/numdoclint)」というPyPI(pip)登録してある2つのライブラリで型アノテーションしてあります。numdoclintは途中からの型アノテーションの利用の開始、apyscは最初から型アノテーションを使う
SitarHarmonicsさんが書いた「物体の動き」を可視化する処理に、一般物体認識器の解析結果を重ねて表示するコードをMP4動画で動かして成功した件
__前回の記事__の続きです。
__( 前回の記事 )__
https://qiita.com/electronics_diy721/items/114fd7ee50afb8e28d26
__前回__は、SitarHarmonicsさんがウェブサイトで公開しているコードの全体を復元して、動画の各コマに登場する__物体の移動の方向と速さを、線の向きと大きさで可視化して表示__するコードを動かしてみました。
__今回__は、そうした処理と__同時に一般物体認識器を並行処理で走らせる__ことで、動画を再生しながらリアルタイムに__次の3つの情報__を、もとのフレーム画像に書き込んで表示させることに成功しました。
1. __各物体の運動ベクトルの可視化__
1. __各物体の(フレーム画像内での現在)位置を四角枠(矩形)で囲んで表示__
1. __各物体のラベル名を表示__###実行結果
“`bash:Terminal
% python3 mp4_movie_file_motion_vector_with_object_detection.py –file_path
【ソース公開】コロナが怖いので冷蔵庫で生存報告するシステム作った
備忘録がてら
# 目次
1. [きっかけ](#きっかけ)
1. [構想](#構想)
1. [成果物](#成果物)
1. [買ったもの](#買ったもの)
1. [そのほか使ったもの](#そのほか使ったもの)
1. [ラズパイのセットアップ](#ラズパイのセットアップ)
1. [電子工作](#電子工作)
1. [LINE Notifyの登録](#line-notifyの登録)
1. [開発](#開発)
1. [システム構成](#システム構成)
1. [プログラム](#プログラム)
1. [システムの監視](#システムの監視)
1. [システムの自動起動](#システムの自動起動)
1. [さいごに](#さいごに)
1. [参考サイト様](#参考サイト様)# きっかけ
一人暮らしなので
コロナ
↓
人知れず死ぬ
が怖いので危篤状態の検知+生きていることを逐次報告できるシステムを作ろうと思った。
# 構想
やりたいことは
– 自宅にセンサーを取り付けて、24時間検知
– 日常生活の動作から検知できて、シ
OpenAI Gymで環境を自作しKeras-RLで強化学習させてみた
強化学習の勉強のためにゲーム環境を自作してみました。その際、苦労したことをメモとして残します。
#動作環境
今回使用した主なプログラムを下に記載します。
* Windows10Home
* Anaconda 4.10.3
* Tensorflow 2.5.0
* Keras-RL2
* OpenAI Gym 0.18.3
* Pygame 2.0.1#ゲームの内容
今回作成したゲームは「地球帰還ゲーム」です。宇宙船を操縦し地球に帰るだけの**しょぼい**ゲームです。
![ufo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593076/02b09e84-6f4d-9015-3ef8-36712eee954b.png)
左の小さい白い三角形が宇宙船で、右の水色の丸は地球です。宇宙船は上か下に進路を少しだけ変更できますが、速度は変えることができません。宇宙船が画面外に出るか、進路を上げすぎて真上を向くか、もしくは真下を向くと、ゲームオーバー(失敗)です。無事、宇宙船を地球に到達させることができ
SESAME3をWEB API経由で操作する
いろいろあって会社オフィスの1FにSESAME3を導入しました。
SESAME3+スマホの組み合わせでも十分便利だけど、やっぱりWEB API使いたい!
というわけで始めました。
(1Fだけはスマホで開けてね、って言っても社内から反発ありそうだし…)さほど難解なところもないので、[公式ページ](https://doc.candyhouse.co/ja/SesameAPI)を見ながら進めれば大丈夫です。
(載せたコードもほぼ公式そのままです)## 導入環境
– Raspberry Pi 4
– Ubuntu Server 20.04 LTS
– Python 3.9.6
– [SESAME3](https://jp.candyhouse.co/collections/frontpage/products/sesame3)
– [SESAME3用 Wifiモジュール](https://jp.candyhouse.co/collections/frontpage/products/new-wifi?variant=33274961363007)## WEB
フィボナッチ螺旋をPython3+matplotlibで描く
# はじめに
美しいフィボナッチ螺旋を自分で描いてみたかったのです。
螺旋は、原点Oを始点としてまず右下に伸び、反時計回りに描くようにしました。
# 環境
– Python 3.9.6
– matplotlib 3.4.2
– MacOS 11.5.2# 手法
項ごとに、以下のように処理し、あたかも1本のグラフであるかのように見せています。
1. 90度の弧を描く
2. 各項の値を弧の半径とする
3. 弧を90度ずつ回転させる
4. 弧の中心をオフセットする1本のグラフとして、x・yの変域を細かく設定して描く方法もあるのでしょうが、今回はその方法は採っていません。
# コード
### モジュールのインポートとグラフ周りの設定詳細は割愛。
グラフの範囲は縦横-25から25にしています。draw_areaで定義しています。“`python
# 使用するモジュールのインポート
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches#
Tkinterでダイアログをカスタマイズする方法
## 概要
GUIオブジェクトを作っていく中で、既に用意されているダイアログだけでなく、
ユーザー自身でカスタマイズしたダイアログを使用したくなる場面があります。カスタマイズ可能なダイアログとして、Tkinterには**simpledialog.Dialog**があります。
カスタマイズ方法について、本記事で解説いたします。
## 環境
Python3系
## デフォルト状態のダイアログ
何もカスタマイズしない状態では、**simpledialog.Dialog**に**OK**と**Cancel**のボタンしかありません。
![tkinter_demo_dialog.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302006/c4e60046-7c34-3db5-6621-38952923223d.jpeg)
上記は**root**ウィンドウです。**ダイアログ表示**ボタンを押すと以下のダイアログが表示されます。![tkinter_demo_simple_dialog_no_c
Python で文字列の末尾の改行を削除する
#急ぐ人向け
`str_line.rstrip(‘\r\n’)` を使いましょう。
“`ptyhon
line_content = string_line.rstrip(‘\r\n’)
“`
(注: Perl の `chomp` と異なり、元の文字列を保持する非破壊操作です。)#以下、この記事を書いた理由(愚痴)
誰もが通ると思われる道だが、きっかけは「文字列を splitlines してから iterate するの、効率悪いんじゃね?」って思ったこと。
“`python
for line in string_content.splitlines():
print(line)
“`google って調べて、
[stack overflow] (https://stackoverflow.com/questions/3054604/iterate-over-the-lines-of-a-string) の質問と回答にたどり着いた。そこの回答を見て、「改行が `\r\n` の場合に対応するにはどうしたらいいか」
で Bing で「python chom