Python関連のことを調べてみた2020年08月26日

Python関連のことを調べてみた2020年08月26日

カレンダーでルーティン管理

週ごとのルーティン管理。
Googleカレンダーや手書き、エクセルでも良いと思うのですが、
試行錯誤中は何かと変化もあると思うのでpythonで作ってみました。

日毎に分かれているので毎日チェックマークをつけて達成/非達成を確認する事が出来ます。

筋トレのメニュー管理や食事、英語学習などの管理をしています。

出力したcsvをフォーマット作ってあるエクセルに「値だけ貼り付け」して印刷して使っています。

シンプルがベストって感じです。

![Screen Shot 2020-08-26 at 11.49.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391105/897b7cac-bf77-8c4c-7afb-34e5703ab8bf.png)

“`
#!/usr/bin/env python
# coding: utf-8

# In[1]:

import pandas as pd
# import datetime as dt
# from datetime impo

元記事を表示

犬ですが何か?Djangoのテンプレートに挑戦!の巻

#テンプレート=変数や処理を埋め込んだHTML

柴犬のぽん太です。先日も人間のふりをしてネット友達とチャットしていましたが、相手も人間のふりをした犬かもしれないと思い始めました。カミングアウトすべきか悩みます。

さて、今日はDjangoのテンプレートに挑戦です。テンプレートとはWebページのHTMLに変数や処理が埋め込まれたもので、ここに値を挿入して表示する画面を生成します。

##テンプレートのためのディレクトリ構造
ディレクトリwanの下にフォルダtemplates, templates/wanを作成し、さらにtemplates/wanの下にテンプレートファイルindex.htmlを作成します。ツリーはこのようになります。

“`
(venv_dog) Ponta@shiba_app # tree
.
// … 省略
└── wan
  // … 省略
├── templates
│   └── wan
│   └── index.html
  // … 省略
“`

##テンプレートの記述 (index.html)
テンプレー

元記事を表示

Codeforces Round #665 (Div. 2) バチャ復習(8/23)

#今回の成績

![スクリーンショット 2020-08-23 16.36.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331393/9968d5fa-ce35-b99d-853d-3e1659a2a847.png)

#今回の感想

C問題まではミスりながらもそれなりの速さで通すことができたのですが、D問題で**半分諦め**で解いていました。結果的にコンテスト後に通すことができたので反省です。
前の記事でも述べたようにもう少しで解ける問題が安定してくると成績もよくなると思うので精進します。100問くらい解けば変わるのではと思っているので、**1ヶ月くらいは我慢**して毎日バチャをしようと思います。

#[A問題](https://codeforces.com/contest/1401/problem/A)

問題文を誤読しましたがリカバリーできたので良かったです。

まずは**AとBの位置関係を把握するために図示**しました。以下の2パターンです。

![IMG_0572.JPG](htt

元記事を表示

Alpine Linuxでpandas 1.1.0以降のビルドに失敗する問題の対応方法

![Python-3.8.2](https://img.shields.io/badge/Python-3.8.2-brightgreen) ![pip-20.2.2](https://img.shields.io/badge/pip-20.2.2-brightgreen) ![pandas-1.1.0 or later](https://img.shields.io/badge/pandas-1.1.0 or later-brightgreen) ![Alpine-3.11.0](https://img.shields.io/badge/Alpine-3.11.0-brightgreen) ![Last Modified-2020/08/22](https://img.shields.io/badge/Last Modified-2020/08/26-brightgreen)

# はじめに
**Alpine Linux**で**pandas 1.1.0以降のビルドに失敗する問題**に遭遇したので、対応方法についてまとめました。

“`terminal
Failed to buil

元記事を表示

Blender 2.8, Python 立方体 拡大縮小

Blender 2.8, Python。 立方体の傾き、拡大縮小までたどり着いたというところ。傾けて薄っぺらい形状にしたら心なしかスマートフォン的な形に見えてきました。これまで達成したのは、立方体配置、マテリアル割付、カメラ移動と照明移動。(今後の課題はカメラ角度、カメラの特定座標の注視とか物体移動の際のパス沿線移動など。)

