- 1. Pythonで自分専用のALEXAを作りました
- 2. Python3でRM mini3をコントロール
- 3. Python チュートリアル第4版のそのままでは動かないコードに加筆して解説する試み
- 4. VSCodeでPython書いてる人はとりあえずこれやっとけ〜
- 5. OpenAI gymでAtariをインストールするまで
- 6. DjangoのWebアプリケーションにユーザ認証を追加する(django-allauth)
- 7. スクレイピイング途中のAttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’の解決策
- 8. 投稿の前に
- 9. `python get-pip.py`実行時にエラー(This script does not work on Python 3.6 The minimum supported Python version is 3.7.Please use https://bootstrap.pypa.io/pip/3.6/get-pip.py instead.)
- 10. 【Python】娘(当時1歳半)との尊い会話シミュレーター
- 11. [公開版]AtCoder Beginner Contest せっかくだから書いたコードを公開(随時更新)〜Python編〜
- 12. ラズパイで作る防犯システム
- 13. pythonコマンドが効かない
- 14. Pythonで学生証を読ませる(felica, nfcpy)
- 15. python cheatsheet
- 16. seleniumをインストールして、pythonでお試し利用
- 17. FastAPI: DynamoDB のデータを読む
- 18. FastAPI: JSON ファイルを読む
- 19. aws lambda のスクリプトの中で、greengrass v2のコアデバイス一覧を全件取得する
- 20. python3 ベクトルの基本
Pythonで自分専用のALEXAを作りました
# 1.はじめに
AmazonのAlexaをpythonで作りたいと思い、試行錯誤を繰り返し、ようやく出来上がりました。
オリジナルのAlexaとはほど遠いですが、条件分岐を記述することである程度の質問には答えてくれました。
これからも改良を続けていきます。# 2.環境
windows10# 3.準備
## Speech_recognitionのインストール
“`
$pip install speechRecognition
“`
## pyttsx3のインストール
“`
$pip install pyttsx3
“`
## pywhatkitのインストール
“`$pip install pywhatkit
“`
## wikipediaのインストール
“`
$pip install wikipedia
“`
# 4.実装“`main.py
import speech_recognition as sr
import pyttsx3
import pywhatkit
import wikipediarecognizer = sr.Recogn
Python3でRM mini3をコントロール
以前はBlackBeanControlなどにPython2が必要だったのが、
Python3だけで使えるようになったのでセットアップメモ# 環境
Ubuntu 22.04
Python 3.10.4
RM mini 3
※多分Raspberry Pi OSでも可能# 前提
既にRM mini 3がネットワークに繋がっていること。# python-broadlinkインストール
pipでpython-broadlinkをインストール
“`bash
sudo apt install git pip
pip3 install broadlink
“`必須ではないがテスト用にcliを取ってくる
“`bash
cd
git clone https://github.com/mjg59/python-broadlink.git
cd python-broadlink/cli
“`#### 動作確認
こんな感じでRMMINIが見つかればOKです。“`bash
$ ./broadlink_discovery
Discovering…
#########
Python チュートリアル第4版のそのままでは動かないコードに加筆して解説する試み
Python 3 エンジニア認定基礎試験の公式テキストとして、オライリーのPythonチュートリアル第4版が指定されています。
しかしチュートリアルとはいいつつも完全な初心者が読むにはやや不親切な場所が目立ちます。
特にそっくりそのまま写しても実行できないコードが何の注意書きもなく書かれているのは初心者泣かせです。
なので、私NMRが(自信はありませんが)加筆することで最低限動くコードとしてみようかなと思います。私自身Python初日かつ、経験は浅いので修正箇所を見つけた場合はなるべくわかりやすく教えていただけると助かります。
また、熟練者から見ると「その言葉遣いは誤解を招く」などあると思います。
そういった表現の訂正も歓迎です。第4章 P24のfor文
戦略 コピーをかけるのパターン
“`
# usersは辞書オブジェクトです。
# key:valueの形で値を保存します。
users = {1: ‘active’, 2: ‘inactive’}# ここでusersをコピーしています。copy()もitems()もPythonで使えるメソッドです。
# メソッ
VSCodeでPython書いてる人はとりあえずこれやっとけ〜
## はじめに
Pythonはコードが汚くなりがち(個人的にそう思う)
そんなPythonくんを快適に書くための設定を紹介します。## 拡張機能編
ここでは **Pythonを書きやすくするため** の拡張機能を紹介していきます。### 1. Error Lens
#### before
「コード書いたけど、なんか波線出てるよ?」
記述に問題があった場合、デフォルトでは波線が表示されるだけ。。。
OpenAI gymでAtariをインストールするまで
gymの仕様変更に伴って,Atariのインストール手順が少し変化したので,自分用のメモ
## インストール方法
“`shell
pip install gym[atari]
pip install autorom
pip install gym[accept-rom-license]
“`
gym経由でatariをダウンロードするのに加えて,自前でAtari ROMをインストールする必要がある.一応,ROMの使用は研究目的のみ可みたいなことが書いてあったりするので,その辺を注意する必要がある.## 備考
gym==0.19.0だとROMをインストールしなくても,gym[atari]だけでAtariを動かすことができる.ただし,Defenderのゲームだけgym.makeするとハングアップする現象が確認されたので,もしDefenderで実験したい場合は上記で示した最新パージョンでのセットアップを行う必要がある.
DjangoのWebアプリケーションにユーザ認証を追加する(django-allauth)
# 1. はじめに
前回の「[DjangoでHello Worldを表示する](https://qiita.com/t-shirayama/items/bc18d924dc672c7215cd)」で作成したWebアプリケーションにユーザ認証を追加していきます。# 2. Djangoのユーザ認証について
Djangoは標準でユーザ認証システムを搭載しています。Djangoの複数のビューを使って、ログイン、ログアウト、パスワード管理を行うことができますが、認証ビューに対してデフォルトのテンプレートはありません。
そこで今回はテンプレートも含まれるdjango-allauthを利用し、さらに簡単にユーザ認証を追加します。# 3. django-allauthのインストール
pipコマンドでdjango-allauthをインストールします。
“`
pip install django-allauth
“`
# 4. setting.pyの変更
setting.pyにユーザ認証の設定を追加します。追加や変更していない箇所は省略しています。“`setting.py
import
スクレイピイング途中のAttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’の解決策
## 課題
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1446396/1bd0fa63-0fc3-72f5-8ea3-0dc2ecb6de98.png)
JupyterLabでスクレイピングを行おうとしたら
AttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’
とのこと。## 仮説
・タイプミス
・取得しようとしてる場所がおかしい## 原因
結局仮説は外れており、ぐぐったらすぐ出てきた。
seleniumのバージョン4以上から、find_element_by_xxxのメソッドが使えないみたい。
以下コマンドでバージョンを確認してみると…“`
pip list
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1446396/5a7b6657-11db-fedb-18f3-a
投稿の前に
投稿の前に,単純な準備を
コードブロックについて
単に \`\`\` とする人が多いですが,言語により,
たとえば Python ならば \`\`\`Python としましょう注釈記号 # の後には 半角空白を置きましょう
その他,プログラムの書式については,多くありますが,たとえば
https://python.keicode.com/lang/control-basic-rule.php
その他を見ましょう。
人様に見せるプログラムは,動けばいいというものではないのです。
`python get-pip.py`実行時にエラー(This script does not work on Python 3.6 The minimum supported Python version is 3.7.Please use https://bootstrap.pypa.io/pip/3.6/get-pip.py instead.)
`python get-pip.py`実行時にエラー
“`
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py
ERROR: This script does not work on Python 3.6 The minimum supported Python version is 3.7. Please use https://bootstrap.pypa.io/pip/3.6/get-pip.py instead.
“`エラーログのうち、以下に素直に従うことで解決
> `Please use https://bootstrap.pypa.io/pip/3.6/get-pip.py instead.`“`
$ curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py
$ python get-pip.py
# OK
“`# 参考
https://www.bioerrorlog.work/
【Python】娘(当時1歳半)との尊い会話シミュレーター
## 概要
娘(当時1歳半)との尊い会話のシミュレーターを、Pythonで再作成しました。
ExcelVBAバージョンはこちら。
https://qiita.com/AnPanda/items/da66bbf657e8712f1322
## コード
“`python
import randomwords = [“ばなな”, “もも”, “すいか”, “りんご”, “ぱんだ”,
“いぬ”, “ねこ”, “たこ”, “いか”, “なっとう”]
n = random.randint(1,6) #1-6でランダムfor i in range(n): #質問を最大6回繰り返す
nani = input(“なーにーなーにー? >>”)if nani == “”: #空白の場合、再度質問
continue
elif nani in words: #単語リストに存在する場合、応答
print(nani + “!”)
else: #単語リストに存在しない場合
yesno = input(“
[公開版]AtCoder Beginner Contest せっかくだから書いたコードを公開(随時更新)〜Python編〜
# AtCoder Beginner Contest 261
https://atcoder.jp/contests/abc261/tasks/abc261_c
## C – NewFolder(1)
“`python:一部TLE
n=int(input())#[文字列,回数]
s=[]
#sの中に、同文字列があるかの判定変数
ok=False#最初の行については、例外処理
current_char=input()
print(current_char)
s.append([current_char,1])#n回
for i in range(n-1):
#新たに読み込む文字列
current_char=input()
#もし、すでに出現した文字列の場合
for j in range(len(s)):
if s[j][0]==current_char:
print(current_char+”(“+str(s[j][1])+”)”)
#出現回数を+1
s[j][1]+=1
ok=True
ラズパイで作る防犯システム
# こんな感じのが出来上がります
https://drive.google.com/drive/u/0/folders/167T2ZkFCb-YmOti_iWxH_3-KOo-6vbMA# 動機
自分が外出時誰かが家に侵入したことを報告し、その侵入者を撃退するため。# 目的
Webカメラと人感センサーで侵入者を感知、それと連動して圧電ブザーを鳴らしたり人の声をopenjtalkで侵入者を撃退する。同時にLINEで侵入者の年齢、性別、顔写真を主人に報告する防犯システムの開発。# 機能ポイント
人感センサーが反応すると、webカメラが侵入者の顔を撮影。
侵入者の顔をディテクトする。
侵入者の年齢を判定。
侵入者の性別を判定。
感知したことで圧電ブザーによって警報音を出す。
圧電ブザーの音量、音程を調節するため、用意された抵抗の中で最小の200Ωにセット。「ドレミファソラシド」とメロディーを奏でる。
スイッチを押すことで、監視をスタートさせる。
スピーカーでopenjtalkツールによって人間の声を発する。
(例えば、「監視をスタートします。」など)# システムアーキテ
pythonコマンドが効かない
さあこれからpythonの勉強していくぞ!って時にいきなり出鼻をくじかれたことのメモ
## 前提条件
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1446396/07c2cc73-2983-c112-50e9-a9b571219b3f.png)## 発生した問題
まずpythonのバージョンを確認しようと思って
“`
python -V
“`
を実行するが
“`
zsh: command not found: python
“`
となる。え?タイプミスか?と思ったが絶対それはない。
pythonがインストールされてないんだぁと思ってインストールするが、それでも同じ結果。少しぐぐった結果以下コマンドで確認すると…
“`
python3 -V
“`
“`
Python 3.9.13
“`
あーやっとバージョンが出た。## 原因
どうやらM1 macのアップデートでpython2が削除されていたようでした。
それによってpythonコマンドが効かず、py
Pythonで学生証を読ませる(felica, nfcpy)
### はじめに…
課題でfelicaが組み込まれた学生証をタッチすることで入退室の管理システムをPythonで作ることになり、その備忘録的なもので残します…
最終的にはRaspberry piで実行することになりますが、デバッグの関係でMac環境で進めていますが、動作自体は同じなので触れません。## 下準備
### nfcpyインストール
nfcのライブラリ入れときます。
“` pip install nfcpy “`
Mac環境ではこれだけでおしまいなのですが、ラズパイではこのほかにやることがあります。ラズパイで“`lsusb“`を実行して、リーダーを確認します。
今回使うリーダーは`RC-S380`通称”パソリ”なので
`Sony Corporation RC-S380/P`
ここの`ID xxx:yyy`は後で要るのでメモっておいた方がいいです。(後々のために)次に、`cd /etc/udev/rules.d/`にアクセスして`touch nfcdev.rules`を作ってその中に以下のものを保存します。なお`xxx`と`yyy`は上記で出したものを
python cheatsheet
# 1. 標準ライブラリ
[Python 標準ライブラリ](https://docs.python.org/ja/3/library/index.html)“`base.py
# オブジェクトの型を判定する
type()
# listに要素を追加する
list=[]
list.append(“XX”)# すべての要素を削除
list.clear()# インデックス・スライスで位置・範囲を指定して削除する
#リストの作成
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]del l[0] # 最初を削除
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]del l[-1]
print(l) # 末尾を削除
# [1, 2, 3, 4, 5, 6, 7, 8]“`
### 1.1. 値
|データ型 | 例|説明|
|—|—|—|
|int |120|整数|
|float |3.1415|浮動小数点数|
|str |”test”| 文字列
seleniumをインストールして、pythonでお試し利用
https://qiita.com/seigot/items/475da9b3701cea8fb384
上記記事でコードでエラーが出たので修正
“`diff_python
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
from selenium.webdriver.common.by import By# ブラウザを開く。
driver = webdriver.Chrome()
# Googleの検索TOP画面を開く。
driver.get(“https://www.google.co.jp/”)# 検索語として「selenium」と入力し、Enterキーを押す。
search = driver.find_element(by=By.NAME, value=”q”)
search.send_keys(“selenium automation”)
search.send_keys(
FastAPI: DynamoDB のデータを読む
CORS に対応しています。
フォルダー構造
“`text
$ tree
.
├── dynamo_scan.py
└── main.py
“`“`py:main.py
#
# main.py
#
# Jul/26/2022
# ——————————————————————
import json
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddlewarefrom dynamo_scan import dynamo_scan
# ——————————————————————
app = FastAPI()app.add_middleware(
CORSMiddleware,
allow_origins=[“*”],
allow_credentials=True,
FastAPI: JSON ファイルを読む
files にある cities.json を読むサンプルです。
ツリー構造
“`text
$ tree
.
├── files
│ └── cities.json
└── main.py
“`“`py:main.py
#
# main.py
#
# Jul/26/2022
# ——————————————————————
from pathlib import Path
from fastapi import FastAPI
from fastapi.responses import FileResponse# ——————————————————————
app = FastAPI()@app.get(“/”)
def read_root():
rvalue = {“morning”: “おはよう”,”afternoon”: “こんにちは”}
return rvalue
aws lambda のスクリプトの中で、greengrass v2のコアデバイス一覧を全件取得する
### 【概要】
– aws lambda のスクリプトの中で、greengrass v2 のコアデバイス一覧を取得したかったが、何故か10件しか表示されなかったので対応メモ。### 実際のスクリプト
“`py:python3
region = boto3.session.Session().region_name
ggv2_client = boto3.client(‘greengrassv2’, region_name=region)
s3 = boto3.client(‘s3’)def get_deployment_info():
deployments = ggv2_client.list_deployments()[‘deployments’]
return deploymentsa = get_deployment_info()
print(a)
“`### 対応
– aws のドキュメントは以下だけど、相変わらずわかりずらい?
https://boto3.amazonaws.com/v1/documentation/api/lates
python3 ベクトルの基本
# ベクトルとは
ベクトルとは以下のように()の中に縦に数を配置したものです。
“`math
v =
\begin{pmatrix}
1\\
2\\
3\\
\end{pmatrix}
“`
()内に入っている数字を成分と呼びます。ベクトルで縦に並べた数の個数を次元と呼びます。上のベクトルだと数が3つ並んでいるので三次元ベクトルです。
# ベクトルの足し算 引き算 掛け算
ベクトルの足し算引き算掛け算は以下のように次元が等しい場合のみでき、成分どうしを足し合わせるだけです。
“`math
v =
\begin{pmatrix}
1\\
2\\
3\\
\end{pmatrix}
u =
\begin{pmatrix}
5\\
6\\
7\\
\end{pmatrix}
“`
“`math
v + u =
\begin{pmatrix}
1 + 5\\
2 + 6\\
3 + 7\\
\end{pmatrix}
“`
これをnumpyを使ってやってみたいと思います。
“`python
import numpy as npv = np.array([1,2,3])
u