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

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

MySQL ShellをPythonモードで使ってみた その1

# MySQL ShellをPythonモードで使ってみた

Oracle主催の[MySQL Technology Cafe #7](https://oracle-code-tokyo-dev.connpass.com/event/158989/)でMySQL Shellのハンズオンがセミナーが開催されたのでMySQL Shellを使ってみた

# MySQL 8.0.19をインストール
2020年1月13日に公開されたMySQL 8.0.19を利用する

MySQL 8.0.19 Community Server 及び MySQL Shellを書きからダウンロードしてインストール
https://dev.mysql.com/downloads/

Screen Shot 2020-01-17 at 18.32.21.png0119日記

ドットインストールも見ちゃったし、とりあえず興味ありそうな投信のポートフォリオ分析の分野の記事を少し読んでみた。
そしたら、まだインストールしてないモジュールがあったから、とりあえずインストール
これは、インストールの手順の備忘録

“`import selenium as sl“`
したら
moduleNotFoundError
が出たから
“`pip install selenium“`
したら、インストールできた
これでブラウザを自動操作できるらしい
使うかわかんないけど、初めてのインストールもできたから満足

元記事を表示

【競プロ】Union-Find木を使って問題を解く!【備忘録】

##1. はじめに
競技プログラミングをしている方なら、一度はUnion-Find木なるものを聞いたことがあると思います。
今回は、AtCoderで過去問を解いている時に、Union-Find木を使って解くと分かりやすい問題があったので、備忘録程度にUnion-Find木の使い方を書いていきたいと思います。
この記事はAtCoderのレートで茶色〜緑色前半くらいの方向けに書いているつもりです。

##2. Union-Find木とは

“`python:Union-Find.py
class UnionFind():
def __init__(self, n):
self.n = n
self.parents = [-1] * n

def find(self, x):
if self.parents[x] < 0: return x else: self.parents[x] = self.find(self.parents[x])

元記事を表示

Pytestの実行時にDockerコンテナを起動する

Pytestのテスト実行前にDockerコンテナを起動することを考える。
周辺ミドルウェアとのインテグレーションテストが容易に行えるようになり、環境やテストデータや冪等性を得られるメリットがある。

例としてテスト実行時にPostgreSQLコンテナを起動し、データを投入してみる。

# 備考

コード例の前に、**ユニットテストの中で**Dockerコンテナを使用することの制約などについて考えてみる。

– Dockerデーモンが起動している必要がある
-> 当然といえば当然だが重要。コンテナの中でテスト実行したいようなケースにはハードルが1つ増える(?)
– Docker in Dockerができるコンテナをビルドすればできそう(未検証)。
– 参考: [Docker in Docker のベタープラクティス](https://qiita.com/sugiyasu-qr/items/85a1bedb6458d4573407)

– コンテナ起動まで待機する必要あり
– コンテナ自体の起動は高速だが、内部のプロセスが起動完了して**使用可能になるまで**は数秒かか

元記事を表示

Python学習にCheckioのすすめ

#話すこと
この間、仕事先の先輩から聞いたCheckioというものを試してみて、ハマった~~(卒論締め切り間近に面白くて時間が溶けた)~~ので紹介したいと思う。

#Checkioとは
pythonとJavaScriptについて、問題を解きながら学習を進めていくというもの。
問題に正解すると次の問題が解けるようになっていくので、完全にゲーム感覚で進めていける。~~(これが時間を溶かす原因)~~

#Checkioの良いところ
pythonの学習については[Progate](https://prog-8.com/languages/python)なんかが有名だと思うけれど、これはレッスンが進むとお金がかかってしまう…
もちろんお金をかけた分だけ良いレッスンが受けれるので、お金をかけるのも当然ありだと思う。
###ただ、タダより良いものはないというのが人の性だと思います!
####そして、こう書いているのでCheckioは無料でできるんです!

また、Checkioはweb上で問題を解いていくのでハマりがちなPythonの環境構築をしなくて良いのも魅力の1つだと思います。

さらに、C

元記事を表示

AtCoder キーエンス プログラミング コンテスト 2020 参戦記

# AtCoder キーエンス プログラミング コンテスト 2020 参戦記

## A – Painting

9分半で突破. 縦、横長い方で何回塗ったら超えるか、それだけ. 最初勘違いして交互に塗っていくと思ったせいで時間がかかってしまって順位どん底に…….

“`python
H = int(input())
W = int(input())
N = int(input())

t = max(H, W)
print((N + t – 1) // t)
“`

## C – Subarray Sum

13分?で突破. S を K 個、どう足しても S にならないものを N – K 個並べればいいだけ. 回答の数列の各値は 1~109 であることには注意.

“`python
N, K, S = map(int, input().split())

result = [S % 10 ** 9 + 1] * N
for i in range(K):
result[i] = S
print(*result)
“`

## B – Robot Ar

元記事を表示

Python3.9の新機能 (まとめ)

##はじめに

Python 3.5から What’s Newの内容をまとめる記事を投稿してきました。

* [Python3.5の新機能](http://qiita.com/ksato9700/items/9a0aef07d90d00e67525)
* [Python3.6の新機能](https://qiita.com/ksato9700/items/ed839a6db6a671fd31e6)
* [Python3.7の新機能](https://qiita.com/ksato9700/items/35a0bdc04693b3b09757)
* [Python3.8の新機能(まとめ)](https://qiita.com/ksato9700/items/3846e8db573a07c71c33)

これからは[リリースサイクルが早くなる](https://qiita.com/ksato9700/items/a6578b09b2949c8548dd)ので投稿の頻度が増えそうですが、Pythonを1.xの頃から追っかけていた古株のエンジニアとして出来るだけ続けていきたいなと思っています。

元記事を表示

Pytestでローカルに一時的なhttpサーバを起動する

ユニットテスト実行時にローカルサーバを立てることで外部に依存しないテストを行うことができる。

APIやクローラ開発で便利。

流れはこんな感じ

– `conftest.py`にフィクスチャとしてhttpサーバの起動/終了処理を記述
– テスト関数の中でフィクスチャを呼び出す

# 実装

– conftest.py

“`python:conftest.py
import pytest
from http.server import (
HTTPServer as SuperHTTPServer,
SimpleHTTPRequestHandler
)
import threading

class HTTPServer(SuperHTTPServer):
“””
ThreadでSimpleHTTPServerを動かすためのラッパー用Class.
Ctrl + Cで終了されるとThreadだけが死んで残る.
KeyboardInterruptはpassする.
“””
def run(self):
tr

元記事を表示

2020年だし念仏唱える

あけましておめでとうございます!

ついに2020年1月1日に公開するはずだったものが出来ました!
やっと年が明けました!(2020/01/18現在)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/d51046ba-5192-940b-aaf1-3d71ac3a7349.png)
ネズミ年ですね!

# できたもの

遠隔でお経を唱える事ができるマシーン。IoB(*1)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/7e201860-efa0-998c-5a80-f74f9fbfc475.png)

