- 1. [やってみた] AtCoder 版!蟻本 (初級編) [1 いざチャレンジ!でもその前に — 準備編]
- 2. PythonでDiscordの画像を発言・登録出来るBotを作った
- 3. コンソールで表を表示したいのでVisiDataを使ってみる
- 4. Python初心者が「Python文法詳解」を読んだメモ #6
- 5. Tensorflow 2.0で画像分類器を実装してみた
- 6. ソースコード共有サービス emoscode (エモすこ)
- 7. 秋月L6470使用ステッピングモータドライバをPython3で動かしてみた
- 8. DS18B20 で温度を読む
- 9. 九九のプログラム
- 10. 個人開発してるやつを Python3 から Golang に書き換えてみた
- 11. Pythonでおみくじ作った。
- 12. Pythonでブラックジャック作った。
- 13. OpenCV で’美顏’してみた
- 14. PHPer(ペチパー)な僕がPythonではまったお話
- 15. ラピッド
- 16. Python/C API で Awaitable を作る
- 17. 意外と知らない?pipコマンド
- 18. statsmodelsによるベクトル誤差修正モデル(VECM)入門
- 19. D – Lucky PIN/三井住友信託銀行プログラミングコンテスト2019
- 20. C – 100 to 105/三井住友信託銀行プログラミングコンテスト2019
[やってみた] 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(“まちがいです。せいかいは
個人開発してるやつを Python3 から Golang に書き換えてみた
TuneCoreJapan 新卒エンジニアの skfvr です。
この記事は [WanoグループAdvent Calendar 2019](https://qiita.com/advent-calendar/2019/wano-group) 4日目の記事です。
# この話題にしたきっかけ
現在自分の配属されてるプロジェクトでは基本的に Perl+Ruby によって開発されていますが、自分が新卒として配属されたタイミングで「Golangを使ってリプレースする」が本格的に始動しました。それに先立って自分で動かしてる個人開発物(Python3 で開発)を全部Goに入れ替えてみるか!という感じでやってみました。その中で感じたことを話していきたいです。
# 諸注意
* どちらかの言語を上げ(下げ)する目的の記事では無いことを先に断っておきます(不快に感じる方が居たらごめんなさい)。
* 初投稿故、誤字/脱字/知識不足を暖かく見守っていただけると幸いです。知識不足の祭は指摘していただけると嬉しいです。# もともとどんなものを動かしていたのか
個人開発と言っても大した規模のもの
Pythonでおみくじ作った。
#はじめに
アドベントカレンダーが空いていたのでPythonに関するちょっとしたことを書こうと思います。
いつもはFlaskを使ってWebアプリを作っているのですが、フレームワークに頼っているせいかPythonそのものの理解が浅いと感じました。そこで、Pythonの練習をしようとまず、おみくじを作りました。
(現在Flaskのアドベントカレンダーがガラ空きです。少しでもFlaskを知っている方はぜひ参加してください!)#環境
Ubuntu18.04LTS
Python3.6.9#コード
今回はこんな感じのおみくじを作りました。“`python:kuji.py
from random import choiceplay = input(‘playと入力したらおみくじを引けます。: ‘)
while True:
if play == ‘play’:
breakprint(‘もう一度入力してください。’)
play = input(‘playと入力したらおみくじを引けます。: ‘)while True:
KUJI
Pythonでブラックジャック作った。
#はじめに
アドベントカレンダーが空いていたのでまたまた書いていこうと思います。今回は題名の通りブラックジャックを作りました。前回の記事はこちら→ [Pythonでおみくじ作った。](https://qiita.com/ysg_255/items/627fa3183504bdcf69d2)
#環境
Ubuntu18.04LTS
Python3.6.9
#コード“`python:play_bj.py
from random import shuffleclass Deck:
“””
山札を表すクラス
“””
def __init__(self):
“””
山札を初期化して、シャッフルする。
“””
suits = [‘スペード’, ‘クラブ’, ‘ダイヤモンド’, ‘ハート’]
values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ‘J’, ‘Q’, ‘K’]
self.deck = []
for i
OpenCV で’美顏’してみた
お久しぶりです.
そろそろ投稿しないとマズイかなと思って,約9ヵ月を投稿した.
今回は,pythonのOpenCVを使って’美顏’のコードを書いて試しました.
ぜひ試して画像’美顏’する前後を比較してください.# コード
“`python
import cv2image = cv2.imread(‘photo.jpg’)
value = 20
image_dst = cv2.bilateralFilter(image,value,value * 2,value / 2)
cv2.imwrite(‘new_photo.png’,image_dst)
cv2.namedWindow(‘image’)
cv2.imshow(‘image’,image_dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
“`#コード説明
### OpenCVをインポート
“`python
import cv2
“`### 画像を読み込む
“`python
image = cv2.imread(‘photo.jpg’)
“`### 画像を美顏
PHPer(ペチパー)な僕がPythonではまったお話
# PHPプログラマでしたがPython初めました。
最近長年連れ添ってきたPHPを捨て(てはないですが)Pythonを
触り始めました。
そこで一つ長年PHPを書いていた僕が
Pythonで書き始めて はまった所なんかをまとめます。## まず初めに
ぱっとPythonのソースを見て思ったこと– 行末の「;」がないことへの不安感が半端ないです。
⇒ 慣れましょう。
– `if`,`for`等にカッコが無いので閉じる部分がどこなの?という不安。
⇒ 慣れましょう。Pythonでも末尾「;」とか書いても問題はないようですが基本書かないようです。
カッコについては、PHPでは“`php
メインの処理
{
処理の途中でまとまりの良いもの
あわばよく後で関数化するかもしれないもの
}
“`のように、まとまったもの(まとまりが良いもの)にカッコをつけるという
使い方をしていたので少し不便に感じます。## 本編(処理について)
いくつかPHPと違う(PHPの方が異端というお話はおいておいて。。。)ために
はまった点を記載します。### 関数の引
ラピッド
# 応用数学
第一章 線形代数
1. 固有値・固有ベクトルの求め方を確認する。
2. 固有値分解について理解を深める。
3. 特異値・特異ベクトルの概要を知る
4. 特異値分解の概要を知る。第二章確率・統計
1. 条件付き確率について理解を深める。
2. ベイズ則の概要を知る。
3. 期待値・分散の求め方を確認する。
4. 様々な確率分布の概要を知る。第三章 情報理論
1. 自己情報量・シャノンエントロピーの定義を確認する。
2. KLダイバージェンス・交差エントロピーの概要を知る。
Python/C API で Awaitable を作る
はじめに
========今年も年末が近づいてきたので無駄に [Python C/API] を使ってみます。目的と手段の逆転。今回は Awaitable を、次の coroutine function spam を実行して得られる Coroutine のようなものをめざします。
[Python C/API]:https://docs.python.org/ja/3.8/c-api/index.html
“`python
import asyncio
async def spam():
print(‘do something’)
ret = await asyncio.sleep(1, ‘RETURN VALUE’)
return ret.lower()async def main():
ret = await spam()
print(ret)if __name__ == ‘__main__’:
asyncio.run(main())
“`なにか print して、 await sleep して結果を
意外と知らない?pipコマンド
よく使うコマンドから、込み入ったコマンドまでを使用ケース毎に紹介します (追記予定)。
# Case 1. 依存関係のケア
パッケージの依存関係で問題が生じて、スクリプトが上手く動作しない…。
(1) 依存関係の問題をチェックしましょう。
“`bash
$ pip check
“`(2) パッケージの要求されているバージョンが確認できたら、利用可能なバージョンを確認します。
“`bash
$ pip install==
# ERROR: Could not find a version that satisfies the requirement== (…
# とエラーが出力され、利用可能なパッケージのバージョンが確認出来ます。
“`(3) バージョンを指定してインストール
“`bash
$ pip install== # 最新状態にしたい時は
$ pip install -U# とあるバージョン未満で最新の状態にしたい時は
$ pip insta
statsmodelsによるベクトル誤差修正モデル(VECM)入門
GrangerとNewbold(1974)とYule(1936)により導入された誤差修正モデル(error correction model: ECM)は多変量の時系列モデルで、分析対象となるデータは長期的な確率的トレンドをもつとする。経済時系列が単位根を含んでいれば非定常な時系列となる。2つの非定常で無関係な時系列が回帰分析において有意な関係を示すことがあが、このような場合、最小二乗法は適した分析方法ではない。一方で誤差修正モデルは長期的と短期的な時系列データ間の影響を分析するのに適している。誤差修正は長期的な均衡からの乖離または誤差としての短期的な動学を表現している。ベクトル誤差修正モデル(VECM)はこれらのモデルの欠点を補うために誤差修正モデルにベクトル自己回帰モデル(VAR)として知られるマルチファクターモデルの概念を加えたものである。
また、経済理論の観点から変数間の因果関係についてGrangerの因果関係、インパルス応答関数、予測誤差分散分解などの概念がある。ECMは因果関係の分析にも用いられる。
VECMは経済データの予測などにも用いられ、[為替レートの予測性の検
D – Lucky PIN/三井住友信託銀行プログラミングコンテスト2019
#Problem
AtCoder 社は、オフィスの入り口に 3桁の暗証番号を設定することにしました。
AtCoder 社には N桁のラッキーナンバー Sがあります。
社長の高橋君は、SからN−3桁を消して残りの3桁を左から読んだものを暗証番号として設定することにしました。
このとき、設定されうる暗証番号は何種類あるでしょうか?
ただし、ラッキーナンバーや暗証番号はいずれも0から始まっても良いものとします。
4 <= N <= 30,000 #Submission ```python def solve(): ans = 1 N = int(input()) s = input() ans = 0 for i in range(1000): t = str(i).zfill(3) t_index = 0 for s_index in range(N): if s[s_index] == t[t_index]: t_index += 1 if t_index == 3:
C – 100 to 105/三井住友信託銀行プログラミングコンテスト2019
#Problem
100, 101, 102, 103, 104, 105を組み合わせてXが作れるか否か判定する。
1 <= X <= 100,000 #Submission ```python def solve(): X = int(input()) quotient = X // 100 remainder = X % 100 if 0 <= remainder and remainder <= 5 * quotient: print(1) exit() print(0) solve() ``` 0 <= (Xを100で割った余り) <= 5× (Xを100で割って切り捨てた値) が成立するかどうか調べる。