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

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

Django ViewではHttpメソッド名の関数を定義することができる(get, post, put,patch,delete…)

# 言いたいこと
**Django ViewではHttpメソッドの関数が定義**できます?
定義した関数にHttpメソッドで振り分けられます。
私は`GET`でしかできないものだと思っていました。

“`python:views.py

def get():
# 処理

def post():
# 処理
“`

# 該当メソッドの呼び出し場所
該当メソッドの呼び出し場所は以下にあります。
`from django.views.generic import View`

以下、メソッドの呼び出し場所の抜粋です。

“`python:django/views/generic/base.py
class View:
“””
Intentionally simple parent class for all views. Only implements
dispatch-by-method and simple sanity checking.
“””

http_method_names = [‘get’, ‘post’, ‘pu

元記事を表示

GCPのCloud functionsをローカルでエミュレートする

Google Cloud Platformでバックエンドを構築するにあたり、デプロイするのに一分程度かかってしまうため、開発時はローカルでエミュレートする環境を構築するとスムーズです。Python環境でCloud Functionsをエミュレートする方法についてまとめます。

## 結論
main.pyにhelloという関数を作って置いて

“`main.py
def hello(request):
request_json = request.get_json()
if request.args and ‘message’ in request.args:
return request.args.get(‘message’)+’get’
elif request_json and ‘message’ in request_json:
return request_json[‘message’]+’post’
else:
return f’Hello Worlds!’

“`

そのフォルダでターミナル

元記事を表示

MacBookAirにpyenvをインストールし、pythonを切り替えて使うようにする

## 前書き
前記事に引き続き、まだmarkdown及びmacOS、CUI操作に慣れていないこともあり、
マナー違反もあるかもしれませんが、生暖かい優しさでコメントいただけると幸いです。
本当に初歩の初歩的な内容(メモ書き)となります。

## 環境
macOS Catalina バージョン 10.15.7

## ゴール
macにコマンドライン(ターミナル)でpyenvを入れ、
pyenv経由で複数pythonをインストールし、用途に応じて切り替えができるようにする。

## 結論
少し引っかかったものの、
ターミナルの再起動によって問題なく完了できた。

## いざ、着手
と言いつつ、作業自体はすでに完了したので、初心者あるあるな部分で戸惑ってしまったので、
備忘録としてメモだけ残しておきます。

基本的には[こちらのQiita記事](https://qiita.com/Ajyarimochi/items/ff40e57d082dd171e761)を参考にさせていただきました。
わかりやすくて大変助かりました、ありがとうございました。。。

本来は、ver3.xxのpythonが入

元記事を表示

【Python】都道府県プルダウンのタプル版

#タプル版です
DjangoでModelを作っていて、都道府県のchoicesで必要だったので定義しました。
もし使う機会があればお使いください(笑)

##Tuple
“`python:prefectures.py
PREFECTURES = (
(1, ‘北海道’),
(2, ‘青森県’),
(3, ‘岩手県’),
(4, ‘宮城県’),
(5, ‘秋田県’),
(6, ‘山形県’),
(7, ‘福島県’),
(8, ‘茨城県’),
(9, ‘栃木県’),
(10, ‘群馬県’),
(11, ‘埼玉県’),
(12, ‘千葉県’),
(13, ‘東京都’),
(14, ‘神奈川県’),
(15, ‘新潟県’),
(16, ‘富山県’),
(17, ‘石川県’),
(18, ‘福井県’),
(19, ‘山梨県’),
(20, ‘長野県’),
(21, ‘岐阜県’),
(22, ‘静岡県’),
(23, ‘愛知県’),
(24, ‘三重県’),
(25, ‘滋賀県’),
(26, ‘京都府’),
(27, ‘大阪府’),
(28

元記事を表示

PyserialでのBinary送受信

### はじめに

pyserialを使ったBinary送受信について覚えとして記載します。

### PyserialでBinaryを送信する方法
参考:[pyserial(pythonシリアルポート)を使用したバイナリデータ](https://www.366service.com/jp/qa/896caade3e598fc46db4609c44bde780)
この中で、pyserialのSerial.write()メソッドは文字列データのみを送信する。と書かれています。

b”\x00″のような出力になるようにBinary変換したものが送信できます。(「\x」というのは次に続く2文字を16進表記の整数値として解釈することを意味する。)

変換例として
[array – データ型固定のシーケンス](http://ja.pymotw.com/2/array/)を使った方法が書かれています。

“`python
import serial
import array

# 送信したい Binary Data
b = [0xc0, 0x04, 0x00]
print(b)
# 10進数に直

元記事を表示

seaborn, matplotlib文字化けの解消 Windows10、Anaconda仮想環境にて

# グラフ描画時の日本語文字化け
日本語をグラフ中に表示しようとすると文字化けになってしまい、結構はまってしまったので備忘録として。

Anacondaで仮想環境を使用する際は「環境ごと」に再設定することなります。
####環境

– OS windows10
– Anaconda Naviagtor
– python 3.7

###日本語フォントが入ってないと
missing from current fontの表示とともに文字化けします。

![mojibake.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/366160/6b97e3c0-8faa-e1ba-095e-2f0089bfbae0.png)

## 投稿の動機
文字化け解消する際に用いるフォントは`MS Gothic`などでもよいですが、Linuxでも使用できるライセンスフリーのフォント`IPAexGothic`などがよく利用されるようです。
過去の参考記事などでは`IPAPGothic`などの過去のフォントが使用されているケース

元記事を表示

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

###はじめに

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

###環境

Windows 10
MONOSTIC
TWI-LITE DSP(TWELITE R)

Anconda
python 3.7
pyserial

参考までに、TWE-Liteを使った例(標準モード)がこちらのサイトにありました。(使っているのがPython2なのでByteの扱いには注意が必要です。)
[農業IT人材の育成テキスト](https://www.chiba-fjb.ac.jp/www/monka/H29/h29_Report02.pdf)

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

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

###シリアル通信アプリへの書き換え
下記のWebページを参考に進めます。
参考:[評価開発環境TWELITE STAGE-トワイライトステージ](https://mono-wireless.com/jp/products/stage/i

元記事を表示

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のインストーラーがダウンロー

元記事を表示

OTHERカテゴリの最新記事