念仏の遠隔操作に成功!

時間あったら全部Githubにアップします。

*1: Internet Of Buddha

#

元記事を表示

【React x Django】日本の電力を見える化するWebアプリケーションを作って公開してみた。

# はじめに

こんにちは。現在、株式会社パネイルでソフトウェアエンジニアをやっている@TsJazz27Suminです。SIerから転職して3ヶ月目に突入しました。

今回は、転職してからほぼ趣味で作ったWebアプリケーションが会社公認コンテンツとして公開されることになったので、その技術的なまとめ記事になります。

アプリケーション自体のリンクは、こちらです。
https://vedas.cloud/

# きっかけ

転職したばかりということもあって、パネイルのコア技術であるPython・Djangoあたりを勉強していたのですが、やはり勉強ばかりしていてもおもしろくなく、何か作れないかなーと思っていました。

そんな折、一般送配電事業者が需給実績データをオープンデータとして公開していることを知り、「おっ、PythonのPandasとか使って大量データさばくのおもしろそう」「Reactとか使ってグリグリ動くデータ分析ツールにするとおもしろそう」ってことで作りました。

ReactもPythonも多くのライブラリが世界中の人たちによって作られており、いろいろと組み合わせながら実装するのは

元記事を表示

timeoutデコレータで、動的にタイムアウト時間を設定したかった

## Pythonのタイムアウトデコレータ実行値を動的に変えたい
この記事はpythonほぼわからん人間が描いた試行錯誤の軌跡である

