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

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

enzyme.datからEC numberとUniprot entryの対応表を作る

## enzyme.datとは
[ENZYME](https://enzyme.expasy.org/)という酵素の命名に関する情報のデータベースファイルのこと
ファイルには

“`
ID Identification (Begins each entry; 1 per entry)
DE Description (official name) (>=1 per entry)
AN Alternate name(s) (>=0 per entry)
CA Catalytic activity (>=1 per entry)
CF Cofactor(s) (>=0 per entry)
CC Comments (>=0 per entry)
PR Cross-references to PROSITE

元記事を表示

アズールレーンの周回操作をPythonで自動化したい その1

注:アプリをandroidエミュレータ(Nox)上で動作させます。利用は自己責任でお願いします。

Noxのインストール、使用方法については[NoxPlayer公式サイト](https://jp.bignox.com/)を参照

## 記事を書いた経緯

スマホゲーム「アズールレーン」はオート戦闘機能はあるものの、
周回自体はかなりめんどくさい[^1]。
[^1]: 戦闘以外(出撃→接敵→戦闘→勝利→接敵→…)は自動化できない。マップ上に敵が出現する位置もランダムなので、マクロで一括自動化というのも不可能。

[アズールレーン赤城加賀自働周回マシーン](https://kobineko.hatenablog.com/entry/2017/11/13/223825)という記事を見つけたが自分はpythonしか扱えないので途方に暮れる。
どーにかならんもんかなと調べてたら、pythonでも画像を使った自動操作が行えることを知る。
[PyAutoGuiで繰り返し作業をPythonにやらせよう](https://qiita.com/hirohiro77/items/78e26a59c

元記事を表示

#2_Raspberry Pi 3B+からLINEに天気予報を通知

#Raspberry Pi 3B+からLINE Notifyを使ってスマホに天気予報を通知

東京に来てから突発的な雨にうたれることが多くて
「朝ちゃんと天気予報をチェックしておけば…」と後悔することがしばしば。

LINEに毎朝天気予報が送られてくればいいんじゃない?と思い立って作ってみることにしました。

####1.下記のURLからLINE Notifyへ
https://notify-bot.line.me/ja/

####2.右上の「ログイン」ボタンをクリックしてLINEアカウントにログイン
![image5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308518/021ec82d-cd0f-7c99-8d30-9d9dad007f28.png)

####3.右上の自分のアカウント名の右矢印を押して「マイページ」をクリック
![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308518

元記事を表示

Pythonでトランプゲームのブラックジャックを実装してみた

# はじめに

前回は[こちら](https://qiita.com/p-t-a-p-1/items/ef34310e5a58fce8d217)にもある通りトランプの山札機能を作成しました。

前回の山札機能を利用して、今回はブラックジャックのメインゲーム機能を実装してみました。
実際にプログラムを書き、既存の要件からどう言った部分を自分だったら拡張するか?とか考えたりして色々勉強になったと思います!

# 機能要件

基本的なルール・要件はこちらの[プログラミング入門者からの卒業試験は『ブラックジャック』を開発すべし](https://qiita.com/hirossyi73/items/cf8648c31898216312e5)にあるものをそのまま参考にさせていただきました!

> – 初期カードは52枚。引く際にカードの重複は無いようにする
> – プレイヤーとディーラーの2人対戦。プレイヤーは実行者、ディーラーは自動的に実行
> – 実行開始時、プレイヤーとディーラーはそれぞれ、カードを2枚引く。引いたカードは画面に表示する。ただし、**ディーラーの2枚目のカードは分からないよ

元記事を表示

yukicoder contest 248 参戦記

# yukicoder contest 248 参戦記

## [A 1052 電子機器X](https://yukicoder.me/problems/no/1052)

29分で突破. N=10,11 について K=1~8 まで手で求めたらようやく分かりました(笑). N が偶数のときは、Kが奇数のときは偶数、Kが偶数のときは奇数しかでてこないので、最大が N / 2 になります. N が奇数のときは、偶数奇数両方とも出てくるので最大 N になります.

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

if N % 2 == 0:
print(min(K + 1, N // 2))
else:
print(min(K + 1, N))
“`

## [B 1053 ゲーミング棒](https://yukicoder.me/problems/no/1053)

突破できず. WA 2個まで AC した後、3つに分かれているやつが一つでもあれば無理というのが抜けたまま、他に条件を満たすことが出来るパターンがあるのかと悩んで終了(

元記事を表示

Django コマンド メモ

### 開発環境

#### virtualenv
インストール

“`
$ pip3 install virtualenv
“`
仮想環境のディレクトリの作成

“`
$ mkdir work #①
$ cd work #②
$ virtualenv -p python3 venv #③
$ source venv/bin/activate #④
(venv) $ tiyurinoMacBook-proとなっていれば完了 #⑤
“`
仮想環境から離脱

`$ deactivate`

仮想環境を削除したい場合はディレクトリごと削除してしまえばOK
`$ rm -rf venv`

***
仮想サーバー起動
`$ python manage.py runserver`
サーバーURL
` http://127.0.0.1:8000/`

お世話になったサイト
https://creepfablic.site/2019/10/25/python-virtualenv/

元記事を表示

ゼロから始めるLeetCode Day26「94. Binary Tree Inorder Traversal」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day25「70. Climbing Stairs」](https://qiita.com/KueharX/items/5a8993968c995b074737)

基本的にeasyのacceptanceが高い順から解いていこうかと思います。

元記事を表示

タプルについて

“`python
num_tuple = (10, 20)
print(num_tuple)

x, y = (10, 20)
print(x, y)

x, y = (10, 20)
print(x, y)

x, y = 10, 20
print(x, y)

a = 100
b = 200
print(a, b)
a, b = b, a
print(a, b)
“`

元記事を表示

リストのコピー

“`python
i = [1, 2, 3, 4, 5]
j = i
j[0] = 100
print(‘j = ‘, j)
print(‘i = ‘, i)

x = [1, 2, 3, 4, 5]
y = x.copy() # y =x[:]と書いても同じ処理が行えるがわかりにくいので推奨しない
y[0] = 100
print(‘y = ‘, y)
print(‘x = ‘, x)
“`
出力
j = [100, 2, 3, 4, 5]
i = [100, 2, 3, 4, 5]
y = [100, 2, 3, 4, 5]
x = [1, 2, 3, 4, 5]

“`
X = 20
Y = X
Y = 5
print(Y)
print(X)

X = [ ‘a’, ‘b’]
Y = X
Y[0] = ‘p’
print(Y)
print(X)
“`
5
20
[‘p’, ‘b’]
[‘p’, ‘b’]

元記事を表示

PC搭載Webカメラの画像をOpenCVから読み込む

# 環境
* Windows 10
* Python 3.8
* pip
* numpy

# インストール
`pip install opencv-contrib-python`
pythonインタプリタ上から`import cv2` が通ればインストール成功

# サンプルコードの実行
参考 
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_gui/py_video_display/py_video_display.html

注意:閉じるボタンではなく’q’キーで抜ける

“`python
import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
# Capture frame-by-frame
ret, frame = cap.read()

# Our operations on the frame come here
gray = cv2.cvtColor(fra

元記事を表示

openpyxlで余白を設定する

余白を設定できるらしいんですが、方法を探しても見当たりませんでした。
公式に使い方の例が載っていなくて右往左往していましたが、解決です。
以下の関数内の、ws.page_margins.left = 0.4から続くところです。
設定はインチ単位なので気をつけてください。0.4インチで約1センチです。

“`Python
import openpyxl

def new_workbook(path):
wb = openpyxl.Workbook()
ws = wb.active

# 余白
ws.page_margins.left = 0.4
ws.page_margins.right = 0.4
ws.page_margins.top = 0.4
ws.page_margins.bottom = 0.4

ws.page_margins.header = 0
ws.page_margins.footer = 0

# 印刷の向き(横)
ws.page_setup.orientation = ‘

元記事を表示

rdkitのエラーを非表示にする

本当に数が多くて`RDKit WARNING: [–:–:–] WARNING: not removing hydrogen atom without neighbors`のようなエラーを非表示にしたいときは以下のようにする。

“`
from rdkit import RDLogger
RDLogger.DisableLog(‘rdApp.*’)
“`

元記事を表示

Nuxt&Django REST FrameworkでCRUD PUT,DELETE編

# 概要

フロント:Nuxt
バックエンド:Django REST Framework(以下DRF)
で新しいプロジェクトなどを立ち上げた時に設定などをいちいち調べるのがめんどくさくなったため、まとめておきます。

ただ、設定ファイルだけを書くのでは個人的に記事として物足りない。

なので、ついでに基本的な操作であるAPIを叩いてCRUDを行い、会員登録を実装するところまで書く予定です。
なお、今回はDBはSQLiteを使います。PostgreSQLやMySQLなど他のRDBが使いたい場合はDRF側のDBの設定を書きかえるだけなので、そちらの設定は各自よろしくお願いいたします。

ひとまずこの記事では、NuxtからDRFで作ったAPIを叩いてデータベースの内容をアップデート、及びデリートするところまでです。

ソースコードは[こちら](https://github.com/Kuehar/nuxt-django)にあるのでわからないところは適宜見てください。

また、[Twitter](https://twitter.com/kueharx)かこの記事のコメント欄でわからないところを聞

元記事を表示

【Python】[Module ‘×××’ has no ‘×××’ member] の解消

# 結論

“`python:math.py

import math
result = math.log(100)
print(result)

“`

“`python:hoge.py

import math
result = math.log(100)
print(result)

“`
に変更した。(※ファイル名を変更している)

# 原因
importの部分でmathという数学関数モジュールを読み込んでいるが、ファイル名と同じになっているのが問題であった。ファイル名をmath以外のものに変更した。

元記事を表示

Pythonでネットワークプログラム 

TCP通信
サーバ側
サーバ側のプログラムは基本的に以下の流れで構築する

socketでソケットを作成 TCP通信を用いる場合は、引数にAF_INET, SOCK_STREAMを指定する
bindでアドレスとポート番号を指定
listenでクライアントの接続を待つ
acceptでクライアントの接続を受け付ける
sendやrecvを使ってクライアントのデータの送受信を行う
closeでソケットを閉じる
の流れで行う

元記事を表示

Pytorch を久しぶりにさわる前に見るやつ(途中)

# import

“`.py
import torch
“`

最低これは必要。むしろこんなレベルで忘れるとか、どうなってるのかと。

# tensor の作成

参考:
– [TORCH.TENSOR](https://pytorch.org/docs/stable/tensors.html): 最低限これの冒頭は見ておくべき。
– [【Pytorch】torch.Tensorの作成と基本操作](https://codezine.jp/article/detail/11052)
– [pytorch Tensor操作チートシート](https://qiita.com/dokkozo/items/e173acded17a142e6d02)
– [pyTorchのTensor型とは](https://qiita.com/mathlive/items/241bfb42d852bb801b96)

## 要素を指定して作成

次元数はいくつでも作れる。2次元以上の場合、要素の数が列と行であってないとエラーになる。

“`.py
>>> x = torch.tensor([1,2,3,

元記事を表示

lightGBM全パラメーター解説(途中)

# 内容
lightGBMの全パラメーターについて大雑把に解説していく。内容が多いので、何日間かかけて、ゆっくり翻訳していく。細かいことで気になることに関しては別記事で随時アップデートしていこうと思う。間違っている際には、ご指摘いただけると嬉しいです。
lightGBMの公式githubは[こちら](https://github.com/microsoft/LightGBM)

基本的な説明形式は、デフォルト=default, 型=type, オプション=options, 制約=constraints

コアパラメーター(Core Parameters)
—————

– “config“ , default = “””“, type = string, 別名: “config_file“

– 設定ファイルのパス

– **Note**: CLIバージョンでのみ使用可能

– “task“ , default = “train“, type = enum, options: “train“, “predict“, `

元記事を表示

指数分布と最尤推定量(MLE)のpythonのコードの例

ここでは指数分布に関する基本的な問題と、それに関連した最尤推定量の問題をpythonで解いてみたいと思います。

## 問題1

“`math:

N氏のホームページのアクセスの間隔のT(単位:時間)は、指数分布\\
f(t) = 2 e^{-2t}~~~~ (t>0)\\

に従うという。このときP(T\leq 3)を求めよ。
“`
まずは諸々の準備。

“`ruby:
import sympy as sym
from sympy.plotting import plot
sym.init_printing(use_unicode=True)
%matplotlib inline
oo = sym.oo # 無限大
(x,t) = sym.symbols(‘x t’)
“`
次に確率密度関数のグラフを描いてみます。

“`ruby:
expr =2* sym.exp((-2*t))
# 得られた関数のグラフを0から3まで図示。
plot(expr, (t, 0, 3))
#念のため確率密度関数になっているかも確認。
sym.integrate(expr, (t, 0, oo

元記事を表示

【Python3, Kali Linux】情報セキュリティマネジメント入門

## Wing IDEの起動

“`
wing-personal7.2
“`

## urlibを使ってデータを取得・保存

“`python
import urllib.request

url = “
imagefile = “hoge.jpg”
urllib.request.urlretrieve(url, imagefile)
“`

## Kali Linuxのネットワーク設定変更とpingの実行

VMの設定を“Bridged Adapter“に変更

“`
ping
“`

## tracerouteの実行

Firewallの存在を検知

“`
traceroute
“`

## nmapによるポートスキャン

“`
nmap -20 # 20台分スキャン
“`

## TCPクライアント

“`python
import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #(アドレス定義, 通信方式

元記事を表示

調整さんに入力する文字列をPythonで自動生成してみた

恒例のクソコード

#調整さんの入力は結構面倒

ご存知[調整さん](https://chouseisan.com/)は複数人での日程調整に便利なオンラインツールですが、候補日程を全部手書きするとなかなかな手間です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/f39652d4-002e-beaf-6ace-24e712ae654a.png)
例えば候補日を「5/20~29の10日間」、時間帯も各日3つずつ候補があったりすると手で入力するのはなかなか大変なので自動化しました。

#Python
内容はコメントしてるとおりです

“`Python:chousei.py
# Python3
import datetime
import locale

date = datetime.datetime(2020, 5, 18) #候補日初日(西暦年,月,日)
days = 10 #候補日数(最初の日-最後の日)
arg=[“9:00~12:00”, “12:00~15:00”

元記事を表示

OTHERカテゴリの最新記事