Python3関連のことを調べてみた2019年12月15日

Python3関連のことを調べてみた2019年12月15日

暗号技術のエモさに気づいてしまったエンジニアが、Pythonで実装し倒そうとしている話

現代の情報社会は暗号技術に支えられているといっても過言ではありません。にもかかわらず、我々はとくに暗号技術を意識することなくその恩恵に授かっています。しかも、暗号技術は古くは紀元前100年ほど前から存在していたという古参っぷりです。おまけに、現代暗号は高度な数学を駆使して高いセキュリティを確保しようとしており、果てはブロックチェーン技術にも派生していきます。

何だこの歴史の長さと守備範囲の広さは!!

ということで、暗号技術のエモさに気付いた私が、Pythonで暗号を実装し倒そうとしている話をします。

# 暗号技術の基本的な考え方

暗号は大きく**鍵生成**、**暗号化**、**復号**の3つの要素によって成立しています。

特に、暗号技術において鍵は非常に重要な要素をしめています。というより、暗号技術はこの鍵をいかに生成するかという技術だとも言えるかと思っています。何故なら、この鍵は暗号化でも復号でも使われるものであり、安全性に直結するものだからです。

鍵の扱い方によって、**共通鍵暗号**と**公開鍵暗号**の二種類に分類できます。

共通鍵暗号は、暗号化と復号の両方のプロ

元記事を表示

VisualStudioでAtCoderのプログラムを書くために準備したこと

AtcoderでPython使って問題とくときにした準備作業のメモ書き。

## 環境

MacOS

## Visual Studio Codeの設定

VisualStudioCodeの拡張機能【Coder Runner】の追加

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230829/f182adf4-11ad-3623-f176-4deb24cb91e4.png)

コマンド「⌘ + ,」で設定を開き、以下2つを設定

clearPreviousOutputをONにする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230829/c12a2294-f05a-23e6-8a5e-d97eaa747858.png)

runInTerminalをONにする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazon

元記事を表示

Pythonのリリースサイクルが早くなる!

##はじめに