以下の要件があった。
– 新規の機能を追加したい → 新規関数追加すればいいや
– タイムアウト機能をつけたい → 新規でtimeoutのデコレータ作ってつければいいや
– タイムアウト時間は呼び出し元に応じて変化させたい → デコレータでやるならこれは実装どうしよう・・・・

デコレータは以下の通り、printはデバッグ用

“`python:timeout.py
from functools import wraps
import errno
import os
import signal

def timeout(seconds=10, error_message=os.strerror(errno.ETIME)):
def decorator(func):
def _handle_timeout(signum, frame):
raise TimeoutError(error_messag

元記事を表示

ユーザー入力Webアプリ(GoogleAppEngine python3 Flask

# 作成するもの
サンプルコードです(初心者にてお勉強中。)
コードはgitsに置いています。
https://github.com/sakurataiko1/GAE_userInput

フォームからユーザー入力された内容を表示する

①初めに表示される画面(login.html)
![20200103_python3flask_01.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423803/8eab63b6-2727-e5ba-6a32-40607346a6dc.jpeg)

②送信ボタン押下後の画面(check.html)
![20200103_python3flask_02.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423803/33227480-2a18-01de-286f-3631dfc56433.jpeg)

# 環境
windows10
GAE
Anaconda
python3
flask 1.1

元記事を表示

【Django】’The SECRET_KEY setting must not be empty.’の対処法

#はじめに

Qiita初投稿です。
間違い等があればご指摘お願いいたします。

#概要

「動かして学ぶ!Python Django開発入門」の10章で、
認証用アプリケーション(accounts)を作成し、makemigrationを実行しようとしたところ、

“`python:
‘The SECRET_KEY setting must not be empty.’
“`

というエラーに遭遇。

#試したこと

####・accounts/migrations配下の’\_\_init__.py’**以外**のファイル削除

→そもそもmakemigrationsコマンド自体が実行できないので、’\_\_init__.py’以外のファイルは見当たらず…

####・settings.pyにコード追加

settings.pyに

“`python:settings.py
from .settings_common import *
“`
という一文追加。

→**エラーが出なくなった!!**

#原因

settings.pyに

“`python:settings.

元記事を表示

pythonでAtcoderするためのVS Codeデバッグ環境作ってみた

最近Atcoderデビューしたのですが、コードテストするときにあっちこっちタブ切り替えるのがちょっと面倒だったので…
VS CodeでF5デバッグできる環境を作ってみました。

# 環境

**VS Code**
バージョン: 1.41.1 (user setup)
コミット: 26076a4de974ead31f97692a0d32f90d735645c0
日付: 2019-12-18T14:58:56.166Z
Electron: 6.1.5
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Windows_NT x64 10.0.17763

**python**
Python 3.7.3

作業用ディレクトリを作成し、その中に以下のファイルを作成、実行します。

“`python:make_directory.py
import os

for i in range(10):
folder_name1 = “ABC{:x<3}".format(i) os.

元記事を表示

万年歴の種:Zellerの合同式から或る日の曜日を得る

Zellerの合同式から、ある日の曜日が何曜日であるかを算出します。

“`calcal.py
#!/usr/bin/python3
import sys
y = int(sys.argv[1])
m = int(sys.argv[2])
d = int(sys.argv[3])
youbia = [“日”, “月”, “火”, “水”, “木”, “金”, “土”]

if (m == 1 or m == 2):
md = m+10
yd = y-1
else:
md = m-2
yd = y

