- 1. 【Python】通知処理を行うための準備(参考になりそうなリンク集め)
- 2. PythonのTypedDictでkeyをOptional(undefinedかもしれない)にする
- 3. TelloEduをWifiルータに接続して、TellloをWifi子機、ルータをWifi親機の関係にする
- 4. Python3: JSON 形式の Post で受け取ったデータを redis に入れる
- 5. 【AtCoder】ABC211をPython3で解説
- 6. word2vecを簡単に試してみる
- 7. Python で開平法の手順を使った平方根の近似値を求める処理を作成してみた
- 8. InoreaderのPythonラッパーの紹介
- 9. TwitterAPIでフォローしていた散っていった仲間を見つける方法
- 10. Chalice入門
- 11. [備忘録]ax+by=cを満たす(x,y)をPythonで求める
- 12. DockerでJupyterLab環境を作る – Streamlit編
- 13. DockerでJupyterLab環境を作る – 拡張機能追加
- 14. [初心者向け]用途別で使うPythonの関数・ライブラリ一覧[Tips]
- 15. AWS CDKを使ってBoltをLambdaにデプロイする
- 16. Windows 11でROS 2を動かそうとしたら_rclpyのNoModuleErrorに無限にハマった話
- 17. Jupyter Lab3でPythonのコーディング
- 18. Python3: JSON 形式の Post を処理する方法
- 19. ROSのcatkin_makeにおけるpython3-empyのエラー
- 20. C言語と比較してPythonのforが遅いわけを処理系から調べてみた
【Python】通知処理を行うための準備(参考になりそうなリンク集め)
#初めに
Pythonを利用して、通知を行うための方法の ネタ集めのリンクとなっています
実際に自分でこれが利用できるかは別として##今の処の目標
・twitterのハッシュタグでのデータ取得と
・その中でも複数のハッシュタグを取得して、取得後に適切なテキストに書き込む
・ストリーミング再生を取得して流すとこ
・ストリーミング再生をDiscordのBot複数に同時に流せるようにする。
・DiscordのBotはコマンドラインでURLを渡すことによって再生#ネタ集めのリンク集
##通知系(api)
Lineに通知する方法
PythonからTwitterAPIを用いてDMを取得してみる
##ストリーミング再生
実際にダウンロードせずにPythonを使用してYouTubeビデオからオーディオだけをストリーミングできますか?
htt
PythonのTypedDictでkeyをOptional(undefinedかもしれない)にする
# やりたいこと
Pythonで「一部のキーは必ずあって、一部のキーはないかもしれない辞書」をtypingしたい。
TypeScriptで書くなら以下のような型を、Pythonで表現したい“`typescript
interface IMember {
lastName: string
firstName: string
middleName?: string // optional
age?: number // optional
}
“`# TL;DR
## コード
“`python
from typing import TypedDictclass IMemberRequired(TypedDict):
“””
Required keys
“””
last_name: str
first_name: strclass IMember(IMemberRequired, total=False):
“””
Optional keys
“””
middle_name: str
TelloEduをWifiルータに接続して、TellloをWifi子機、ルータをWifi親機の関係にする
###参考にしたサイト
– [Tello Eduを子機にしてwifiアクセスポイントに接続する【python】](https://qiita.com/kei31/items/b3417e084f2d75999f6f)
– [Tello eduで編隊飛行入門(Python)](https://qiita.com/Tsukkey/items/883ef749f41ff603e8d4)##最初の状態
まず最初に、TelloEduの電源を入れます。
次に、Macbook PCのWifi接続先を、TelloEduにします。![スクリーンショット 2021-07-27 0.20.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1754134/51ee7770-e5ba-889e-fcd9-225d01596019.png)
すると、Wifiの親機と子機の関係は、次の状態になります。
– 親機:TelloEduドローン
– 子機:Macbook PC![スクリーンショット 2021-07-2
Python3: JSON 形式の Post で受け取ったデータを redis に入れる
こちらのプログラムを改造しました。
[Python3: JSON 形式の Post を処理する方法](https://qiita.com/ekzemplaro/items/66f846cc9fcd640a9b8c)サーバープログラム (CGI)
“`py:redis_post.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# redis_post.py
#
# Jul/26/2021
#
# ———————————————————————
import os
import sys
import json
import cgi
import datetime
import redis
#
# ———————————————————————
def
【AtCoder】ABC211をPython3で解説
ABC211の解説。
https://atcoder.jp/contests/abc211
## A – Blood Pressure
### 解説
平均血圧を式のとおりに実装すればAC。$C = \frac{A-B}{3} + B$
### コード
“`python
a, b = map(int, input().split())print((a-b)/3+b)
“`## B – Cycle Hit
### 解説$4$つの文字列のなかに、“`H“`、“`2B“`、“`3B“`、“`HR“`が$1$つずつあるか判定する問題。
各文字列をリストに入れて、それぞれを“`count“`してすべて1であれば、“`AC“`である。また、リスト自体を比較するというやり方もある。
### コード1
“`python
slist = list(input() for _ in range(4))if slist.count(‘H’) == 1 and slist.count(‘HR’) == 1 and slist.count(‘2B’)
word2vecを簡単に試してみる
## word2vecとは?
– 言語モデルをもとに、単語をベクトル化して計算できるようにしたもの
– 学習させる言語モデルは自分で指定できる(例:NARUTOの世界観でモデルを作成するなど)## 環境
– mac os x
– jupyter notebook
– python 3.8.2## 学習済み日本語モデルを使う
1. 今回は日本語版wikipediaをもとにした学習済みモデルを使用する
http://www.cl.ecei.tohoku.ac.jp/~m-suzuki/jawiki_vector/
![スクリーンショット 2021-07-22 15.58.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1789548/f988150f-3050-7493-977c-b215098a60f2.png)2. ダウンロードしたファイルを解凍する
3. “entity_vector.model.bin”を実行環境と同じディレクトリに移動させる## モデルをロードする
“`pyt
Python で開平法の手順を使った平方根の近似値を求める処理を作成してみた
バージョン
– Python 3.8.3
# 開平法
筆算で正の数の平方根を任意の桁まで求められる方法
今回はあえてプログラムで同じ手順で平方根を求めてみました
– 参考
– [開平法の手順|思考力を鍛える数学](http://www.mathlion.jp/article/ar124.html)# `math.sqrt` で一発で平方根は出せるのでこんな処理は必要はない
“`py
from math import sqrtprint(sqrt(3)) # 1.7320508075688772
print(sqrt(100)) # 10.0
print(sqrt(111)) # 10.535653752852738
print(sqrt(277729)) # 527.0
print(sqrt(23480.352289)) # 153.233
“`**このように簡単に平方根の値は出せるので今回のようにわざわざ作る必要はありません。**
私が python と数学の勉強のために作ってみた処理になります。
InoreaderのPythonラッパーの紹介
# 概要
InoreaderをPythonで使用した場合に便利なライブラリがあったので紹介## 内容
– [python-inoreader](https://github.com/Linusp/python-inoreader)
– Inoreader APIのPythonラッパー## 便利な点
– インストールが簡単
– pipコマンドを実行するだけ
– 重複記事の削除を無料ユーザーでも可能
– 重複記事の削除は有料ユーザでないと画面上からは出来ないが、インストール後は下記コマンドで実行可能
– `inoreader dedupe`
– 未読記事を一括で取得可能
– `inoreader fetch-unread `### 使用方法
– 下記コマンドでインストール
– `pip install git+https://github.com/Linusp/python-inoreader.git`
– 設定ファイルを環境変数$HOME配下に下記の通り作成“`.inoreader
[auth]
appid = y
TwitterAPIでフォローしていた散っていった仲間を見つける方法
#未経験エンジニアの交流はTwitterで
良くその様な話を耳にする。
実際自分も未経験転職挑戦中にTwitterを使って情報交換&モチベーションUPにつなげていた。
そんな中、ふとフォローリストを確認すると日に日に非アクティブになって行く仲間たちが多くて度肝を抜かれたのも記憶に新しい。
屍となったかつての仲間たちをいつまでもフォローしておくのは個人的には嫌だった。
だからと言ってちまちまプロフィールを確認して生存確認をするのは面倒だと感じたのでPythonに働いてもらうことにした。
(TwitterAPIの取得方法は省略します)##ソースコード
“`Python
import tweepy“”””
Twitterのキー
“””
consumer_key = ‘取得したキー’
consumer_secret = ‘取得したキー’
access_token = ‘取得したキー’
access_token_secret = ‘取得したキー’“””
Twitterオブジェクトの生成
“””
auth = tweepy.OAuthHandler(consumer_key, c
Chalice入門
# Chaliceとは?
ChaliceはAmazon公式のPythonライブラリで、AWS製のサーバーレスフレームワークツールであり、boto3, botocoreの開発者による継続的なメンテナンスがされています。
コマンドでAWS LambdaとAPI Gatewayの設定を済ませてくれます。# Chaliceの導入
## Chaliceのインストール
pipコマンドを利用してPythonパッケージのChaliceをインストールします。“`shell
$ pip install chalice
“`## プロジェクトの作成
“`shell
$ chalice new-project {任意のプロジェクト名}
$ cd {任意のプロジェクト名}
“`## デプロイ
app.pyの中身を確認“`bash
$ cat app.py
“`“`python:app.py
from chalice import Chalice
app = Chalice(app_name='{任意のプロジェクト名}’)
@app.route(‘/’)
def
[備忘録]ax+by=cを満たす(x,y)をPythonで求める
# はじめに
先日、大学入試の問題を解いていたとき、
ユークリッドの互除法に関する入試問題の解を確認するため、
Pythonでコーディングを行ったので、備忘録として残します。
Python環境下にて、是非お使いください。“`py
#sympy内の関数を使用
from sympy import *#変数x,yの定義と定数a,b,cの入力
x = Symbol(‘x’)
y = Symbol(‘y’)
a,b,c = map(int,input(“a,b,c=??”).split())#方程式の定義
expr1 = a*x+b*y -c#xを求める
expr2 = a*x % b -c%b
i = 0
while expr2.subs(x,i) !=0:
expr2.subs(x,i)
i += 1#求めたxの値を代入し、yを求める
expr1 = expr1.subs(x,i)
sol = solve(expr1,y)#出力
print(“x=”+str(i))
print(“y=”+str(sol[0]))
“`# 使い方
▶a,b,c
DockerでJupyterLab環境を作る – Streamlit編
Streamlitを表示させながらJupyterLabでコードを書きたいと思い、
Dockerで環境を作成しました。前提の話はこちらの記事で書いています。
https://qiita.com/plumfield56/items/335cad3b58afe55f6529
基本的には上記の内容とほぼ変わらないですが、
docker-compose.ymlでimageを2つ作成している点がことなります。# フォルダ構成
“`
Dockerfile
docker-compose.yml
requirements.txt
src
└ app.py
“`# Dockerfile
“`dockerfile
FROM python:3COPY requirements.txt .
RUN pip3 install –upgrade pip && \
pip3 install –no-cache-dir -r requirements.txt && \
pip3 install jupyterlabWORKDIR /src
COPY /src
DockerでJupyterLab環境を作る – 拡張機能追加
[DockerでJupyterLab環境を作る](https://qiita.com/plumfield56/items/335cad3b58afe55f6529)では基本的なJupyterLab環境構築の方法をしめしたので、
この記事では拡張機能の設定をしていきたいと思います。[オレオレJupyterlab環境をDockerで作った](https://zenn.dev/fuchami/articles/d1625ac784fe5d)を参考に最低限必要なコードに絞ってみました。
# jupyterlab-kiteのインストール
“`dockerfile:jupyterlab-kiteで必要なDockerfile
FROM python:3# Node.jsのインストール
RUN curl -sL https://deb.nodesource.com/setup_12.x |bash – \
&& apt-get install -y –no-install-recommends \
nodejs# pythonライブラリのインストール
COPY re
[初心者向け]用途別で使うPythonの関数・ライブラリ一覧[Tips]
# はじめに
Pythonには様々なライブラリ・関数が、標準・外部ともに存在します。
しかし、その全てを把握できていない人も大勢いると思います。今回は、以下の3点に対しての解決案として関数やライブラリをご紹介します。
・Pythonで何がライブラリや組み込み関数で実装されてるのか分からない人
・他人のコーディングを見てもすぐに理解できない人
・作りたいものはあるが、どう作っていいか手も足も出ない人この記事を通して、以上の苦手意識を少しでも解消していただけると幸いです!!
QiitaもしくはWebブラウザのお気に入りに登録し、困った時に都度ご活用ください!!▶この記事はこれからも更新する予定ですので、コメントにてリクエストお待ちしております!
# 目次
1. [文字列の初め/最後に特定の文字列があるか調べたい](#文字列の初め最後に特定の文字列があるか調べたい)
– [ライブラリにどんなモジュールや関数があるのか一覧で知りたい](#ライブラリにどんなモジュールや関数があるのか一
AWS CDKを使ってBoltをLambdaにデプロイする
# この記事はなに?
SlackBotにハロワをさせるだけです?
「既存の記事と多少違う!」という点はPython + CDK + Boltで実装する!という点です。BoltはSlackの公式ライブラリーで、Slackを使ったアプリが簡単に作れるやつです!
これを使うにはバックエンドのサーバーが必要です。
ここを今回はAPIGateway + Lambdaでやっていきます。
またこのインフラ&アプリはPython + CDKで実装します!という内容の記事?
# 使ったライブラリー
– [AWS CDK](https://aws.amazon.com/jp/cdk/)
– [awsgi](https://github.com/slank/awsgi)
– [Flask](https://flask.palletsprojects.com/)
– [Bolt](https://github.com/slackapi/bolt-python)Lambdaで直接Boltは使えないのでFlaskを利用し、
さらにLambdaで直接Flaskは使えないので、awsgiを利用する感
Windows 11でROS 2を動かそうとしたら_rclpyのNoModuleErrorに無限にハマった話
また無限に時間を溶かしてしまいました
## 概要
とある試みのため,WSLではなくWindows上でROS 2を入れて動かしたかったんですが,
Pythonのノードを立ち上げようとすると`NoModuleError`が出て立ち上がりませんでした.
ごちょごちょやってる間に動くようになったので備忘録を兼ねて解決方法を書きます
(Windows11で,と書いてますがたぶんWim10でも同様だと思います)##環境
* AMD Ryzen 7 Pro 4750U
* Windows 11 ※1
* Visual Studio 2019 Community
* ROS 2 foxy ※2
* Python 3.8.3※1: WSLgを使いたくて,プレビュー版のWin11を入れて試しています.Win10でも同様になると思っていますが未検証です
※2: ROS 2のインストールは[https://docs.ros.org/en/foxy/Installation/Windows-Install-Binary.html#downloading-ros-2](https://docs.ros.
Jupyter Lab3でPythonのコーディング
# Jupyter Lab3でPythonのコーディング
## Jupyter lab3の起動
Anaconda promptを起動して、jupyter labと打つとJupyter Labがデフォルトのブラウザで立ち上がります。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1769855/6af51220-12d7-1d3c-966c-081ce9b25c4d.png)
## 新規のNotebookを作る
上記の画面のpython3のアイコンか、File>New>Notebookで新規ノートブックが作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1769855/0437ff39-5b49-6a83-2a3a-9b25ca4a217d.png)## Pythonのコーディングをして実行
a = 2020, b = 2021, c = 2022 として a+b+cを実
Python3: JSON 形式の Post を処理する方法
サーバープログラム (CGI)
“`py:sum_up_json.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# sum_up_json.py
#
# Jul/24/2021
#
# ———————————————————————
import os
import sys
import json
import cgi
#
# ———————————————————————
if os.environ[‘REQUEST_METHOD’] == ‘POST’:
length, _ = cgi.parse_header(os.environ[‘CONTENT_LENGTH’])
data = sys.stdin.buffer.read(int(l
ROSのcatkin_makeにおけるpython3-empyのエラー
python3でセットアップしたrosをコンパイルする際に以下のようなエラーが出た場合の対処方法
“`
CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message):
Unable to find either executable ‘empy’ or Python module ‘em’… try
installing the package ‘python3-empy’
“`catkin_make時にpython3での実行ファイルのパスを指定する
“`
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
“`
C言語と比較してPythonのforが遅いわけを処理系から調べてみた
処理系は完全に初心者なので間違っている所を指摘して頂けると嬉しいです。
# はじめに
Pythonのfor文って遅いですよね。
競技プログラミングでPythonを使う際、実行時間を意識するときはより速いPyPyで提出しています。
この遅い原因はPythonの実装のどこから来るものなのでしょうか?
簡単に挙げられる例としてスクリプト言語、動的型付け言語、GILがあるからなどでしょうか。
この中で単純なfor文と関係してきそうなのは前の2つです。
一行ずつ実行するならfor文の中のコードは毎回コンパイルされて実行されていると考えるのは自然だと思います。
しかし、あまりにも効率が悪いのでfor文は初めに一括でコンパイルされてキャッシュされていそうです。
そう考えるとスクリプト言語はfor文にあまり影響を与えていなさそうですが、あくまで憶測なので実際にコードを追わないとわからないです。
次に、動的型付け言語だと何故遅くなるのか。これはコードの実行の度に型チェックをする必要があるからです。
例えば文字列型と数値型の足し算をしようとしたときにエラーを出さなければならず、この為に毎回型チェックが