Python3関連のことを調べてみた2020年10月17日

Python3関連のことを調べてみた2020年10月17日

TWE-Lite シリアル通信アプリ Byteモードの設定(Pythonで送信)

###はじめに

TWE-Liteシリアル通信アプリ「Byteモード」の送受信でつまずいた個所を、覚えとして残します。

###環境

Windows 10
MONOSTIC
TWI-LITE DSP(TWELITE R)

Anconda
python 3.7
pyserial

####インストールしておいたほうが良いソフト(シリアル通信の確認)

Teraterm
Realterm(バイナリー送受信をするため)

###シリアル通信アプリへの書き換え
下記のWebページを参考に進めます。
参考:[評価開発環境TWELITE STAGE-トワイライトステージ](https://mono-wireless.com/jp/products/stage/index.html)
(1)TWELITE STAGE-トワイライトステージのダウンロード
→私の場合 Windows

(2)書き換えるTWELITE RまたはMONOSTICKをUSBポートに接続
→TWELITE Rの場合 USB端子近くにある黄色いジャンパーピンの位置を確認(3つピンがあるうちUSB端子に近い2つをジャンパーす

元記事を表示

gitlabApiを使用して、gitlabの複数グループにメンバーを一括追加する

## 課題
新しい人が入る度に手動でgitlabのグループ追加は大変

## 解決策
GitLabAPIを使用してプログラムを作成した。
以下を元にLambdaに設定してAPIにしている。

### 処理の流れ

– 入力値をバリデーション(user:ユーザー名とlevel:権限)
– usersAPIを使用してユーザー情報を取得する
– 対象のグループリストにユーザー情報に入っているIDを追加する

バリデーションなどところどころ行なっているので参考にどうぞ。

### プログラム

“`python
# coding: utf-8
import json, requests, re
import inspect

private_token = ‘[gitlabの管理画面から発行してください]’
url_prefix = ‘https://[your_gitlab_domain]/api/v4/’

def main(params):
success_group_list = {}
try:
check_empty(params)
user_info =

元記事を表示

pygameを用いてパズル&ドラゴンズのドロップを操作するゲームをこれから作る予定(未着手)

今回、ある程度python、pygameを学んできたところで何かひとつ作ってみようと思い、
自分の好きなゲームであるパズドラを簡易であるが作ってみることにした。
進捗状況は随時更新していきたい
(ちなみに創作物は初めてです)

元記事を表示

アプリでまなぶNN:Kerasでテンソルフロープレイグラウンドを理解する

本記事は2020/10/13に提出したものですが、いったん削除し若干書き換え2020/10/14 15:12に再度提出しています。

テンソルフロープレイグラウンド([Neural Network Playground](https://playground.tensorflow.org/#activation=tanh&batchSize=10&dataset=circle&regDataset=reg-plane&learningRate=0.03&regularizationRate=0&noise=0&networkShape=4,2&seed=0.40707&showTestData=false&discretize=false&percTrainData=50&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=classification&initZero=false&

元記事を表示

Pythonでリストのコピーをする

# はじめに
Python3.8.3で実行した結果を記載しています。

# リストのコピー
「リストのコピーを作り、値を変えて元のものと比較したい」と思うことがある。その場合、次のようにcopyモジュールのdeepcopyメソッドを使って書く必要がある。

## 1次元リスト
リストが1次元のときは、`deepcopy()`、スライス、`list()`などでコピーできる。

“`python:list_copy_example_1.py
import copy
list_1 = [0,1,2]
list_2 = copy.deepcopy(list_1) #deepcopy()を使う
list_3 = list_1[:] #元のリストをスライスする
list_4 = list(list_1) #list()を使う

list_2[0] = 1000
list_3[0] = 2000
list_4[0] = 3000
print(list_1)
print(list_2)
print(list_3)
print(list_4)
“`

出力はこのようになる。

“`
[0, 1,

元記事を表示

回帰分析の基礎

文脈の無いデータは単なる数値の羅列にしか過ぎない。手元にあるデータをうまく活用するにはデータの背後にある現象の仕組み、歴史的背景、環境など多岐にわたる情報を収集する必要がある。そしてそのような情報をもとに自由な発想でデータをさらに集める。

データは集めただけでは意味を成さない。比較することでその特徴がみえてくる。平均とか分散を計算することを、要約統計量を得るという。また、頻度図や折れ線グラフを描いて、データの特徴をつかむデータの可視化を行う。

このような分析手法を用いて、現象の全体像が見えてきたら、いよいよ統計的手法を用いる。その際には分析の目的が明確である必要がある。大きく
1) 現象の構造の把握
2) 情報の収集
3) 予測
の3つに分類できる。このように分類するには普遍的な理由がある。統計学では得られたデータのもとになるデータがあると考え、これを母集団とか単にモデルとか呼んだりする。そして手元に得られたデータはその母集団から抽出されたと考える。抽出された、または観測されたデータを標本といい母集団と区別する。母集団が得られるということはモデルが得られたということと同等だ。真のモ

