- 1. UnicodeDecodeError: ‘cp932’ codec can’t decode byte…
- 2. python正規表現(自分用メモ)
- 3. 住所と郵便番号検索が可能な対話式コンソールアプリケーション
- 4. Pythonの高速フィボナッチ
- 5. Python 半角の記号を削除したい
- 6. 雑にsimulated annealingする話
- 7. pipでMySQLdbとmysqlclientがinstallできないとき
- 8. googletransを使ってDiscordで動く翻訳BOTを作ってみた
- 9. 俺はお前が作業していないのを見たぞ
- 10. Raspberry Pi で ADS1115 を使う
- 11. Twitter のつぶやきをテキストマイニング
- 12. [やってみた] AtCoder 版!蟻本 (初級編) [1 いざチャレンジ!でもその前に — 準備編]
- 13. PythonでDiscordの画像を発言・登録出来るBotを作った
- 14. コンソールで表を表示したいのでVisiDataを使ってみる
- 15. Python初心者が「Python文法詳解」を読んだメモ #6
- 16. Tensorflow 2.0で画像分類器を実装してみた
- 17. ソースコード共有サービス emoscode (エモすこ)
- 18. 秋月L6470使用ステッピングモータドライバをPython3で動かしてみた
- 19. DS18B20 で温度を読む
- 20. 九九のプログラム
UnicodeDecodeError: ‘cp932’ codec can’t decode byte…
## ERROR
“`
UnicodeDecodeError: ‘cp932’ codec can’t decode byte 0x86 in position 132: illegal multibyte sequence
“`## OPEN WITH ENCORING
“`.py
json_file = ‘./test.json’
with open(json_file, encoding=”utf-8_sig”) as f:
data = json.load(f)
“`
python正規表現(自分用メモ)
#正規表現とは
正規表現とは、さまざまな文字列に汎用的に解釈するための文字列のこと。
簡単に言うと、いろいろな文字列を1つの文字列で表現するための文字列のことをいいます。ここで、文字列とは、「この世に存在する読めるもの全部」という捉え方でいいと思います。
「伸びしろ」でも、「フリーメイソン」でも、「114514」でも。#簡単な例
正規表現を使うとなにが嬉しいか。
それは、ある程度形式がわかってる文字列だけにマッチングしたものを取り出すことができること。###「プロフェッショナル」にマッチ
たとえば、プロフェッショナルとはなんなのかを知りたいときには、このような書き方をする。“`python:reg.py
import re #pythonでは正規表現を行うための標準ライブラリがあるs= “””
まあ、そうですね。
プロフェッショナルとはケイスケ・ホンダ。
伸びしろですね!
“””p = re.search(r”プロフェッショナル.*。”,s) #プロフェッショナル+任意の文字列+。というパターン
print(p)
#<_sre.SRE_
住所と郵便番号検索が可能な対話式コンソールアプリケーション
# はじめに
AdventCalendar初投稿です。
python枠が空いていたので、僭越ながら1件投稿させていただきます。# 背景
早いもので今年も12月。
12月といえばクリスマスですが、年賀状を用意する時期でもありますね。年賀状を出そうと思ったとき、住所はわかるけど郵便番号何だったっけ・・・?と思ってしまうこと、ありませんか?(逆もまた然り)
今だと、住所をgoogle検索すれば郵便番号が出てきますが、
ネット環境が無くても住所・郵便番号が検索できるツールがあればと思い、
pythonの習熟がてら簡単なコンソールアプリを作ってみました。郵便番号から住所を検索する事例は結構ありますが、
住所から郵便番号を検索する事例はあまりないと思ったので、どちらの場合でも対応できるようにしてみました。# 環境
・Mac OS Mojave
・python3
・pyinstaller# 処理仕様
フローチャートは下記の通りです。
基本的には、入力した郵便番号の住所をダンプするか
入力した住所(一部地名だけでも可)に対応する郵便番号をダンプするかをユーザに対話式で選んでもらう
Pythonの高速フィボナッチ
## こうです(lru_cacheをつかって)
“`python
from functools import lru_cache@lru_cache(maxsize=None)
def fib(n):
if n <= 1: return 1 return fib(n - 2) + fib(n - 1) ``` ## こうです(自作キャッシュでメモ化して) ```python def fib(n): cache = {} def impl(ni): nonlocal cache if ni <= 1: return 1 if ni not in cache: cache[ni] = impl(ni - 2) + impl(ni - 1) return cache[ni] return impl(n) ``` @shiracamusさんからのコメントを元に少し変更したもの↓ ```python def fib
Python 半角の記号を削除したい
## やりたいこと
* 文字列の中に含まれる以下の記号を削除したい“`
!”#$%&'()*+,-./:;<=>?@[\]^_`{|}~
“`## 確認環境
* python3.6
* CentOS7## 方法
“`
>>> import string
>>> text = ‘Abcd1!EfgH”#$%2s&\’I()j*5k+,-./:l;MMM<=>NNN?@[\Z]^_`{99|00}7~8′
>>> result = text.translate(str.maketrans( ”, ”,string.punctuation))
>>> print(result)
Abcd1EfgH2sIj5klMMMNNNZ990078
“`## 解説
* 分解して記載してみる
“`
>>> import string
>>> text = ‘Abcd1!EfgH”#$%2s&\’I()j*5k+,-./:l;MMM<=>NNN?@[\Z]^_`{99|00}7~8′
>>> kigo = string.punctuation
>>> print(kigo)
雑にsimulated annealingする話
この記事は[IQ1AdcC2019(2枚目)](https://adventar.org/calendars/4711)の5日目の記事です。
(書き忘れてた。@chakku_000すまん)磁性体の単純なモデルとして、Ising模型とかPotts模型とかXY模型とか呼ばれるものがある。
こいつらの基底状態を雑なsimulated annealingで求めてみる。
## simulated annealing とは
> 焼きなまし法(やきなましほう、英: Simulated Annealing、SAと略記、疑似アニーリング法、擬似焼きなまし法、シミュレーティド・アニーリングともいう)は、大域的最適化問題への汎用の乱択アルゴリズムである。広大な探索空間内の与えられた関数の大域的最適解に対して、よい近似を与える。
> ([Wikipediaより](https://ja.wikipedia.org/wiki/%E7%84%BC%E3%81%8D%E3%81%AA%E3%81%BE%E3%81%97%E6%B3%95))雑に言ってしまえば最適化問題を解くためのヒューリスティックな手
pipでMySQLdbとmysqlclientがinstallできないとき
## 前説
`Python3` で `MySQLdb` を `import` したいができない。 `mysqlclient` を `pip` で `install` すればできるらしいが、 `pip mysqlclient` もできない。そんな状況を解決したい。## 結論
“`bash
$ pip –version
pip 19.3.1 from /home/ubuntu/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip (python 3.6)$ python –version
Python 3.6.8“`
“`bash
$ pip install –upgrade pip
$ sudo apt-get install -y mysql-server
$ sudo apt-get install -y libmysqlclient-dev
$ pip install mysqlclient
“`## 発生したエラー
“`
ERROR: Command errored out with exi
googletransを使ってDiscordで動く翻訳BOTを作ってみた
#まえがき
なんか唐突に英文を翻訳したくなったんですが、PCでchromeをつけてgoogle翻訳ひらいて文字打つのが面倒くさく感じました。
しかしDiscordはなぜか常についているので、じゃあDiscordの翻訳BOTを使おうと思ったんですが、そのままダウンロードするのはなんか違う気がしたので、じゃあ作ろうと思い立ちここに至りました。
人生二作目のBOTです。#やりたいこと
– 日本語を英語に翻訳してくれる
– 英語を日本語に翻訳してくれる
– 日本語以外の言語を指定なしに日本語に翻訳してくれる
– 言語の指定をすれば任意語から任意語に翻訳してくれる#できたもの
– `!trans [日本語以外の文字列]`で日本語に翻訳する
– `!trans [日本語の文字列]`で日本語を英語に翻訳する
– `!trans [言語名A]-[言語名B]-[A語の文字列]`でA語をB語に翻訳する
– `!detect [任意の文字列]`でその文字列の言語コードを取得する#環境
– Windows10
– Discord.py 1.2.3
– Python 3.7.3
– googletr
俺はお前が作業していないのを見たぞ
# はじめに
![スクリーンショット 2019-12-04 16.17.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/228406/2f963296-d240-df5e-b97a-6eee2d893b8e.png)
某部活で作業せずにスマブラをする輩がいるので, いつでも部室の様子を見れるようにした話です.
OpenCVとWebSocketで, リアルタイムで様子が見れるものがあっさり作れたので
置いときます.# 動作環境
CentOS Linux release 7.5.1804
Python 3.6.8
[ロジクール ウェブカメラ C270]( https://www.amazon.co.jp/gp/product/B003YUB660/ref=ppx_yo_dt_b_asin_title_o06_s00)# 実装
以下をインストール
“`
pip install opencv-python
pip install flask
pip install gevent
pip ins
Raspberry Pi で ADS1115 を使う
Adafruit のライブラリーを使って、A/D コンバーター ADS1115 を使う方法です。
参考ページ
[Adafruit_CircuitPython_ADS1x15](https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15)インストール
“`bash
sudo pip3 install adafruit-circuitpython-ads1x15
“`コードのクローン
“`bash
git clone https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15
“`サンプルコードのあるフォルダーに移動
“`bash
cd Adafruit_CircuitPython_ADS1x15/examples
“`サンプルプログラムを実行
“`text
$ python3 ./ads1115_simpletest.py
raw v
-1 -0.000
0 -0.000
0 -0
Twitter のつぶやきをテキストマイニング
# はじめに
Twitter のつぶやきデータを Twitter API を利用して取得し、テキストマイニング(WordCloud)によって可視化します。今回は、佐賀でつぶやかれた「ラーメン」に関するつぶやきデータを取得して可視化します。
手順は、以下になります。
1. Twitter アカウントの作成と Twitter API の申請
2. Twitter API を利用し、データを取得
3. テキストマイニング(WordCloud)今回のソースファイルは[こちら](https://github.com/Fukuhaku/MachineLearning/blob/master/Twitter%E3%81%AE%E3%81%A4%E3%81%B6%E3%82%84%E3%81%8D%E3%82%92%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0.py)
# 環境
+ Windows 10 Pro
+ Python 3.6.9 (anaconda)
+ wor
[やってみた] AtCoder 版!蟻本 (初級編) [1 いざチャレンジ!でもその前に — 準備編]
## はじめに
筆者はAtCoderに取り組み始めたアラフォー・ザコーダである(ザコーダと言ってみたかっただけけで、本職は全く関係ない職種です)。
[D問題をコンテスト中にACしたことがないので、特訓が必要である](https://qiita.com/tagtagtag/items/f9ae5a1a0c24d04ae923)
[AtCoder 版!蟻本 (初級編)](https://qiita.com/drken/items/e77685614f3c6bf86f44)に蟻本記載例題の類似問題が記載されている。
[AtCoder](https://atcoder.jp/?lang=ja)を利用してジャッジできるアルゴリズムの良問が選別されているので、初学者にうってつけである。
けんちょん (Otsuki)@drken氏に感謝。
## 目的
* 筆者の競技プログラミング成績向上を図る。
* [AtCoder 版!蟻本 (初級編)](https://qiita.com/drken/items/e77685614f3c6bf86f44)に記載の問題を解説しながら記述することで、
PythonでDiscordの画像を発言・登録出来るBotを作った
# 最初に
Discord使ってるけど、Botを触りだしたら画像も出すように注文された。
出すようにしたら毎回画像の追加するよう毎日頼まれるようになった。
ひどい話である。
なので、コマンドで自動追加出来るようにした。
※ 作った本人も完璧に理解してるわけじゃないから、こうしたら動いたよ程度の参考にしてね。
# 使ったもの
Python3
Discord ※pip install した。
json
urllib
# ソース
https://github.com/whalego/discord_bot
# 使い方
ざっとGITに書いてあるのをコピペ
#### /help list
Jsonに書いたdata内のlistを全部表示させる。
まじでJSONの中身全部出すだけなので、注意
####/help_add_command
コマンド追加するコマンドを表示させるよう。
#### /add_command
実行コマンド入力イメージ: /add_command img_name=test.jpg words=test,tttt img_url=httpURL
– img_name = 保存す
コンソールで表を表示したいのでVisiDataを使ってみる
# APIで取得したjsonデータを変換する
APIで取得したデータの形式は以下の通り“`
api_lsit=[{
“fruits”:”apple”,
“vegetables”:”celery”,
“beans”:”green soybean”
}{
“fruits”:”banana”,
“vegetables”:”garlic”,
“beans”:”red bean”
}]“`
この形式を`key`ごとにまとめる必要がある
“`
api_dict= {
“fruits”: [“apple”,”banana”],
“vegetables”: [“celery”, garlic],
“beans”: [“green soybean”, “red bean”]
}’
“`
上記のように変換して`visidata`コマンドで実行すると以下のような形式でコンソールに表示される||fruits|vegetables|beans|
|—–|——|———-|—–|
|0|apple|celery|green
Python初心者が「Python文法詳解」を読んだメモ #6
# バックナンバー
– [Python初心者が「Python文法詳解」を読んだメモ #1](https://qiita.com/usayomo/items/7024c619c5f72462cb10)
– [Python初心者が「Python文法詳解」を読んだメモ #2](https://qiita.com/usayomo/items/9c1537678bdde813a273)
– [Python初心者が「Python文法詳解」を読んだメモ #3](https://qiita.com/usayomo/items/57e6156c95e60b3223ca)
– [Python初心者が「Python文法詳解」を読んだメモ #4](https://qiita.com/usayomo/items/01fdb8bbe7704da236bb)
– [Python初心者が「Python文法詳解」を読んだメモ #5](https://qiita.com/usayomo/items/eb2c59b538f5c349bc52)“`py:Pythonのリストはオブジェクトを参照している
>>> L1
Tensorflow 2.0で画像分類器を実装してみた
これまでPytorch/Chainerメインで開発をしていたが、Tensorflow 2.0はデフォルトでDefine-By-Runをサポートしいるため、この機会に試してみた。
Googleトレンドでの比較で見てわかる通り、2018年後半からPytorchの人気がかなり上昇している。
TF2.0がEager Execution Mode(Define-By-Run)をデフォルトでサポートした真意は不明だが、少なからずPytorchの追い上げに関連してそう…![スクリーンショット 2019-12-03 22.26.16(2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/398780/ac80f935-71f2-6479-2537-30943fe29bca.png)
今更ではあるが、、
Caffe/TheanoのようなDefine-and-Runは、モデルをコンパイル(静的グラフ)を構築した後に、データを流し込む。それに対して、Pytorch/Chainerに代表されるDefine-By-Ru
ソースコード共有サービス emoscode (エモすこ)
![emoscode201911203-2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59265/74471e3f-2fe5-03d9-a3a5-3a5dd9166733.gif)
先日 [emoscode(エモすこ)](https://emoscode.net/) というWebサービスをリリースしました。
[github](https://github.com/) の [gist](https://gist.github.com/discover) や [pastebin](https://pastebin.com/archive) のようにソースコードを投稿するサイトはすでにたくさんありますが、このサービスの特徴はソースコードの任意の場所にコメントをつけることができます。もう少し詳しく説明すると、テキスト選択をした場所を指す矢印のついたコメントを投稿することができます。なんのこっちゃようわからん、という方は[サンプルページ](https://emoscode.net/displayCode/
秋月L6470使用ステッピングモータドライバをPython3で動かしてみた
### 概要
秋月電子で販売している**L6470使用ステッピングモータドライブキット**を**JetsonNano**で動かしてみた
### 使用ハード
– [**AE-L6470DRV(秋月電子)**](http://akizukidenshi.com/catalog/g/gK-07024/)
– [**Jetson Nano 開発者キット(NVIDIA)**](https://developer.nvidia.com/embedded/jetson-nano-developer-kit)
– [**P-PMSA-B60D3 (Plexmotion)**](http://www.plexmotion.com/products/detail.php?q=P-PMSA-B60D3)![](https://user-images.githubusercontent.com/26181834/69914558-12667100-1489-11ea-8e1e-1d98323d2cdb.jpg)
### 結線
|Jetson Nano | |AE-L6470DRV |
|—|-
DS18B20 で温度を読む
Raspberry Pi に接続した温度計 (DS18B20) で温度を読む方法です。
GPIO4,GND,3.3V に接続します。
インターフェースは、one-wire です。
結線後、raspi-config で one-wire を有効にします。確認
“`text
$ ls /sys/bus/w1/devices/
28-021317fe3eaa w1_bus_master1
$ ls /sys/bus/w1/devices/28-021317fe3eaa
driver hwmon id name power subsystem uevent w1_slave
$ cat /sys/bus/w1/devices/28-021317fe3eaa/w1_slave
6a 01 4b 46 7f ff 0c 10 b8 : crc=b8 YES
6a 01 4b 46 7f ff 0c 10 b8 t=22625
“`上記の場合の温度は、22.6度です。
プログラム
“`py:get_temperature.py
! /usr/bin/python
九九のプログラム
息子が九九の勉強をしていたので、高い商材を買わなくていいように、python3で九九のゲームを作成しました。
“`
import randompoint = 0
for i in range(10):
# x = random.randint(1,9)
x = 6
y = random.randint(1,9)ans = 0
try:
print(str(i+1) + “問:” +str(x) + “×” + str(y) + “=”)
ans = int(input())except ValueError:
print(“数字が入力されていません”)finally:
if(ans == x*y):
print(“せいかいです”)
print(“”)
point += 10
else:
print(“まちがいです。せいかいは