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

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

IQ Bot カスタムロジック関連処理まとめ

紙業務の自動化をサクサク進められるAutomationAnywhereの[IQ Bot](https://qiita.com/IQBotter/items/fab5f59230ff38a98bbd)。

取得したデータの品質を上げたり、後続処理をやりやすい形に加工・成型するのに便利なカスタムロジックに関連する記事をQiitaでちょこちょこ書いているので、一覧にまとめてみます。

#カスタムロジックの関連記事まとめ

##カスタムロジックの基本

**[IQ Bot のカスタムロジック 基本のキ](https://qiita.com/IQBotter/items/67694b1b0d1376ede7e7)**
↑初心者も上級者もまずはここから!

**[他の言語をやっていた人が初めてPythonを触ったとき、びっくりするかもしれない5つのポイント](https://qiita.com/IQBotter/items/3381346c40ae3a67fa34)**
↑Javaなど、Python以外のプログラミング経験がある人は、これを読めばスムーズにカスタムロジックには入れるはず!

##や

元記事を表示

PythonGUIによる簡易営業ツール作成:原価率計算

#PythonGUIによる簡易営業ツール作成:原価率計算
仕入金額(仕切金額)と販売金額(納入金額)を入力して、原価率を自動で計算します。
原価率を1から引くと利益率になります。

“`
import tkinter as tk
root=tk.Tk()
root.geometry(‘300×200’)
root.title(‘マージン’)
def btn_click():
x=float(txt_1.get())
y=float(txt_2.get())
z=txt_3.insert(0,x/y)
lbl_1 = tk.Label(text=’仕切’)
lbl_1.place(x=30, y=70)
lbl_2 = tk.Label(text=’納入’)
lbl_2.place(x=30, y=100)
lbl_3 = tk.Label(text=’原価率’)
lbl_3.place(x=30, y=130)
txt_1 = tk.Entry(width=20)
txt_1.place(x=90, y=70)
txt_2 = tk.Entry(width=2

元記事を表示

AtCoder Beginner Contest 098 過去問復習

#所要時間
スクリーンショット 2020-04-09 13.31.30.png

#感想
昔はXORの問題が解けなかったのですが、二進数におけるそれぞれの桁に分けて計算すると簡単になるという基本を覚えたらだいぶ解けるようになりました。
Dの説明とコードがわかりにくいので改善案をお待ちしています。

#[A問題](https://atcoder.jp/contests/abc098/tasks/abc098_a)

単純にmaxを求めれば良いです。

“`python:answerA.py
a,b=map(int,input().split())
print(max(a+b,a-b,a*b))
“`

#[B問題](https://atcoder.jp/contests/abc098/tasks/abc0

元記事を表示

GoogleのOR-Toolsでナップサック問題を解く – 組合せ最適化問題の基礎を実践

## :bow_and_arrow: この記事の目的

組合せ最適化問題の代表的な問題の一つ、ナップサック問題について、簡単な例題を通してその定式化と解法を学びます。
また、定式化した後、実際に解を求めるツールとして、Python言語によるGoogle製のOR-Toolsを使用し、実際にプログラミングして解を求めます。

## :bow_and_arrow: 組合せ最適化問題とその定式化について

何かを決定する際に、物事を「選択する」「選択しない」を選んだり、対象の集合から条件の要素を取り出す、あるいは順序付けるなどその組み合わせのパターンを考える問題を組合せ最適化問題と言います。

今、以下のようにiまたはjを1から始まる整数として、問題により予めわかっている定数a,b,cと解を求める対象の変数xについて、

“`math
a_i (i = 1,2,3,…,m) …予めわかっている定数\\
b_i (i = 1,2,3,…,m) …予めわかっている定数\\
x_j (j = 1,2,3,…,n) …xは整数
“`

上記の定数や変数による線形式(足し算や掛け算の多

元記事を表示

Pythonのlistはリストじゃない

Python、流行ってますよね。
Pythonの強みの一つと言っていいのが`list`。中に入れるオブジェクトの型を選ばない寛大な`list`さんですが、題名にあるように厳密には**リストではありません**。
今回はそのことについて、CPythonのソースコードとともに解説していこうと思います。

※本記事ではCPythonのソースコードを参照しますが、その都度解説を入れるのでそこまで詳しいC言語の知識は必要ありません。多分。

# まず、リストって何?
[リスト](https://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%B9%E3%83%88_(%E6%8A%BD%E8%B1%A1%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B))とは、「順序つきのデータコンテナ」です。
端的に言うと、データに順番を付けてひとまとめにしたものです。

この記事を読んでくれている方はPythonistaが多いかと思いますのでPythonで実装したいのですが、Pythonでは厳密なリストの実装ができないのでC++でミニマルなリストのプログラムを

元記事を表示

Pythonで毎日AtCoder #31

### はじめに
[前回](https://qiita.com/taxfree_python/items/5e15be3bf8e0603b2b0e)
\#24の続きです。今日は[ARC031-B](https://atcoder.jp/contests/arc031/tasks/arc031_2)を解きます。

### #31
[ARC031-B](https://atcoder.jp/contests/arc031/tasks/arc031_2)

**考えたこと**
最初はDFSの書きかたが分からなかったので、[記事](https://qiita.com/ally772221/items/cd6436723dc379c1d83e)を読みました。しかし、検索しても再帰関数を使ったものしか出てこなかったので、今回はstackを使って解きます(それしか知らない)。
[この問題の一つ前の問題](https://atcoder.jp/contests/atc001/tasks/dfs_a)との違いはゴールが設定されていないことです。最初はこれで躓きました。ゴールが無いので探索の終了条件をうま

元記事を表示

snowman でpythonのリストを整理

pythonの配列の書き方

整理したかったけど、なかなか理解できないので、隠れジャニヲタなわたしがジャニーズを使って
公式を覚えるためのものです。

※補足
今回使用するsnowmanというグループはそもそも6人で活動
その後3人増員され9人でデビュー。
しかし2020/4/8現在 1人が活動自粛中です。

この情報とっても重要

リストの基本構文

“`旧snowman.py
snowman = [
“深澤辰哉”,
“岩本照”,
“渡辺翔太”,
“宮舘涼太”,
“阿部亮平”,
“佐久間大介”
]
print(snowman)
“`
上記を実行すると下記のようになる。

“`旧snowman.py実行結果
[‘深澤辰哉’,’岩本照’,’渡辺翔太’,’宮舘涼太’,’阿部亮平’,’佐久間大介’]
“`

1人だけ取得したいとき

リストは0~始まる番号で中身を特定しており、[]内に番号もしくは

元記事を表示

Django 汎用クラスビューでアクセス元を一意に識別する方法

2020-04-08 作成: windows10/Python-3.8.2-amd64/Django-3.0.4

Django でユーザーの行動解析を行うためには、アクセス元の IP アドレスをログに残すだけでは不足しています。ユーザーを一意に識別するには、誰がアクセスしたかを HTTP サーバーのログに残すのが簡単です。

HTTP サーバーのログに Django のユーザー ID を残すには、レスポンスヘッダをカスタマイズします。汎用クラスビューで Django のユーザー ID をリクエストヘッダに追加する方法を書いておきます。

参考

Django を初めて使う人は、こちら。
[10 分で終わる Django の実用チュートリアル](https://qiita.com/taiyaki/items/352d36cda37af74eb826)

# レスポンスヘッダを追加したビュークラスを定義

追加したいレスポンスヘッダ userid を汎用ビュークラスに追加。

元記事を表示

NetworkXでConnecting Nearest Neighborを作る

少し前にConnecting Nearest Neighborのアルゴリズムでネットワークを作りたい!と相談された時に、調べまわってもPythonで、かつNetworkX等のパッケージを使ってやってみている例が見当たらなかった記憶があるので投稿します。自分だけの力で作り上げたわけではないですが、投稿にあたっていろいろ手を加え分かりやすくしました(したつもりです)。改善点等あれば、いろいろ教えていただければと思います。

# 環境
* python 3.6.9
* networkx 2.4
* matplotlib 3.2.1
Google Colabを使いました

# NetworkXとは

[公式ページ](https://networkx.github.io/documentation/stable/index.html#)

諸先輩方がためになることを沢山書いてくださっているので、多くは語りません。

* [グラフ理論とNetworkX](https://docs.pyq.jp/python/math_opt/graph.html)
* [【Python】NetworkX 2.0の

元記事を表示

Numpy100本ノックで出会った「こりゃあ、便利だなぁ~」と思った関数一覧

# 概要
会社の研修中にNumpy100本ノックに取り組みさせられましたが、そもそも関数を知らないと倒せない問題が数多くあり、知識不足を痛感しました。
その、僕が初めましての関数の中でも「便利だなぁ~」と思ったものを忘備録を兼ねてご紹介するのがこの記事になります。

# 筆者プロフィール
プログラミング歴:約1年(Pythonのみ)
Numpyは[この本](https://www.oreilly.co.jp/books/9784873118451/)で勉強しました。

# 初めに
初めての関数に出会ったら、ググるよりも先にhelpを見た方が圧倒的に理解が早いです。
helpは

“`python
np.info([関数名])
ex) np.info(np.add)
“`
jupyter notebookであれば

“`python
[関数名]?
ex) np.add?
“`
で表示されます。
関数の説明のみならず、引数の種類や使用例まで載っており、情報量がとても多いです。
英語なので慣れていないと苦痛に感じるかも知れませんが、是非参考にしていただきたいです。

# 「便利だなぁ

元記事を表示

HDAのUIにPySideを使用する

# 概要

Houdini18.0からHDAのUIにPySideを使えるようになりました。
例えばこういったリストビューを使ったマテリアルを一覧し、アサインするツールを作ったりする事が可能です。
![MatBrowser.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332597/48e13c24-9519-f0dd-c33c-07524b0dc2f0.gif)

# 方法

HDAのUIをPySideにするにはPython Panel Editorを使います。
Python Panel Editorについては下記ページが参考になると思います。

– [Houdini Python PanelでカスタムUIを作る](https://qiita.com/towazumi/items/cb7e5ae0fa609d4294c2)
– [Python Panel Editor(公式)](https://www.sidefx.com/ja/docs/houdini/ref/windows/pythonpanele

元記事を表示

サイバーセキュリティプログラミングをすすめる

# 目的
linux,ネットワーク、python初心者が[サイバーセキュリティプログラミング](https://www.oreilly.co.jp/books/9784873117317/)を読み進めるうえで引っかかったことを残しておく。未解決も残しておく。 (進捗に応じて追記する。)

##2.6 TCPプロキシの構築
#### 引っかかったこと
* Non-ASCII character ‘\xe3’
* [参考](https://qiita.com/KEINOS/items/6efc1147b917d7811b5b)
* Python2系ではUTF-8で書いていることを明示する必要がある
* コメントになっているのに意味があったなんて…

* 実行にあたって
* sudo ./proxy.py 127.0.0.1 21 ftp.example.com 21 True
* これ実行できない気がするんだけど…
* sudo しなくても21番待ち受けはできてるっぽい(root権限だからかな…)
* FTPクライアントソ

元記事を表示

【競プロ初心者向け】AOJ 「ITP I」40問をpythonで解いてみた

# はじめに
本記事では[「レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】」](https://qiita.com/e869120/items/f1c6f98364d1443148b3)で紹介されているAOJの[「Introduction To Programming I」](http://judge.u-aizu.ac.jp/onlinejudge/finder.jsp?course=ITP1)の40問をPythonで解説します。

 僕自身、プログラム未経験で競技プログラミングをはじめました。入門書である[「独学プログラマー Python言語の基本から仕事のやり方まで」](https://www.amazon.co.jp/dp/4822292274)を読んでから[「Introduction To Programming I」](http://judge.u-aizu.ac.jp/onlinejudge/finder.jsp?course=ITP1)に取り組みました。あくまで個人の話ですが、40問を解いたあとには[Atcoder](h

元記事を表示

新型コロナウイルス感染者情報の特徴をwordcloudで可視化してみた

# 概要

– 新型コロナウイルス(COVID-19)の日本の感染者情報を取得
– mecabで形態素解析
– wordcloudで特徴語を可視化

# 参考

### 新型コロナウイルス(COVID-19)の感染者情報

– https://qiita.com/ryo-ma/items/20db8cd20f1086838249
– 感染者情報と思われるデータ: https://raw.githubusercontent.com/swsoyee/2019-ncov-japan/master/Data/resultSignateDetail.csv

### config

– config.py

“`python
import re
import os

### MeCab
POS_LIST = [10, 11, 31, 32, 34]
POS_LIST.extend(list(range(36,50)))
POS_LIST.extend([59, 60, 62, 67])
STOP_WORDS = [“する”, “ない”, “なる”, “もう”, “しよ”, “でき”,

元記事を表示

TwitchIOでTwitchのBotを作る

## はじめに
**TwitchのBotってPythonで作れるのかな~**と調べていたところ日本語の記事が見つからず、英語アレルギーの自分には苦しい翻訳作業の連続だったので、僕と同じような英語アレルギーの人のお役に立てたらなと記事にして残しておきたいと思います。

**TwitchIO**というラッパーで簡単に作れるようなので、今回はこれを使用してBotを実際に作るところまで1から説明していきたいと思います。(エディタは省略)
原理まで書くととても長くなってしまうので機能を深く掘り下げるのはまた今度として、**挨拶を返してくれるBotが完成**するところまでです。**面倒くさいわけでは決してありません(クソデカボイス)**

この記事をきっかけに日本人ユーザーが増えてQiitaの記事も沢山出始めてくれたらな~と願っています。

また、間違った説明をしてしまっている箇所がありましたらコメントの方にお願いします:bow_tone1:
## TwitchIOとは
https://github.com/TwitchIO/TwitchIO
> An Asynchronous IRC/API W

元記事を表示

ABC備忘録[ABC161 C – Replacing Integer] (Python)

#ABC161 C – Replacing Integer
##問題文
>青木君は任意の整数$x$に対し、以下の操作を行うことができます。

>###操作
$x$を$x$と$K$の差の絶対値で置き換える。

>整数 Nの初期値が与えられます。この整数に上記の操作を0回以上好きな回数行った時、とりうるNの最小値を求めてください。

>###制約
$$
0≤N≤10^{18}
$$
$$
1≤K≤10^{18}
$$
入力は全て整数

[C – Replacing Integer](https://atcoder.jp/contests/abc161/tasks/abc161_c)

##解法
行う操作は、例えば$N=7$、$K=4$のとき$x$から$K$を差分の絶対値が最小になるまで引くことなので、$x=7,x=3,x=1,x=3$と$x$が変化していく。
よって求める$x$は$1$となる。
なお、$x=1$以降は$x$は$1$と$3$を繰り返す。

ただこの操作を$N$と$K$が大きいときに愚直に繰り返すと大変なので、求める最小値は$N/K$の余りか$K – (N/K)$の余りであるこ

元記事を表示

PythonGUIによる簡易営業ツール作成:社員番号検索

#Pythonで簡易営業ツール作成方法:社員番号検索
営業でちょっとしたときに作成したツールを共有します。
Googleで調べながらSpyder(Python3.7)で作成してみました。

“`
import tkinter as tk
root=tk.Tk()
root.geometry(‘300×200’)
root.title(‘社員’)
def btn_click():
x=txt_1.get()
if x==”田中”:
txt_2.insert(0,1)
elif x==”鈴木”:
txt_2.insert(0,2)
elif x==”山田”:
txt_2.insert(0,3)
else:
txt_2.insert(0,”該当なし”)
lbl_1 = tk.Label(text=’苗字’)
lbl_1.place(x=30, y=70)
lbl_2 = tk.Label(text=’社員番号’)
lbl_2.place(x=30, y=100)
txt_1 =

元記事を表示

Python の基本③

基本はこれで最後です。

# 関数、組込関数

プログラムのまとまりを関数として定義して使うことができます。

また、pythonそのものに予め設定されてる関数を
組込関数といいます。

変数のプログラム番と考えればいいかと

## メソッド

特定の値に大して処理を行う物をメソッドといいます。

“`:メソッド
値.メソッド名()
“`
という形で書きます。

また、値の要素などを取り出すインスタンス変数というものもあります。
インスタンス変数は関数ではなく変数なので引数を持ちません。

“`:インスタンス変数
値.インスタンス変数名
“`

という形式で書きます。

appendを例に出すと以下のようになります。

“`python:append
# append()は、リストに新しい要素を1つだけ追加したい場合に使用するメソッドです。

alphabet = [“a”,”b”,”c”,”d”,”e”]
alphabet.append(“f”)
print(alphabet)
# [“a”, “b”, “c”, “d”, “e”, “f”]が出力される
“`

#

元記事を表示

Qiskit: Qiskit Aquaを使わないQAOAの実装

# はじめに

私の最初の記事で,[TSPをQAOAで解いてみた](https://qiita.com/hotaru_46/items/c2b7a7e8cef0e8ac179c)というものを投稿しました.しかし,これはqiskit aquaという自分で回路を設計しなくても可能ないわゆるモジュール化されたものを使用していました.
そこで今回はqiskit aquaを使わずにQAOAを使ってみたいと思います.まず,最初の段階としてmax cutを用います.正直,他の問題もハミルトニアンを変更するだけでなんとかなると思いますので,qiskitで量子プログラミングをしていく人たちの参考になればなと思います.
日本語で量子プログラミングを解説いているサイトは複数ありますが,どれも別の量子プログラミング言語を用いていることから,qiskitで記述している私の記事にも意味はあると考えています.

なお,今回の記事でもQAOA自体の解説は他の方にお任せするとしてqiskitのコードの解説をしていきたいと思います.

参考: [Quantum Native Dojo](https://dojo.qula

元記事を表示

?着る服が少なくなったら通知する「sentaquiq」を作ってみたの巻?

記事をご覧くださりありがとうございます!
初めまして。AI/IoT分野のプロフェッショナルを目指して修行中の、のぶたんです。?

今回は、**服の状態を監視して、服が少なくなったらメールで通知するIoTシステムを自作してみた**ことについて書いている記事です。
この洗濯アラートサービス「SENTAQUIQ」を使うことで、早めに服を洗濯することで、「着る服がない!!」という困りごとを解消することができます(^▽^)/

#システム構成
![sentaquiq1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/55ae7717-81a7-e690-a6d4-2dc95b825a14.png)

#試作版SENTAQUIQ
![MVIMG_20200405_193320_2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/5a4f1eb8-f123-c724-cc4b-0718478326bd.jpe

元記事を表示

OTHERカテゴリの最新記事