元記事を表示

PyCryptodome AES暗号化と復号処理メモ

AES暗号化メモです。

環境
Python3.7
pycryptodome 3.9.8

##ソースコード

“`python3
# -*- coding: utf-8 -*-
from Crypto.Cipher import AES

key = b”1234567890123456″
data = b”hogehoge” # 暗号化する文字

# 暗号化処理
cipher = AES.new(key, AES.MODE_EAX)
ciphertext, tag = cipher.encrypt_and_digest(data)

print(ciphertext)
print(tag)
print(cipher.nonce)

# 復号処理
cipher_dec = AES.new(key, AES.MODE_EAX, cipher.nonce)
dec_data = cipher_dec.decrypt_and_verify(ciphertext, tag)

print(dec_data)
“`

##結果
“`
b’7\xecO,\xa4J\\:’
b’\x8eQ

元記事を表示

MNISTの行列表示

python==3.7.9
Keras==2.2.4
tensorflow==1.13.1

#mnistを画像表示する

“`python

import urllib.request
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np

#prox = urllib.request.build_opener()
#urllib.request.install_opener(prox)

from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()

plt.imshow(x_train[0])
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/a6a1291f-bd0f-9f8a-8ddc-1a899cf54402.png)

#行列

元記事を表示

GoToEatキャンペーン対象店舗をマッピングして楽しむ

#はじめに