a = yd // 100
b = yd % 100
youbi = (int(2.6*md – 0.2) + d + b + b//4 + a//4 – 2*a)%7

print(“西暦”, y, “年”, m, “月”, d, “日は”, youbia[youbi], “曜日です。”,sep=””)

“`

出力例

“`
$ calcal.py 1967 5 12
西暦1967年5月12日は金曜日です。
$ calcal.py 1994 12

元記事を表示

[Python3 入門 11日目]6章 オブジェクトとクラス(6.1〜6.2)

#6.1 オブジェクトとは何か
– Pythonに含まれるオブジェクトは全てオブジェクト
– オブジェクトはデータ(変数、属性と呼ばれる)とコード(関数、メソッドと呼ばれる)の両方が含まれている。
– オブジェクトは何らかの具体的なものの一意なインスタンス(実体、実例)を表している。
– オブジェクトは名詞、オブジェクトのメソッドは動詞と考えることができる。オブジェクトは個別のものを、メソッドは他のものとどのようなやりとりをするかを定義する。

#6.2 classによるクラスの定義
– オブジェクトはプラスチックのボックスに喩えたが、**クラス**はそのような**ボックスを作るための鋳型**のようなもの。

“`py

#Personクラスの定義
>>> class Person():
… pass

#オブジェクトはクラス名を関数のように呼び出して作る。
>>> someone=Person()
>>> class Person():
… def __init(self):
… pass

#__init__()は

元記事を表示

[Python3]datetimeにタイムゾーンを指定するawareな方法

PCでコーディングしたプログラムをAWSのLambda関数で実行したら、`datetime.now()`で取得される時刻が異なることに気づきました。PCはJST時間、AWSはUTC時間のため9時間の差があることが原因です。
プログラムを変えずにPCでもAWSのLambda関数でも同じ結果を得るために、datetimeにタイムゾーンを指定する方法を調べました。

#環境
– Python 3.7.4

#問題の事象
例えば次のプログラムを実行すると、PCで取得される現在時刻と、AWSのLambda関数で取得される現在時刻に9時間の差異が発生します。9時間の差異なので、Lambda関数で実行するときには` + timedelta(hours=+9)`として9時間足せばいいのだけれど、それではPCからLambda関数に持っていくときにプログラムの修正が発生するので望ましくないため、プログラムを変更せずに同じ結果が得られるようにしたいと考えました。

“`python:lambda_function.py
from datetime import datetime, timezone, ti

元記事を表示

groupbyしてダミー変数化する方法

以下のようなデータを

“`
user_id,item_id
A,1
A,1
A,2
A,12
B,1
B,4
“`

以下のようなデータの形状に変換したい。

| | item_id_1 | item_id_2 | item_id_3 | item_id_4 | item_id_5 | item_id_6 | item_id_7 | item_id_8 | item_id_9 | item_id_10 | item_id_11 | item_id_12 |
|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|
| A | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
| B | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |

データとしては、`item_id`の列に出てきた最大最小の値を両端として、その間の数値をカラム名として補完しながら、出現回数をカウントしたものである。

## csvの読み込み

“`py
import

元記事を表示

【対決! 人力 vs Python】結局、センター試験の数学はPythonで解くのと、自力で解くのと、どっちが速いのか?

# どこかで見たことあるネタだなと思ったら

やっぱり、先人がいました(ほかにもあるかも)。
**素晴らしい!**

* [2015年センター試験数学IAを全てプログラム(Python)で解く](https://qiita.com/akai_banana/items/b328fe0116d248127a36)
* [2015年センター試験数学ⅡBをPythonで解く](https://qiita.com/massa142/items/b224a07c1b33e9a39cd8)

# 1. センター試験に持ち込めるもの

以下が持ち込めるようですが、現時点で、**Pythonのインタプリタは持ち込めない**ようなので、注意が必要です。
開発者にとって、開発環境は鉛筆のようなものという主張も**通じない**と思います。
**※許可されているもの以外を持ち込むのは絶対に絶対にやめましょう!**

“`
* 黒鉛筆(H,F,HBに限る。和歌・格言等が印刷されているものは不可。)

元記事を表示

Django 開発者への道① ~ Modelsを理解する ~

### こんにちは。
### 普段は某ITスタートアップで、Djangoを使って、サービス開発をしています!!

## これからステップごとに、Django でプロダクトを開発していくために必要な技術を1からおさらいしていきます!

## 第一弾 ~ Modelsを理解する ~ 構成

1. Modelsの立ち位置
2. テーブルの作成
3. フィールドの追加

#### 尚、Djangoのプロジェクトは既に立ち上げてるという前提でお話をしていきます。

**以下のスキルセットは、既に習得している前提です。**

– virtualenvで仮想環境の構築ができる
– pip install でdjangoなどのライブラリのインストールができる
– django-admin startproject で プロジェクトを立ち上げることができる
– python manage.py startapp でアプリケーションをプロジェクトに追加することができる

## 1. Modelsの立ち位置

#### 今回は、モデルを理解していくために、 models.py に記述するDBのテーブルのフ

元記事を表示

OTHERカテゴリの最新記事