動画はtwitter投稿の Blender 2.8, Python
[Blender 2.8, Python。動画1秒。 立方体の傾き…](https://twitter.com/naohiko7/status/1298434564113612800)
![bpynh12scrn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690216/914fafcf-3787-cc58-d2f2-5983d1d794d7.png)

“`
#bpy_nh12 立方体の拡大縮小、傾き追加。(カメラ移動。照明4個移動 )
import bpy
# 既存 mesh, light,

元記事を表示

ChromeのWebDriver(Selenium)で「このウェブページの表示中に問題が発生しました」とエラー表示された場合の対応

# 発生している現象

Pythonで、ChromeのWebDriver(Selenium)を起動したところ下記のエラーが表示されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242659/6a1e2f09-2718-19bc-04b0-95a01e12bba2.png)

調べてみたところ、ChromeのWebDriver(Selenium)がクラッシュしてしまっている様子。
今回、その対応方法について備忘のために作成します。

# 対応方法
本番環境?のChromeがクラッシュした場合の対応方法について、Qiitaに記事がありました。
https://qiita.com/kazuki_hamatake/items/b37602254d6fed295475

記事を参照したところ、Chromeのショートカットに“–disable-features=RendererCodeIntegrity“を
追記すれば解決するよとのこと。

これをWebDriver(Selenium

元記事を表示

Uber【Uplift Modeling for Multiple Treatments】論文実装【Python】

# はじめに

この記事は、[Uplift Modeling for Multiple Treatments with Cost Optimization](https://arxiv.org/abs/1908.05372) の内容をベースとしています。
![Uber.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/696827/3ffa69e1-ae01-2396-8083-3ef9ca26689b.jpeg)
先ずはこの記事の構成を示します。

1. 論文の紹介 ([Uplift Modeling for Multiple Treatments with Cost Optimization](#uplift-modeling-for-multiple-treatments-with-cost-optimization))
2. X-Learner と Extending X-learner for Multiple Treatments のアルゴリズム ([X-Learner & Extending

元記事を表示

pydanticでUnion型を使うときはLiteralと組み合わせるといい

チャットボットを実装しており、「ユーザーの過去のリクエスト内容をRedisに保存しておいて、必要に応じて参照してbotの返信に利用する」という実装をしています。具体的には以下のような仕様とプログラムです。

1. ユーザーのリクエストのjsonを`Request`型にキャストして利用する
2. Redisでは、pydanticの型を`json`に変換して文字列として保存し、取り出すときに`Request`型にキャストする
3. 同時にそのjsonをログに出力する

“`python
from __future__ import annotations
from typing import Union, Optional
from typing_extensions import Literal
from .event import EventData

class Request(BaseModel):
user_id: str
session_id: str
command: Union[MessageCommand, ButtonCommand]

元記事を表示

コードスタイルをチェックするツール

###使うライブラリ
pycodestyle
>
Features
Plugin architecture: Adding new checks is easy.
Parseable output: Jump to error location in your editor.
Small: Just one Python file, requires only stdlib. You can use just the pycodestyle.py file for this purpose.
Comes with a comprehensive test suite.

flake8
>Flake8 is a wrapper around these tools:
PyFlakes
pycodestyle
Ned Batchelder’s McCabe script

pylint
>Pylint is a Python static code analysis tool which looks for programming errors, helps enforcing a co

元記事を表示

昼飯データベースを作りたい【EP1-4】はじめてのDjango勉強編

#本稿は続きものです。
[前回](https://qiita.com/EconUC/items/b9048d917159db35a860)
[前々回](https://qiita.com/EconUC/items/408ae1a7118fe8078369)
[初回のもの書き](https://qiita.com/EconUC/items/cf1f69cfefb6c63e4c31)

前回で`polls`のアプリケーションの機能を追加して投票アプリとして動くものとなりました。
最後にテストを行いバグの直しに差し掛かって前回は終わりました。

今回はDjangoチュートリアル5~7の内容をさらっていきます。

#包括的なテストの実施
前回作成したテストで`was_published_recently`のバグを修正しましたが、このバグ修正によって他の部分に影響してしまっては元も子もないので、それがないかをテストします。
以下を新たに`tests.py`の`QuestionModelTests`クラスの下に書き足します。

“`python:mysite/polls/tests.py
def

元記事を表示

Blenderスクリプトでプロシージャルにいのちを輝かせる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/6c3f3655-d953-998a-e222-47b2e1e0fe35.png)

 Blenderのスクリプトで、万博で話題になった**アレのような何か**を生み出していきます。乱数を基にプロシージャルに生み出しているので、無数のパターンのアレを生み出せます。Blenderのバージョンは2.8です。

# 第1段階 球の生成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/1c0e57af-dcc9-0420-5e5b-e6d4e60559e5.png)

“`python
import bpy
import numpy as np

#ここで赤マテリアルを設定
bpy.data.materials.new(name = ‘red’)
mat_red = bpy.data.materials[‘red’]
ma

元記事を表示

Windows10環境でLanguage Interpretability Tool (LIT)を実行(1.環境構築編)

Google ResearchがNLPモデルの理解と可視化をするプラットフォーム[Language Interpretability Tool (LIT)](https://github.com/PAIR-code/lit)をオープンソース化しました。試しに動かしてみたいと思います。

全3記事を予定しています。
**1. Windows10環境でLanguage Interpretability Tool (LIT)を実行(1.環境構築編)【本記事】**
2. Windows10環境でLanguage Interpretability Tool (LIT)を実行(2.機能確認編)
3. Windows10環境でLanguage Interpretability Tool (LIT)を実行(3.独自モデル編)

本記事では、**Windows10 Home環境**での**環境構築手順**について記載します。

#目次
1. [LITとは](#1-litとは)
2. [Docker Desktop for Windowsのインストール](#2-docker-desktop-for-win

元記事を表示

Pythonでゆっくりボイスを作ろう

PythonからSofTalkを利用して、ゆっくりボイスを.wav形式で保存したいのです

# 環境

– Python 3.8.3
– SofTalk 1.93.46
– Windows10

# 準備

SofTalkをダウンロードしておきましょう
以下のページから最新バージョンをダウンロードしておいてください
https://w.atwiki.jp/softalk/pages/15.html

# コマンドラインからSofTalkを使ってみる

同梱されている `help.chm` にも記載されていますが、コマンドラインからSoftalkを利用する方法があります
DLしたzipを解凍して

“`
start ..\softalk\Softalk.exe
“`

これでSofTalk本体を起動するとともに、以下の引数が利用可能です

### SofTalk引数早見表
ゆっくりボイスでは利用できない(Aquestalk10でのみ利用可能)な引数は除いています

|種類|値|効果|詳細|備考|
|:—-|:—-|:—-|:—-|:—-|
|/NM:|文字列|

元記事を表示

約数列挙 Python メモ

# 約数列挙
下の記事そのまんま。自分用にメモ。

参考)
https://qiita.com/LorseKudos/items/9eb560494862c8b4eb56

“`python
def make_divisors(n):
“””
約数列挙する関数

例) n = 100
⇒ 100 = 1 * 100, 2 * 50, 4 * 25, 5 * 20, 10 * 10
⇒ 1, 2, 4, 5, 10まで調べて、その対になるもの(n // i)もリストに入れる(n / iだとfloat)
⇒ 10 * 10のように重複を避ける &
“””
divisors = []
for i in range(1, int(n ** 0.5) + 1):
if n % i == 0:
divisors.append(i)
if i != n // i:
divisors.append(n // i)

元記事を表示

pythonでグラフを作ってみよう!!

#この記事の対象読者
今日はpythonで初めてのグラフ作りに挑戦します。pythonでどのようにグラグを作るのか気になった人は暇つぶしがてら見にいていって下さい。参考までに説明しますが今回の開発環境はgoogle diveのサービスを拡張した**Colaboratory**を使いますが、他の環境でも使えるはずです。もし今回の環境でやりたい人は[こちら](https://qiita.com/lot-uni/items/294cc6642e4605017469)を参考にして下さい。下準備は基本的に飛ばしてもらっていいんですが、もしグラフが表示できなかったら下準備を見直して見て下さい。

#下準備
始める前に大まかにどうな流れでグラフを作るのか説明しておきます。まずpython
の外部ライブラリーの**matplotlib**というグラフ作成などに役立つライブラリーをインストールして、x軸とy軸の点のデータをリスト型で格納して、最後に外部ライブラリーのplotと言う機能に先ほどのデータを代入してグラフが生成されると言う流れです。今回の環境では必要あませんが、ライブラリーのインストールをター

元記事を表示

DockerでPostgresの環境構築少し苦戦したのでメモ

下記を参考にDockerでDjangoの環境構築するかーと思ったところ少し詰まったのでメモ程度に残します。
https://docs.docker.jp/compose/django.html

docker-compose up -d でコンテナ立ち上げ用としたところDBのコンテナだけうまく立ち上がらず…

“`
toruchan:~/work/py-work$ docker-compose up -d
Starting pywork_db_1 …
Starting pywork_db_1 … done
Creating pywork_web_1 …
Creating pywork_web_1 … done
“`

“`
toruchan:~/work/py-work$ docker-compose ps
Name Command State Ports
———————————————————

元記事を表示

犬ですが何か?Django–URLから名前と日付を取得の巻

#URLアドレスから値を取得する
どうもこんにちは!柴犬のぽん太です。
この前、ずっとこっちを見ている柴犬がいると思ったら鏡でした。やれやれ。。

昨日の話題:「GETリクエストとクエリパラメータの巻」をやった後、考えてみたのですが、例えばURLが
http://example.com/Ponta/20200825/
(http://example.com/(名前)/(日付8ケタ)/)
の形式でリクエストを受け取ると、Pontaの2020年8月25日の日記が読めるようにできると思いましたので挑戦してみます。
犬にはなかなか難しい問題です。

##urlpatternsの設定
urlから値を取得するために、urls.pyのurlpatternsを設定します。

“`
(venv_dog) Ponta@shiba_app # cat wan/urls.py
from django.urls import path
from . import views

urlpatterns = [
path(‘//’, views.index, na

元記事を表示

バイオ系公共データベースからスクレイピングにより機械学習データを収集する

#概要
とある公共データベースから、データのスクレイピング方法を調べた時のメモ
※ スクレイピングする場合はサイトに負荷をかけないようにしましょう。

#動機
– 論文に記載されているデータで機械学習を試したかった。
– WEB画面の検索機能を用いることで、必要なデータを取得できることが分かったが、件数がそこそこあったため、コピペミス等防止のため、自動的に取得したいと考えた。
– そのサイトではREST APIも用意されていたが、仕様やWEB画面と同じ結果が得られるかを調べる手間が惜しかった。

#ゲットしたいデータ
蛋白質構造データベース [PDB](https://www.rcsb.org/) から、コロナウィルスのタンパク質を阻害する化合物(リガンド)を取得したい。

以下、データを手動で取得する場合の手順を示す。

## 1. 検索画面
検索画面 (https://www.rcsb.org/search/advanced) で条件を入力し、検索ボタン(虫眼鏡アイコン)をクリックする。
※以下は、生物種が「コロナウィルス」であり、阻害データとしてKiまたはIC50が存在するデ

元記事を表示

Raspberry Pi で秋月電子の4WD車 FT-MC-004 を使う

秋月電子の4輪車FT-MC-004をRaspberryPiで動かしましょう。
##FT-MC-004とは?
FT-MC-004は秋月電子のArduinoベースの4WD車のキットです。
価格は¥2,610です。
###4WD Mobile Robot Platform Kits for Education FT-MC-004
http://akizukidenshi.com/catalog/g/gK-13652/

FT-MC-004のキット構成は4個のモーターとモータドライバボード、シャーシとマイコンボード用のステーのセットになります。
兄弟機のFT-MC-002は2個のモーターとモータドライバボード、シャーシとマイコンボード用のステーのセットになります。
モーターの数の違いで2種類に分かれています。
ただし、そのままでは使えません。
##Raspberry Pi用のステーを作る
RaspberryPiとバッテリを置こうとすると厳しいです。
このため、タミヤ 楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット (70157)を使用します。
![DSC_0092 (2).

元記事を表示

Codeforces Round #652 (Div. 2) バチャ復習(8/24)

#今回の成績

![スクリーンショット 2020-08-24 16.53.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331393/376de68e-aea1-6aec-7437-ff9213085594.png)

#今回の感想

今回はだいぶ自分の思い通りに解けた気がします。ただ、まだスピードが足りないので、**解き感を上げていきたい**と思います。

#[A問題](https://codeforces.com/contest/1369/problem/A)

平行な辺があれば良いと思って問題を見返したら、$X$軸に平行かつ$Y$軸に平行な辺が少なくとも一つずつ存在すれば良いということだったので、辺の本数が四の倍数である時のみ”YES”を出力しました。図形的勘でコンテスト中には通しましたが、中心角に注目すれば証明は容易です。

“`python:A.py
for i in range(int(input())):
n=int(input())
print(“YES”

元記事を表示

OTHERカテゴリの最新記事