鳥貴族マラソン等で話題になったこともあり、GoToEatキャンペーンが気になりました。
今回はPythonのスクレイピングとマッピングの手法を使って、キャンペーン対象店舗をマッピングしてみたいと思います。
[農林水産省のGoToEatキャンペーンサイト](https://gotoeat.maff.go.jp/)
# 使用データ
[食べログのキャンペーン対象店舗](https://tabelog.com/go-to-eat/list/)のページをスクレイピングして情報を集めました。

ざっと見た感じですとスクレイピングが禁止という文言はサイトに見当たらなかったので…

スクレイピングのソースコードは今回は割愛し、概要だけ載せます。
取得する情報は、[‘店名’, ‘ジャンル’, ‘口コミレート’, ‘最低予算’, ‘電話番号’, ‘喫煙情報’, ‘住所’, ‘都道府県’, ‘エリアコード’, ‘URL’]とします。

![tabelog.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6802

元記事を表示

KivyでYes No Popupを作る

# 概要
はい・いいえを聞くダイアログが欲しかったので、使いまわしやすいような形で作りました。
![Demo](https://github.com/Take-Me1010/Yes-No-Popup/blob/main/image/demo.JPG?raw=true)

# コード
[git](https://github.com/Take-Me1010/Yes-No-Popup)にも置きました。

“`__init__.py
”’
a simple Yes/No Popup
LICENSE : MIT
”’
from kivy.uix.popup import Popup
from kivy.properties import StringProperty

from kivy.lang.builder import Builder
Builder.load_string(”’
#
:
FloatLayout:
Label:
size_hint: 0.8, 0.6

元記事を表示

Python3でWebスクレイピングとYouTube Data APIとMongoDB(ホロライブの動画配信予定を収集 その2)

## はじめに

前回([https://qiita.com/kerobot/items/6009cb0db643bceaf4e9](https://qiita.com/kerobot/items/6009cb0db643bceaf4e9))は、ホロライブの配信予定や動画情報をホロジュールと Youtube から収集するプログラムを作成しました。
今回は、収集した情報を MongoDB に登録するようにしてみます。

![img01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283306/0c554f2f-c1c7-9f00-3837-4054416ab9d8.png)

前回のプログラムをもとに MongoDB の処理を追加するだけですが、Poetry と pyenv を利用するため、プロジェクトの構成やプログラムの内容も全体的に変更します。

Azure Cosmos DB (Mongo API) も調べ始めたりしたのですが、価格モデルがいまいち理解できず、意図しない課金を避けるために断念しま

元記事を表示

pythonで、モジュールのインポートと例外処理

### Pythonのモジュールインポートの環境作り
1、メインフォルダーにディレクリーパッケージをつくる
2、そのディレクリーパッケージにディレクリーフォルダーとファイルを作る。
 必ず__init__.pyを作る。
 Pythonがこのファイルを認識して、モジュールを呼び出すため
3、その中に、utils.pyも作る
4、3に任意のファイル a.py b.pyの2種類のファイルを作る。のちに定義した関数を呼び出すため
5、次に、ディレクリーパッケージに別のディレクリーフォルダも作る。
6、同様に、__init__.pyを作る.
例外処理は、古いパッケージまた新しいパッケージが混じってもエラー対応するため。

### モジュールを呼び出すコード
“`python
from directly_package.directlyfolder1 import a.py //a.pyは、directlyfolder1にある
from directly_package.directlyfolder2 import b.py
print(folder1.function()) //ファンクション

元記事を表示

RealSense L515で参考にしたサイト

以下のページだけでpyrealsense2を入れて、サンプルコードを動かすことができました。
途中のシンボリックの部分に関しては、環境ごとに場所が違うので対象ファイルを探してlnしましょう。
また、サンプルコードですが、L515の対応している解像度が違うので書き換える必要があります。

####参考
pyrealsense2
https://qiita.com/comachi/items/14b358568365bc5ee474
l515が対応している解像度
https://github.com/IntelRealSense/librealsense/issues/6684

元記事を表示

Pythonで開発するときのおすすめの環境と使い方

#はじめに
現在、Pythonで開発するときのおすすめの環境をご紹介します。
僕のおすすめですので異論は認めます。
突然ですが、私はプログラミングをしていて重要だと思っているのは、**できる限りストレスなく開発すること**だと思っています。
**自分好みの環境や設定を見つけていきましょう!**

# Python
まずは、Pythonをインストールします。
この記事を書いている時点での最新バージョンである**3.9.0**をインストールします。
### インストーラーのダウンロード
まずは、公式サイトを開いてインストーラーをダウンロードします。
[Python.org](URL:https://python.org/)
まずは、Pythonの公式サイトを開きます。
![Python.org](https://mendoitarou.com/blog/wp-content/uploads/2020/10/Python-Website.png)
“Downloads”にマウスカーソルを置き、”Python 3.9.0″をクリックします。
そうすると、Pythonのインストーラーがダウンロー

元記事を表示

【Django】ログ出力機能について初心者でもわかるように簡単にまとめる

#はじめに
DjangoのLogging機能って初見だとよくわからない内容もありますよね。特に設定ファイル。
簡単・簡潔にまとめていきます。

#本番環境想定の設定ファイル
ログの設定ですが、自分で設定を行わない場合(settings.pyにLOGGINGの定義が無い場合)[Djangoソース内に含まれているデフォルト設定](https://github.com/django/django/blob/master/django/utils/log.py)が使用されます。
しかし、出力されるログがあまり見やすくないので自分で設定する場合がほとんどです。
以下、本番環境を想定した設定例です。settings.pyに以下内容を追記します。

“`settings.py
LOGGING = {
‘version’: 1,
‘disable_existing_loggers’: False,
# ログ出力フォーマットの設定
‘formatters’: {
‘production’: {
‘format’: ‘%(ascti

元記事を表示

【Udemy Python3入門+応用】  68. Import文とAS

**※この記事はUdemyの
「[現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル](https://www.udemy.com/course/python-beginner/ “現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル”)」
の講座を受講した上での、自分用の授業ノートです。
講師の[酒井潤](https://twitter.com/sakaijun “酒井潤”)さんから許可をいただいた上で公開しています。**

##■import文とas
####◆import
こんな風にディレクトリとファイルを用意する。

“`
lesson_package
├ __init__.py
└ utils.py
lesson.py
“`

“`python:utils.py
def say_twice(word):
return (word + ‘!’) * 2
“`

“`python:lesson.py
import lesson_package.utils

元記事を表示

【Udemy Python3入門+応用】  67. コマンドライン引数

**※この記事はUdemyの
「[現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル](https://www.udemy.com/course/python-beginner/ “現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル”)」
の講座を受講した上での、自分用の授業ノートです。
講師の[酒井潤](https://twitter.com/sakaijun “酒井潤”)さんから許可をいただいた上で公開しています。**

##■コマンドライン引数
“`:terminal
python3 test.py arg1 arg2
“`
“`python
import sys

print(sys.argv)
“`
“`:result
[‘test.py’, ‘arg1’, ‘arg2’]
“`
ターミナルからPythonファイルを実行する際、Pythonファイル名の後ろに引数を渡すことができる。
これらの引数は `sys.argv` にリストとして格納される。従って、

元記事を表示

Python3 で websockets の async/await を隠蔽する

`asyncio` が入る [websockets](https://websockets.readthedocs.io/en/stable/index.html) を使用した関数が上部に波及してどこまでも `async/await` になってしまうのか…と思っていたところ[自作ライブラリでなんとかなった](https://qiita.com/shirasublue/items/f51986f39dd8a3bf8310)のでその部分の忘備録

# 解決策

– デコレータを使いました

# 環境

– Python 3.8.5
– websockets 8.1

# コード

### my_library.py

“`Python3
import websockets
import asyncio

class EntitySpec(object):
def __init__(self, ctx):
self.ctx = ctx
self.uri = “ws://{}:{}”.format(
ctx.hostname,

元記事を表示

初心者がやりがちな変数命名のアンチパターン

## はじめに
ご存知のようにPythonはその書きやすさからプログラミング初心者にも敷居の低い言語として親しまれており、「初めて触れる言語がPython」という方も少なくありません。
しかしそんなPythonにもやってはいけないアンチパターン(禁じ手)があり、初心者が知らずに踏んでしまうと対処に苦しむ事になってしまいます。
そこで、Pythonのアンチパターンのうち、特に初心者が注意すべき**「変数の命名」**の中でも特に致命的な**同名変数定義による代入**についてご紹介させていただこうと思います。

## 悪い例
下のコードは、タプル型変数`tuple`の中身をリスト型に変換して、リスト型変数`list`と結合させるものです。
一見至って普通のデータ操作ですが、これ実は動きません。エラーが出ます。

“`py
>>> list = [“Apple”, “Orange”, “Grape”]
>>> tuple = (“Peach”, “Strawberry”)
>>> list.append(list(tuple))
“`

“`py
Traceback (most rece

元記事を表示

機械学習時に使えそうな画像自動収集パッケージ「icrawler」(0.6.3)の紹介

画像を使った深層学習で面倒な画像集めを行うパッケージの紹介。

検索エンジンから画像を収集したり、画像投稿SNSや、webページからの画像をまとめて自動でDLできる

googleの画像検索エンジンの仕様変更に伴ってgoogle用の関数はまだ使えない様子
当記事投稿(2020-10-10)の4日前にもgoogleクローラーの修正が行われていたので、いずれ改善するのではないでしょうか。

#検索エンジンからのダウンロード

bing,baiduからのダウンロード

“`python
from icrawler.builtin import BaiduImageCrawler, BingImageCrawler, GoogleImageCrawler

bing_crawler = BingImageCrawler(downloader_threads=4,storage={‘root_dir’: ‘C:\\Users\\Desktop\\0\\your_dir’})
bing_crawler.crawl(keyword=’cat’, filters=None, offset=

元記事を表示

OTHERカテゴリの最新記事