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

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

【Python】pythonファイルを一覧化・選択・実行できるツールをtkinterで作成したこと&引っ掛かった部分について

#1.この記事について
##きっかけ
最近pythonで実装したツールをいくつか作った。
コンソール上からの起動にもダブルクリック起動にも対応できるようにしたので、
windowsショートカットに設定して(後述)、便利に起動できるようにしたかった(いずれスクレイピングツールも作成予定なので、その準備のためにも)。

ただ、拡張子pyのファイルひとつひとつにショートカットを設定しているといずれバッティングを起こす上に不用意な起動をしかねないので、
設定したフォルダ下のpythonファイルを一覧化表示し、そこから選択して実行できるGUIツールを作成することにした。

pythonのGUI作成にはtkinterという便利なライブラリがあると聞いたので、それを利用する。

##前提
拡張子pyまたはpywのファイルをpython.exe(あるいはpythonw.exe)と関連付けしてある状態であること。
関連付けとは → [http://www.first-pclife.com/pckiso/kanrenduketoha.html](http://www.first-pclife.com/pc

元記事を表示

眺めて覚えるGo言語 その8 PythonからGO言語を呼ぶ1(引数文字列)

# pythonからGo サブルーチンへの引数 文字列
### byte列をポインターで渡す。

“`pcgo1.py
from ctypes import *
lib = cdll.LoadLibrary(“./golib.so”)
a=lib.fun1(c_char_p(b”hello world”))
“`

“`golib.go
package main

import “C”
import “fmt”
//export fun1
func fun1(a *C.char) int {
fmt.Println(C.GoString(a))
return 0
}

func main() {}

コンパイルと実行
>go build -o golib.so -buildmode=c-shared golib.go
>python pcgo1.py
hello world
“`
– c_char_p(b”hello world”)は、バイト列ポインター扱い
– C.GoString(a)は、受け取ったバイト列ポインターをGO stringへ

#文字列の受

元記事を表示

【Python】Tkinterによる複数ウィンドウの作成

# はじめに
こんにちは。

この記事ではTkinterを用いた複数のウィンドウを作るためのソースが分かる記事となっています。
よろしくお願いします。

# 環境
– Windows 10 home
– Python 3.7.1

# ソースコード

こちらが完成したソースコードになります。
ぜひ実行してみてください。

“`main.py
import tkinter as tk

class Application(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
master.geometry(“300×300”)
master.title(“ベースウィンドウ”)

self.window = []
self.user = []

self.button = tk.Button(master,text=”ウィンドウ作成”,command=self.buttonClick,width=10)
self.button

元記事を表示

Python3で配列をクイックソートする

はじめに

皆さん2020年あけましておめでとうございます。ryuichi69と申します。
本日もアルゴリズムの練習のアウトプット、説明の練習がてらこの文章を書きました。正直分かりやすく書くのが大変で、説明の分かりにくい部分、要件漏れ等がありましたらご連絡下さい。

クイックソート

概要

まずソートとは、配列の要素を昇順または降順に並び替える事を言います。

ソートの方法は何種類もありますが、そのうちクイックソートとは、配列の基準値を起点として、それより大きいものの配列、小さいものの配列に小分けにしていって行ってソートしていく手法です。

クイックソートの例

例えば配列a=[5,6,3,1,8]があり、これを昇順にクイックソートする事を考えます。さらに配列内の中央値を基準値とします。

ここで配列aの要素の中央値は3ですね。この3を境目に3より小さい要素を下の青、3より大きい要素を下の黄色のように、半分に2分割していきます。さらに下の図の2回

元記事を表示

単回帰モデルを通してベイズ推定の流れとPystanの使い方を学ぶ

# はじめに
[RとStanではじめる ベイズ統計モデリングによるデータ分析入門](https://www.amazon.co.jp/%E5%AE%9F%E8%B7%B5Data-Science%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-R%E3%81%A8Stan%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B-%E3%83%99%E3%82%A4%E3%82%BA%E7%B5%B1%E8%A8%88%E3%83%A2%E3%83%87%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AB%E3%82%88%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E5%85%A5%E9%96%80-KS%E6%83%85%E5%A0%B1%E7%A7%91%E5%AD%A6%E5%B0%82%E9%96%80%E6%9B%B8/dp/4065165369)を読みました。わかりやすく、詰まることなく読みすすめることができました。おすすめです。

元記事を表示

pyenvでインストールしたanacondaのJupyter NotebookをZshで使う(不具合対応)

# 概要
事の起こりは2019年末,Jupyter Notebookを久しぶりに動かそうとしたら起動できなかった.
色々と調べた結果,ターミナルをbashからzshに変更したことで,パス設定を直さなければいけないことが分かったけれど,自分の場合はpyenvでanacondaを入れていたので,さらにややこしいことになっていた.

# 症状
– ターミナルから”Jupyter Notebook”と打つと,”zsh: command not found: jupyter”と返ってくる
– ターミナルからPythonのバージョンを確認すると,macにデフォルトで入っていた古いバージョンが出てくる
– anaconda navigaterからJupyter Notebookの起動はできる
– [jupyter notebookが起動しなくなった原因はconda init zsh? ](https://code-graffiti.com/the-reason-why-jupyter-notebook-does-not-start/)を参考にパスを設定するも,不具合が解決しない(そもそも,”Use

元記事を表示

【Python】JSONファイルのデータを元にOutlook新規メールを作成するツールを作成したことと、引っ掛かった部分について

#1.この記事について
主目的は、
日次メール作成作業や月次定期メールなど
定型的な作業を効率化したかったこと。

第二の目的は、
Pythonにおけるjsonファイルの扱いや
Outlookの連携を学習したかった。
(率直なところOutlookをいじるだけなら
Excelにデータを載せてVBAで作成するのが
一番正着なんではないかと思うけど)

######[※ツールとソースコードはGithubに上げてます(後述)](#5終わりに)

#2.やりたいこと
・jsonファイルの項目を考える
・jsonファイルをハンドリングするクラス作成
・Office Outlookをハンドリングするクラス作成
・上記クラスを連携してメール作成するmainメソッドの開発

#3.使用したツール・環境
・Windows10
・Python 3.7.0
・office2016
・その他下記コードに記載のライブラリ各種

#4.作成したコードと解説

##クラス図
pycharmで作成したクラス図はこのようになる。
![OutlookMailCreater.png](https://qiita-image-

元記事を表示

自作データセットを作るためにSeleniumで画像スクレイピングをしてみた(Python)

##1. はじめに
近年の機械学習ブームによりプログラミングスクールなどで機械学習について学ぶ人が増えています。
私もその一人だったのですが、プログラミングスクールでは、sklearnやスクールが提供しているデータセットを使用して機械学習を行うことが多いです。
そのため、そのデータセットを使用して制作物を作ると、少し物足りない感じがしたので、自作のデータセットを作ろうと考えました。
そこで今回は自作でデータセットを作りたい人のために今回はSeleniumを使って画像スクレイピングし、大量の画像データを取得する方法を紹介します。

##2. 環境
OS : macOS Mojave ver. 10.14.6
言語 : Python 3.7.2
ブラウザ : GoogleChrome ver. 78.0.3904.97

##3. 今回やりたいことの流れ
①自作したいデータセットの内容を考える。
 今回は機械学習で日本人と外国人を判断しようと考えたので、日本人の画像と外国人の画像を取得する。

②画像検索したキーワードのリストを作成する。

③PythonでSeleniumを起動する。Ya

元記事を表示

[blender 2.8] スカートメッシュにボーンを自動でセットアップするスクリプト

# はじめに

Vtuberが流行ってだいぶ経ってしまいましたが、最近今さらながらBlenderでの3Dキャラクターモデル作りにはまっています。せっかくスカートをモデリングしてもカチコチの剛体だと流石にアレなので、Blenderの物理シミュレーションを使ってみたいですよね。

今回は、その作業を一部自動化するときに使ったスクリプトについて書いていきたいと思います。

**私自身Blender歴1か月程度なのでもっと良い方法があるとは思いますが、その際はコメントで優しく教えていただければ幸いです。あとあまりコードは綺麗ではありません…**

# 目的

クロスシミュレーションが適用されているメッシュがあったとき、そのメッシュの変形に追従するようなボーンを自動で設定する。

**補足**

そもそもなんでクロスシミュレーションに追従するボーンが必要なんじゃ、という話ですが、例えば:

* クロスシミュレーションの結果をボーンのアニメーションに変換してBlender以外のソフトに出力する。
* 同じクロスシミュレーションの結果を複数のオブジェクト(二重のスカートとか)に反映させる。

という

元記事を表示

ケモインフォマティクスで学ぶPythonプログラミング 第1回:変数とデータ型

# はじめに

製薬企業の仕事では、化合物の構造を扱うことがよくあります。
自社で合成した新薬候補の化合物やその代謝物、および生体内にもともと存在する内因性の代謝産物(アミノ酸、糖、脂質など)の濃度測定や構造解析をするスキルは重要です。

そこでここでは、生体内に存在する脂質の網羅的解析であるLipidomics(リピドミクス)を題材としてPythonのプログラミングについて解説していきます。
脂質は、様々な構造を持つ分子種が生体内に存在しており、*in silico*で構造を生成できる分子種は100万種を越えます。
こうした分子種の構造を一つ一つ記述したり、分子量や極性などの物性値を算出したりするのは手作業では現実的に難しく、プログラミングが必須になります。

脂質の構造や物性値をプログラミングで扱えるようになれば、新薬候補化合物を対象とするケモインフォマティクスにも応用が利きますので、是非習得してもらえればと思います。

今回は、「変数とデータ型」について解説していきます。
ケモインフォマティクスの実践例を中心に説明していきますので、基本を確認したいという人は以下の記事を読んでから

元記事を表示

感染症数理モデル事始め PythonによるSEIRモデルの概要とパラメータ推定入門

# 初めに
 感染症数理モデルの勉強を少ししたので、モデルの概要とPythonによる実装を紹介する導入的な記事を書きました。当方は当該分野のプロではありません。そのため、誤り等があるかもしれませんが、そこはお許しください。また、誤りがある場合ご指摘をいただけると幸いです。
## 感染症数理モデルとは
 感染症の流行を評価するために微分方程式を用いたモデルが感染症数理モデルです。そのうち今回は最も単純なSEIRモデルについて記載していきます。

SEIRモデルでは、すべての人口を次の集団に区分して、その時間発展を微分方程式で表現します。
– S(Susceptible):免疫がなく感染しうるもの
– E(Exposed):感染源に接触しているが、潜伏期にあり未だ発症していないもの
– I(Infected):感染症が発症しているもの
– R(Recovered):発症から回復し、免疫を得たもの

 各集団の説明を見ればわかるように、S→E→I→Rと順々に遷移していきます。その変化を微分方程式であらわすと、最も単純なモデルでは次の通り表すことができます。本記事ではもっぱら次の式を扱っ

元記事を表示

Python 仮想環境の概要と作成方法

# Pythonの仮想環境
仮想環境について、よくわからないまま使用していたため調べてみた。
本記事では、仮想環境とは何か、どうやって作成するのかを簡単に説明する。

## 仮想環境って何?
簡単に言うと、**プログラムを動かす空間**のこと。
この空間にさまざまなライブラリをインストールして使えるようにする。

## なんで仮想環境を作るの?
「ライブラリ同士の干渉」「ライブラリとフレームワークの相性の悪さ」といった問題を解決するため。
#### 仮想環境がないと…
– 仮想環境なしでフレームワークやライブラリを使用した場合、ライブラリ達が1箇所にどんどん追加されていく。
– 結果、複雑なライブラリ同士が干渉してうまく機能しないことがある。

#### 仮想環境を利用すると…
– 「python3.x系の機械学習用の仮想環境」「python2.x系の分析用の仮想環境」のように、好きにpythonのバージョンを選び、使うフレームワーク・ライブラリを選択することが可能になる。
– 結果、ライブラリ同士の干渉などの問題を回避できる。

## pythonの仮想環境の種類は?
– v

元記事を表示

PythonでABC102のA~C問題を解く

### はじめに
[前回](https://qiita.com/taxfree_python/items/fdcc2bdac8e67fe277b5)からratedコンテストには出てないので進捗はないです。
今回は解説を読んでCまで解けました。
深夜に書いてるので、日本語間違えてるかもです
###A問題
[問題](https://atcoder.jp/contests/abc102/tasks/abc102_a)

**考えたこと**
nは入力値
何を考えずに解いたので、nが偶数の時を考慮していなくてWAがでました。nが偶数のときは必ずnになるので、

“`python
n = int(input())
if n % 2 != 0:
print(n*2)
else:
print(n)
“`
です。
###B問題
[問題](https://atcoder.jp/contests/abc102/tasks/abc102_b)

**考えたこと**
入力された数列をソートして最大値から最小値を引けばいいので、

“`python
n = int(input())
a =

元記事を表示

AtCoder Beginners Contest 過去問チャレンジ5

# AtCoder Beginners Contest 過去問チャレンジ5

## ABC134D – Preparing Boxes

i = N から i を減らしながら順に確定していけば、特に難しいことはない.

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

t = [0] * N
for i in range(N – 1, -1, -1):
t[i] = (sum(t[2 * (i + 1) – 1::i + 1]) % 2) ^ a[i]

print(sum(t))
print(*[i + 1 for i in range(N) if t[i] == 1])
“`

## ABC080D – Recording

ぱっと見では imos 法一発に見えるのだが、S – 0.5 があるので、何も考えずに imos 法をすると、同じチャンネルの連続する録画が 0.5 の間だけ2台になってしまう罠.

解決法として一番簡単なのは、imos 法をやめてしまうこと. `+= 1` ではなく `=

元記事を表示

PythonでABC101のA~C問題を解く

### はじめに
[前回](https://qiita.com/taxfree_python/items/264f6db542a939b0041e)からratedコンテストには出てないので進捗はないです。
タイトル詐欺になってますが、Cは解けませんでした。
### A問題
[問題](https://atcoder.jp/contests/abc101/tasks/abc101_a)
**考えたこと**
sは入力値
出力はsの中の’+’と’-‘によって決まるので、sの中の’+’と’-‘をカウントすればいいと考えた。

“`python
s = list(input())
print(s.count(‘+’)-s.count(‘-‘))
“`
countメソッドはintで返されるので、そのまま計算しています。

###B問題
[問題](https://atcoder.jp/contests/abc101/tasks/abc101_b)
**考えたこと**
nは入力値
最初に考えたのは、nをどうやって十進法の桁表示にするかです。最初は、桁を数えて$10^{桁数}$で割って計算しようかと思

元記事を表示

None と is

“`py
empty = None

if empty is None:
print(‘変数emptyはNoneです。’)

print(1 is True)
print(1 == True)
print(1 is 1)
print(True is True)
“`

“`:実行結果
変数emptyはNoneです。
False
True
True
True
“`

元記事を表示

Djangoでbitflyerの収支管理アプリを作ってみる(まとめ)

Djangoでbitflyerの収支管理アプリを作ってみるシリーズが結構溜まって来たので、まとめを作成。

設計をする。
https://qiita.com/redmeteor777/items/b373d884ba1e507a6b91

00.事前準備とプロジェクトを作成する。
https://qiita.com/redmeteor777/items/54178a7229b70fce55b3

01.URLマッピングを作成する。
https://qiita.com/redmeteor777/items/0d499c7849ad0f3df441

02_01.ログイン画面を作る。
https://qiita.com/redmeteor777/items/1b974f15ac8b0e87a17d

02_02.ログイン画面を作る②。
https://qiita.com/redmeteor777/items/8fd573b2aee3dfa20515

02_03.ログイン画面を作る③。
https://qiita.com/redmeteor777/items/fd649baf4375318

元記事を表示

Djangoでbitflyerの収支管理アプリを作ってみる(04_02.ダッシュボード画面を作成する。)

前の。
Djangoでbitflyerの収支管理アプリを作ってみる(04_01.ダッシュボード画面を作成する。)
https://qiita.com/redmeteor777/items/64f2288457c850666221

views.pyの編集。

1.bitflyerのAPIを叩いて必要なデータを取得します。
2.取得したデータをHTMLに埋め込めるように成型します。
 forループで1行ずつ取り出し、HTMLタグを埋め込んでいきます。
3.出来上がった文字列をparamsにdict形式で格納し、引数として渡します。

いきなりコードが長くなりましたが、やってることはそんなに複雑じゃないので…

あ、見ての通りAPIキーはダミーです。
まだモデル(データベース)を作成していない為、コード内に直接埋め込んでいます。
試してみたい方は、自力でAPIキーとシークレットを発行してくださいね。

“`views.py
from django.shortcuts import render
from django.http import HttpResponse
from .f

元記事を表示

Lambda + OpenCVで画像処理 (グレー画像作成)

# Lambda + OpenCVで画像処理 (グレー画像作成)

この記事は[サーバーレスWebアプリ Mosaic](https://mosaic.w2or3w.com “Mosaic”)を開発して得た知見を振り返り定着させるための[ハンズオン記事](https://qiita.com/w2or3w/items/87b57dfdbcf218de91e2)の1つです。

以下を見てからこの記事をみるといい感じです。

* [AWS Amplifyを利用してS3へファイルアップロードとLambda呼び出し](https://qiita.com/w2or3w/items/fb82544f001296087bd7)

##イントロダクション
S3への画像アップロードをトリガーに、その画像に対して画像処理をさせるLambdaのファンクションをPython3.6で実装します。
画像処理にはOpenCVを利用します。

##コンテンツ

### GithubにLambdaファンクションプロジェクト用のリポジトリを作成
GitHubにプロジェクト用のリポジトリを作成しましょう。
リポジトリ名は `

元記事を表示

サーバーレスWebアプリを開発するためのCloud9環境構築

# サーバーレスWebアプリを開発するためのCloud9環境構築

この記事は[サーバーレスWebアプリ Mosaic](https://mosaic.w2or3w.com “Mosaic”)を開発して得た知見を振り返り定着させるための[ハンズオン記事](https://qiita.com/w2or3w/items/87b57dfdbcf218de91e2)の1つです。

##イントロダクション
Cloud9で開発してまして、なので、その環境構築からはじめます。
VueのWebアプリ、Lambda用のPython(3.6)、などを開発・ビルドできるようにします。

## コンテンツ

### AWS Cloud9 環境の新規作成
AWSマネジメントコンソール > AWS Cloud9
![Screenshot 2019-12-22 at 21.14.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394775/37b15543-5a7c-ca57-034f-c38cf24562c8.png)

元記事を表示

OTHERカテゴリの最新記事