Pythonの生みの親である[Guido van Rossum](https://en.wikipedia.org/wiki/Guido_van_Rossum) さんが6年半務めたDropbox社を辞めるというニュースが入ってきたのがちょうど一ヶ月半くらい前。転職するわけではなくこのまま引退されるという。御年63歳。長きに渡りお疲れさまでした。既に一年以上前にPythonのBDFL(*Benevolent Dictator For Life*: 優しい終身の独裁者)の座を降りていて、Pythonの開発に大きな影響はないですが、ちょっと寂しですね。

彼がPythonを作り始めたのが 1989年12月で、ちょうど30年前になります。クリスマス休暇で趣味のプログラミングをしたかった彼はインタープリタ言語を作ろうと思いたち、それが今のPythonとなったわけですね。

1991年に0.9.0として出されたPythonもバージョンを重ね、2000年に2.0、2008年に3.0が出て、Python2とPython3は並行して開発が進みながら、現時点で2.7.17と3.8.0まで来

元記事を表示

Drive donkeycar with 3 IR ToF sensors

#Drive donkey with 3 ToF sensors
こんばんはRomihiです。
実は本日初投稿、こちらのアドベントカレンダーでQiitaデビューです。
本日は赤外線センサを使った、Donkeycarの簡単な制御の方法を紹介します。

##まずは、赤外線センサを準備します。
ハロウィンレーサーに搭載した赤外線センサ:VL53L1X

|諸元 | 値 |
|:———–|————:|
|解像度|1 mm
|最大範囲|400 cm
|最小範囲|4 cm
|インタフェース|I²C
|最小動作電圧|2.6 V
|最大動作電圧|5.5 V
|電源電流|15 mA
*引用元[SWITCHSCIENCE](https://www.switch-science.com/catalog/3938/)

・Pololu(★オススメ) 
*中央に配置
・pimoroni 
*左右に配置

元記事を表示

AtCoderチュートリアル(Python編)

## はじめに
本記事は[Volare Advent Calendar 2019](https://qiita.com/advent-calendar/2019/volare)の14日目の担当分です。
私は学校法人角川ドワンゴ学園が運営する[N高等学校](https://nnn.ed.jp/)にてプログラミングTAとしてインターンをさせてもらっており、業務の中でプログラミングに興味のある生徒に何から始めるかという話を度々するのですが、プログラミングを使って作りたいものが特に決まっていないことが多々あります。その場合にプログラミングの入門として紹介している「競技プログラミング」についての記事を初心者向けに書かせていただくことにしました。

## 競技プログラミングとは
* 与えられた入力から求められている出力を満たすプログラムを作成する競技
* 週末にリアルタイムのオンラインコンテストが開催されており、レーテイングで自分の実力を数値化することができる

ざっくりとこんな感じ。
スクリーンショット 2019-12-13 14.01.25.png</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>AtCoder</div>
<div class='tag-cloud-link'>Python3</div>
<div class='tag-cloud-link'>競技プログラミング</div>
<div class='tag-cloud-link'>プログラミング教育</div>
<div class='tag-cloud-link'>プログラミング初心者</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/kgrlizst/items/ef1e232e85322e143ce7'>元記事を表示</a></div>
<h3 id=cronpi × Django Custom Commandで気楽にcronジョブ管理

この記事は[Django Advent Calendar 2019](https://qiita.com/advent-calendar/2019/django) の14日目の記事です。
初投稿だったりします。お手柔らかにお願いします。

# はじめに
毎日ワクワクしながら[本番環境でやらかしちゃった人 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/yarakashi-production)を読んでいるのですが、
crontabで失敗している人が散見されているようですね。
私も日頃crontabには思うところ(毎度ヒヤヒヤしながら`crontab -e`打ったり、毎度日付の設定方法を忘れてググったり、地味に設定ファイルの管理めんどくさい)があり、なにか良い対策ないのかよーと思って探してみました。
ありました、`cronpi`です。
human readableな日付記法とpythonファイルでcronジョブ管理ができるパッケージらしいです。ありがたい…[詳しくはこちら](https://qiita.com/

元記事を表示

Loggingについて

初めまして。
えーじです。
今までプログラムを学んで終わりだったので、今後はメモ兼解説?としてQiitaを書いていこうと思います。

私は今までエラーがあるかないかを”print”で確認していましたが、loggingの方が綺麗にかけそうだったので勉強してみました。
初めてQiitaを書くので、間違いや書き方があればご指摘お願い致します。
[Logging HOWTO](https://docs.python.org/ja/3/howto/logging.html#logging-basic-tutorial)を参考に書いています。

##Loggingとは?
>logging は、あるソフトウェアが実行されているときに起こったイベントを追跡するための手段です。ソフトウェアの開発者は、特定のイベントが発生したことを示す logging の呼び出しをコードに加えます。イベントは、メッセージで記述され、これに変数データ (すなわち、イベントが起こる度に異なるかもしれないデータ) を加えることもできます。イベントには、開発者がそのイベントに定めた重要性も含まれます。重要性は、レベル (lev

元記事を表示

Raspberry Pi と Python 3 を使ってANT+自転車パワーメーターの値を読む

基本こちらの内容通りすれば動く
[Track Your Heartrate on Raspberry Pi with Ant+](https://johannesbader.ch/blog/track-your-heartrate-on-raspberry-pi-with-ant/)

## 必要なもの
Raspberry Pi
USB ANT+ ドングル

## USB-Serialの準備
USBドングルを指して dmesg | tail もしくは lsusb で idVendorとidProductを確認する
> Bus 001 Device 004: ID 0fcf:1008 Dynastream Innovations, Inc. ANTUSB2 Stick

/etc/udev/rules.d/garmin-ant2.rules を編集して usbserial を設定

“`garmin-ant2.rules
SUBSYSTEM==”usb”, ATTRS{idVendor}==”0fcf”, ATTRS{idProduct}==”1008″, RUN+=”/sbin/mo

元記事を表示

Pix2Pixを用いてグレースケール画像に着色してみる

# はじめに
本記事は、LOCAL学生部アドベントカレンダー2019の12日目の記事になります。
https://adventar.org/calendars/4020

アドベントカレンダーのネタ探しに時間がかかりすぎてなかなか決まらなかったので、既出ではありますが、Pix2Pixという生成モデルを使用したモノクロ画像の着色にチャレンジしたお話をします。
(Speech Synthesisやりたかった…..)

# Pix2Pixとは
arXiv:https://arxiv.org/abs/1611.07004

GANの手法を利用し、様々なドメイン画像間の変換を統一的なネットワーク、誤差関数で行えるようにしたもの。
論文で紹介されているのは、
– マスク画像から元画像
– モノクロ画像からカラー画像
– 航空写真から地図
– 輪郭から色ぬり画像

もちろんこれらを逆に変換するよう訓練することも可能です。

![uploading-0](https://phillipi.github.io/pix2pix/images/teaser_v3.jpg)
## ネットワークアーキテ

元記事を表示

pythonで素数判定

#はじめに
##これは初心者による初心者のための記事です。

今回も問題を解いていて、やっと解決できたので、備忘録にするとともに共有しようと思いまして、この記事を書いております。

今回は、ある自然数が素数かどうか判定するプログラムの作成です!

#プログラム作成
さて、さっそく作成していきます。

そもそも、素数とは何なのか、軽く言及しておきます。

・素数:1と、その数自身でしか割り切れることのできない数(1は含まない)

つまり、2~(その数―1)までの数で、その数を割っていき、余りを調べればよさそうだ、と考えました!

そこで、p_judgeという関数を定義していきます
(なんでpかというと、数学の問題でよく素数はpであらわされるからです笑)

“`Python
# 関数を定義
def p_judge(a):
“`
さて、それでは処理の仕方を考えていきます。
まず、2~(その数―1)までの数を代入して、割るという作業がいるので、**for文**が使えそうです!

また、素数か、そうではないか判断するため、処理が分岐しそうです。したがって、**if文**が使えそうです!

元記事を表示

(負荷試験ツール)Locustで基本的な使い方/よくある使い方

### Locustって何よ
– 負荷試験ツール
– 一度に大量のリクエストを発生させることができる
– Python
– 簡単に負荷試験の処理を定義できる

### 環境構築

公式で配布しているDockerImageを使ってdocker-compose.yamlを定義する
筆者の環境はMac OS Catalina(10.15.1)
ローカル環境で実行した

“`
version: “3.4”

x-common: &common
image: locustio/locust
environment: &common-env
TARGET_URL: http://example.com
LOCUSTFILE_PATH: /tests/basic.py
volumes:
– tests/:/tests

services:
locust-master:
<<: *common ports: - 8089:8089 environment: <<: *common-env LOCUST

元記事を表示

MultiprocessIterator解説

# 概要
Chainerはミニバッチの提供と学習の進捗情報管理を行う責務を持つ[Iterator](https://docs.chainer.org/en/v6.5.0/reference/iterators.html)クラス用のインターフェースを提供している.このインターフェースは,[Dataset](https://docs.chainer.org/en/v6.5.0/reference/datasets.html)クラスにより取得した複数の学習データからミニバッチを生成するクラスの実装に使用される.Chainer Version 6.5時点において複数のIteratorクラス実装が提供されている.本稿では,並列に学習データをロードし高速にミニバッチを編成できる[MultiprocessIterator](https://docs.chainer.org/en/v6.5.0/reference/generated/chainer.iterators.MultiprocessIterator.html)について解説する.なお,本稿で解説するChainerのバージョンは6.5.0を前提

元記事を表示

Pythonにおけるクラス

# はじめに

ここでは、Pythonの初心者向けに、「クラス」の基本について解説していきます。
Python3系の使用を前提とします。

# クラスの作成

クラスを作成するときは、`class`を使います。

“`python:class_1.py
class Human():
name = ‘ゆきや’
def say_hello():
return ‘こんにちは。’

print(Human.name)
print(Human.say_hello())
“`

以上のようにしてクラスを作成することができますが、この書き方だと、「ゆきや」以外のインスタンスを生成できません。

あるクラスから複数のインスタンスを生成できるようにするには、`__init__`(コンストラクタ)を利用します。
第一引数は`self`となります。

“`python:class_2.py
class Human():
def __init__(self, n):
self.name = n

def say_hel

元記事を表示

Pythonでユークリッドの互除法を再現

## はじめに
###これは超初心者による備忘録です
今回は初めての投稿です。
pythonをやり始めて一週間。まだまだヒヨッコなので、ネットで見つけた問題集で練習しております。

その時に見つけた問題がうまく解決できなかったので備忘録として記事を残します。

超初心者の方は必見です!!!

###ユークリッドの互除法とは
簡単にいえば、最大公約数を機械的に求めることができる計算方法。

計算方法
①調べたい2つの自然数を用意する
②大÷小をする
③余りが出たら、小さいほうの数字とそのあまりの最大公約数が元の2数の最大公約数と一致している。
④これを繰り返すことで、簡単な数字で最大公約数がわかる

まあこんな感じです。わかりにくくてすいません。

## 実際にやってみる
それではコードを書いていきます。
まずは新しい関数gcd()を定義します

“`Python
def gcd(a,b) #関数を定義
“`
関数を自分で定義するのはdefを使います。

次に、この関数が行う処理を書いていきます。
ユークリッドの互除法では、何度も計算を繰り返さなくてはなりません。
その

元記事を表示

Pythonのstatsmodelsで時系列分析をする

これは[MYJLab Advent Calendar 2019](https://qiita.com/advent-calendar/2019/myjlab)の14日目の記事です。

## こんにちは
+ 宮治研究室に所属する学部3年、サッチーと呼ばれています
+ webとか機械学習は周りのつよつよな方々が書いてくださるので、私は統計っぽいことを書きます

## 今回は
### すること
Pythonのライブラリであるstatsmodelsを用いて時系列分析の基本であるBox-Jenkins法を用いた分析の一連の流れを実装していきます。
時系列分析はPythonの文献がなぜか少ないのが悲しいので、Pythonで時系列分析入門したい人のお役に立てれば幸いです。
### しないこと
長くなってしまうので定常過程や単位根検定の種類等、手法の細かい説明は省きます。あくまでも実装メインで進めていきます。理論部分は有名な[logics of blue](https://logics-of-blue.com/%e6%99%82%e7%b3%bb%e5%88%97%e8%a7%a3%e6%9e%90_

元記事を表示

【AWS S3】S3上のフォルダの存在確認

## 概要
PythonのAWSへのAPIラッパーであるboto3ライブラリを用いて、S3上のあるフォルダ[^1]
またはファイルが存在するかどうかを確認する関数を書いた。

## 動機
S3上のフォルダの有無で場合分けをしたい処理があったのだが、ネット上にはboto2を使っていて現在では実装されていない関数を使った処理だとか、S3上の「ファイル」にしか使えない方法ばかりがあって、「フォルダ」に対する存在判定がほぼなかった。

なので自作しました。

##

## コード例

“`python
import boto3
from botocore.exceptions import ClientError

client = boto3.client(‘s3’)
bucket_name = ‘hoge’
key = “fuga/piyo/bar/” # /まで入れるのがキモだと思う。なくてもいけるかもしれない。確かめてません。

result = client.list_objects(Bucket=bucket_name, Prefix=key)

# 次もキモ。上記のパスが存在

元記事を表示

アイカツのQRをPCで読み取りたい…!!!

##はじめに
– こちらの記事は[アイカツ! Advent Calendar 2019](https://adventar.org/calendars/4521)の15日目の記事となります。SHINING LINE*を繋ぎます。よろしくお願いします。
– 前日の記事はkakakayaさんによる11日目の続きの[aikatsu-dcd-parser Ver 0.4.2](https://twitter.com/kakakaya/status/1205849950451421184)です。11日目は[こちら](https://twitter.com/i/events/1204738202390499330)となります。
– アドベントカレンダーを書くのは初めてですのでお手柔らかにお願いします。

##自己紹介と学習している言語

白石莉子と申します。角川ドワンゴ学園N高等学校通学コース代々木キャンパスプログラミングクラスに所属している高校二年生です。高校内では女児向けアニメ同好会を創設し運営をしております。学習言語はPython3です。過去にはHTMLとCSSを触っていました。

##作成

元記事を表示

闇の絵文字?に対する防衛術

#はじめに
この記事は[闇の魔術に対する防衛術 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/yaminomajutu)の15日目の記事です。
#♰闇の絵文字♰
絵文字というものはとても便利なもので、自らの感情を言葉ではなく1文字分の絵?で表現することができます。
しかし……???

**文章を解析する時に邪魔**?

なんです。

#どゆこと❓
Python?などを利用して文章解析をする場合、前処理という文章?を使いやすい形に整える作業をする必要があります。

解析の際に文章中に絵文字があるとあの忌々しい?Errorが降臨してしまいます?

以前擬似[しゅうまい](https://twitter.com/shuumai)?のようなものを作った際にはこのエラーに大変悩まされました?

#世界?を滅ぼさんとする絵文字から身を守る術?

この世界を破壊?し滅ぼそうとする絵文字たちから身を守る術はひとつ☝️

![bouryoku.jpg](https://qiita-image-store.s3.ap-n

元記事を表示

PythonでQuaternionを使う ~ numpy-quaternion ~

# はじめに
Pythonでクォータニオンを扱うライブラリはpyquaternionとnumpy-quaternionが世界でのトップ2のようですが,日本ではpyquaternionの参考ページを作った人が最初にいたからか,巷に溢れているPythonでのクォータニオン計算はpyquaternionばっか(しかない?)です.

しかし,numpy-quaternionのほうが計算コストが低そうです.
参考: https://www.theoj.org/joss-papers/joss.00787/10.21105.joss.00787.pdf

また,githubのスターの数を比べてもnumpy-quaternionのほうが多いです(2019/12/13時点でnumpy-quaternionが276,pyquaternionが138).

numpyとの親和性も一括変換の扱いやすさなどでpyquaternionよりも良い気がします.使ってみませんか?

githubのリポジトリ: https://github.com/moble/quaternion
ドキュメント: https://qu

元記事を表示

【2020年版】AWSのEC2にPython3をインストールする方法

先日、AWSのEC2にPython3をインストールする機会がありました。

その時に「AWS EC2 Python3」でGoogle検索したのですが、検索結果の上位に表示されたページの情報がいまいちでした。
具体的には、

– pyenv
– virtualenv

を使ってPython3の仮想環境を用意する方法が紹介されていましたが、 Python3の仮想環境を用意する方法は特別な事情がない限りは`venv`を使うべきです。
また、Python3をアプリ開発やデータ分析でガッツリ使う場合を除いては、そもそも仮想環境を用意する必要はないと思います。

Python3の仮想環境を用意する方法として`venv`を使う理由は、[Pythonの公式ドキュメントで推奨されている唯一の方法](https://docs.python.org/ja/3/library/venv.html)だからです。
`pyenv`を避けるべき理由は[この記事](https://qiita.com/shibukawa/items/0daab479a2fd2cb8a0e7)に詳しく書かれているので、興味のある方はこちら

元記事を表示

OTHERカテゴリの最新記事