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

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

Lake Counting(POJ NO.2386)をPython3で解く

#蟻本の練習問題初級編
競プロの勉強中の者です。
探索問題で有名なLakeCountingをPythonを使って解いたので載せます。
再帰関数で解く方が多いのですが、僕はスタックを使って解きました(再帰がまだできない…)
以下が実装したコードです。
テストケースを2通りしか試していないので、処理できないパターンがあったら申し訳ありません。

“`lakecounting.py
n,m=map(int,input().split())
field=[list(input()) for i in range(n)]
visited = [[0 for i in range(m)] for j in range(n)]
move = [[0,1],[1,0],[1,1],[0,-1],[-1,0],[-1,-1],[1,-1],[-1,1]]

cnt=0

for i in range(n):
for j in range(m):
if field[i][j] == “W” and visited[i][j]==0:
sx,sy=i,j

元記事を表示

ラズパイのデスクトップから任意のPythonスクリプトを起動

`home/pi/Desktop/aaaa/my_excellent_script.py`
をデスクトップからダブルクリック(+1クリック)で起動できるようにします。

# Pythonコードに記述
“`python
# これは最初の行に記述。ハッシュ記号も含めて書くこと。
# シバンって呼ばれる。このファイルはPythonスクリプトだよってLinuxに伝える。
#!/usr/bin/env python3

# デスクトップから起動すると、作業フォルダがデスクトップになってしまう。
# 相対パスで色々指定している場合は必要。
os.chdir(‘/home/pi/Desktop/aaaa/’)
“`

# シェルで実行
“`sh
# 実行権限を付与。これでダブルクリックした際に「端末で実行」が出てくる
cd Desktop/aaaa/
chmod +x my_excellent_script.py

# リンクの作成。Windowsでいうショートカット。
# 左がリンク元のフルパス。右は何でもOK。
cd Desktop
ln -s my_excellent_script.py

元記事を表示

ACPTE 11-20

[AtCoderProblemsのTrainingをPython3でやる Easy編](https://qiita.com/hortensia/items/364f33a7909c169cdd45)
↑これの11-20のやつです。

# 11.[ABC068-B Break Number](https://atcoder.jp/contests/abc068/tasks/abc068_b)
Nが$2^i$以上か否かをi=6から0まで降順に調べるとわかります。
全列挙でもいいですが内包表記を使うとオシャレでいい感じだと思いました。

“`python
n=int(input())
a=[2**i for i in range(6,-1,-1)]
for i in a:
if n>=i:
print(i)
break
“`

# 12.[ABC160-C Traveling Salesman around Lake](https://atcoder.jp/contests/abc160/tasks/abc160_c)
これプログラミングコンテス

元記事を表示

pythonでDyson扇風機の操作 やってみた

#はじめに
aloha !
本日(2020/8/17)、浜松では、国内最高の41.1度(タイ)を記録したそうです。
熱中症には十分ご注意ください。
そんな暑い中、我が家では数年前に購入したのDyson Pure Hot + Cool Link(扇風機)もエアコンと併用して大活躍です。
このDyson Pure Hot + Cool Linkをpython3からコントロールしてみようと思います。
どうやら、いろいろ検索してみたところ、MQTT(Message Queuing Telemetry Transport)を使うと実現できそうです。

#準備物
・Dyson Pure Hot + Cool Link (HP03)
・Python3が動くMacなど
・Wi-Fi(同一LANセグメント)
・Wireshark(必要であれば。フィルタをmqttにすると確認しやすいです)

#方針
いろいろ調べていくとDysonアカウント(メールアドレス)とパスワードが必要だそうです。
Dysonの公式アプリ(Dyson Linkアプリ)へ登録するとアカウントを発行できます。
このDysonアカウントと

元記事を表示

Geopandasを使いたいけれどインストールに失敗(関連するパッケージが正しく認識されていない?)

※この記事は問題解決ができたわけではありません。対処がわかったらその段階で追記してゆきたと思います。
追記しました。根本的な問題は解決できていないですが、別の環境をあきらめて作り、geopandasをインストールしました。

**Geopandasを使いたい**
GISデータで扱われる主要なファイル形式としてシェープファイル(.shp)がありますが、
各々のフィーチャにくっついている膨大な量の表データもPandasのように扱うことができれば、その表の値に応じたデータ処理ができればということで調べていた時に[Geopandas](https://geopandas.org/”Geopandas”)でそのようなことができると知りました。

早速今の環境にも導入したい!arcpyとの併用もできるだろうか、と早速インストールをしてみたのですが、ここで早速発生してしまったエラーの対処ができず参りました。

**インストールで行った手順**
普通にconda install geopandasを実行

“`python3
(arcgispro-py3) C:\Users\hoge\AppData

元記事を表示

AIやるうえで知っといた方がよい線形代数の知識

※すいませんが数式(一部の行列)の表示がおかしくなり修正方法を調べ中のため、一旦、画像でどんと掲載します^^;

![余因子.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32777/549426e0-5cb2-3886-3278-129e850fc957.png)

元記事を表示

Flask-paginateの表示文言の日本語化

# 概要
Flaskで簡単にページング機能を実装しようとした際、Flask-paginateが便利です。
しかし、Flask-paginateで表示した場合、表示される文言が英語で表示されてしまう為、
日本語のアプリを作る際にそのままでは使用できません。
今回は、Flask-paginateでの表示文言の日本語化方法を記載します。

## 前提条件
– Flask
– Flask-paginate

## 方法
– Paginateクラスをインスタンス化する際にdisplay_msgを引数に設定する

“`sample.py
from flask import Flask, Response, render_template, request
from flask_bootstrap import Bootstrap
from flask_paginate import Pagination, get_page_parameter

@app.route(‘/index’)
def index():

page_disp_msg = ‘表示範囲 {start}件 – {

GISを扱うための環境づくり arcGIS proとそれに付随するpythonのインストールの記録

買い替えたばかりのPCにGISデータとpythonを扱うための関連ソフトを入れていきます。ArcGISはすでに所有しているBasicアカウントを使用。
**PCの環境**
・windows10(x64)
・intel corei7, メモリ16GB, 256GB SSD

**入手するソフト**
・ArcGIS Pro 2.5 Esri製品サポートサイトから。 ArcMAPとの違いがいまだによく分かっていません。
・Atom テキストエディタは基本的にこれを使う。

**作業手順の記録** 
・まずArcGISをインストール。ファイルの抽出先フォルダにOneDriveのフォルダが勝手に選ばれていたが普通のローカルフォルダにおいてほしいと思いCドライブのユーザーディレクトリに変更しました。OneDriveを避けて展開する方法がわからず、ひとまずは必要ないからとOneDriveごとアンインストール。そのあとはセットアップツールの指示にそのまま従ってセットアップが終了しました。
・ArcGIS Proのインストールと同時に付随してPython環境が自動的に導入されました。

“`
C:\U

ROS noeticでImportError: No module named rospkgを解決する

# ImportError: No module named rospkg
いつもどおり
`rosrun rqt_topic rqt_topic`
したら何故かこのエラーが出たので、同じ目に合った人のためにメモを遺す
# 原因
Ubuntu 20.04.1だとpythonコマンドはpython2系をまだ指しているので、何もしないでrosrunするとこっちが動いてしまう。しかしROS noeticはPython3で動くように作り直されているのでPython2では動かない。
# 解決法
update-alternativesでデフォルトを置き換えてやればいい。一応2系に戻せるようにそっちも登録しておく。
“`sudo update-alternatives –install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives –install /usr/bin/python python /usr/bin/python3.8 2“`
私の手元の環境に合わせて決め打ちしたが、マイナーバージョン一個ぐ

AtCoderProblemsのTrainingをPython3でやる Easy編

[ここ](https://kenkoooo.com/atcoder/#/training/Boot%20camp%20for%20Beginners)のEasy100のことです。
@tnodino さんの[この記事](https://qiita.com/tnodino/items/e4c1caef800e87464093)をみて「面白そうだなー」と思ったので勝手にパクりましたごめんなさい。
10個やるたびにあーだこーだ書いて公開するプランです。
提出したコードと、解いたときの考えと、解説を見て思ったことを書こうと思います。

[1-10](https://qiita.com/hortensia/private/31d7982f6d7481c8a8e1)
[11-20](https://qiita.com/hortensia/items/658ea99b8485f7e0fca4)

ここからまだやってない

21-30
31-40
41-50
51-60
61-70
71-80
81-90
91-100

【AtCoder】Beginner Contest 175 ABCD python 解法紹介

# 成績
初めての参加でした。
ABCを正解しましたが、D問題で挫折。
アルゴリズムは正しいようですが、バグが最後まで取れませんでした。
パフォーマンスは904です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218309/f8383058-b7d3-41d7-1484-39ccdf9c1362.png)

# 感想
色々解説を見てみましたが、問題をどうシンプルに解釈するのか(インデックスを0からに修正したり、負の座標を絶対値で正の座標に移したり)が大切だと思いました。
また解法も自動化にこだわらず、全列挙するような解き方もありなのだと知ることができました。
そして、次回はD問題解きたいです。

# [A問題](https://atcoder.jp/contests/abc175/tasks/abc175_a)
– 私の回答
Rの連続する回数を数えました

“`A.py

input_str = input()
cnt = 0
max_cnt = 0
for tmp in inpu

オブジェクト指向についての論理的な考え方をまとめてみました。

#オブジェクト指向について
#####これから説明する中で使われる用語を簡単にまとめました。
“`
オブジェクト = 全てのデータのこと、物、

オブジェクト指向 = 一言で言うと「抽象的な概念」=それぞれの持つ共通の情報をまとめたものから個別の情報を持った物を作る

メソッド = プログラミングにおける何らかの処理をすること。例えば print(“hello world”)
“hello world”と言うのが**オブジェクト**。これを出力するための処理が**print**になります。つまりprintメソッド)

クラス = 設計図のこと

インスタンス = 設計図(クラス)で作られた実体のこと
“`

##**はじめに**
RubyやPython(オブジェクト指向言語は他にもあります。)と言うのは全てをオブジェクトとして扱っています。オブジェクトと言うのはそれぞれが固有の性質、固有の動作を使って返り値を返します。
例えば、現実世界で例えると、人間一人一人(Aさんと言う人間、Bさんと言う人間。)と言うのは別々のオブジェクトになります。一人の人間に「Aさん」と言うオブジェクトがあ

Python3エンジニア認定基礎試験の独学 Day1

参考書:『Pythonチュートリアル』第3版
購入先:Amazon

1章 食欲をそそってみようか 出題数:1 出題率:2.5%
2章 Pythonインタープリタの使い方 出題数:1 出題率:2.5%

第1章 食欲をそそってみようか
1.pythonの特徴
(1)WindowsでもMacOSXでもUNIXでも簡単に使え、仕事が早く終わるようになる。
(2)シェルスクリプトやバッチファイルに比べると、大きなプログラムを書くために提供された構造やサポートがはるかに多い。
(3)エラーチェック構造ははるかに多く、また超高水準言語として、柔軟な配列や集合、ディクショナリと言った、非常に高水準のデータ型を組み込みで持つ。
(4)Pythonで書いたプログラムは、分離されたモジュールとして再利用が可能だ。
(5)プログラムを小さく読みやすく書ける。
  理由:①高水準のデータ型が、複雑な操作を単一文で表記することを可能にしている。
     ②文のグルーピングは、カッコで囲うことでなくインデントで行われる。
     ③変数や引数の宣言が不要
(6)Pythonは拡張可能である。

2.以下は

Flaskで画像ファイルを保存する方法

##やること
APIで取得したURLから画像ファイルをダウンロードしてFlaskアプリケーションで表示しようと思ったけど、
そういえばやりかた調べてなかったので調べた結果メモ

##概要
・WEBサイト上のファイルを保存するには通常のファイル作成と同様にOpenメソッドを使用する。
・画像データはバイナリ形式であるため、書き込み形式は「wb」を使用する。
・write処理のとき、文字列データの場合は「xxx.text」だが、画像ファイルなどのバイナリ形式の場合は「xxx.content」を使用する。
・Flaskで作成したアプリケーションで使用する画像ファイルは「static」ディレクトリに格納する必要がある。

##Flaskのディレクトリ構造
“`bash
├── __pycache__
├── main.py
├── static
│   └── qdevtxu00je.jpg
└── templates
   ├── index.html
   ├── layout.html
   └── list.html
“`

##バックエンド
“`python
outp

TkinterとOpenCVを使用したWebカメラ画像表示プログラムの作成

###最初に
自分用メモ
TkinterとOpenCVを使用してWEBカメラから取得した画像をGUI表示するプログラムの作成

###環境
windows10
python 3.8.2
opencv-python 4.2.0.34
numpy 1.19.0
Pillow 7.2.0

###プログラム本体

“`python:app.py
import cv2
import tkinter as tk
from PIL import Image, ImageTk
import tkinter.ttk as ttk

# define valiable
width = 640
height = 480

class SsFrame(ttk.LabelFrame):
def __init__(self, master=None, text=None):
super(SsFrame, self).__init__(master, text=text)
self.start_b = ttk.Button(self, text=”start”, comm

PythonとWebAPIによる店舗出店状況など地理情報の分析の自動化 Automation of a research on geographical information such as store network

# 何か / What
店舗の出店状況などの分析をPythonとWeb API (Google geocode, 地理院)を用いて自動化しました。
自動化した箇所は以下の3点です。
①店舗の住所の取得
②住所から経度、緯度の取得
③経度、緯度から距離の取得

これにより、例えば以下のことができます。
例1)自店舗の冗長性の調査。ある店舗から見て、半径3km以内にある店舗を列挙。
例2)競合店舗との距離の調査。ある自店舗から見て、半径3km以内にある他店舗の列挙。

より簡潔には、こちらのレポジトリをご確認ください。
https://github.com/taiga518/automation-geo

Automated a research on geographical information such as store network using python and Web API.
Automation includes the following three parts.
1. Collecting address information
2. Converting add

今回のプロジェクトを振り返ってみる。(2020年夏):vol. 1:Django Rest Framework:リンク集

## イントロダクション

2020年2月頃より進めてきたプロジェクトがようやく一区切りつきそうなので、使用した技術について振り返りも含めたリンク集となります。
プロジェクト内での役割的には、ほぼ要件定義メンバー兼任のプロジェクトマネージャーでプロジェクト終盤に実装も手伝ったという形となります。
そのため実装メインで関わっていたわけではないので、以下「Django Rest Framework」に関する理解が不十分な点があるかもしれませんが、何らか役立つような情報が記載できればと思います。

## リンク集
### [Django REST framework 実践入門](https://slideship.com/users/@massa142/presentations/2018/05/RjVo67zy1JyQiYqe3GgpLB/)

2018/5/19公開の資料なので2020/08/02現在では、もしかしたら内容的には若干最新ではないかもしれませんが、以下についてまとめられています。

– Serializer
– serializers.Serializer

ABC175やってみた(個人的備忘録)

最近競プロを始めて、せっかくだからコンテスト参加しようと思ってたのに忘れてたのでついさっきやりました。
Cまではできました。

#A Rainy Season
こういうことですよね?

“`python
s=input()
if s==”RRR”:
print(3)
elif “RR” in s:
print(2)
elif “R” in s:
print(1)
else:
print(0)
“`

#B Making Triangle
ソートして全探索で間に合うと思ったのでそうしてみました。
3つずつ切り抜いてからソートとどっちが早いんでしょう。私はよくわかってません。

“`python
n=int(input())
l=sorted([int(i)for i in input().split()])
ans=0
for i in range(n-2):
for j in range(i,n-1):
for k in range(j,n):
if (l[i]!=l[j]and l[j]!=l[k]

【Python】配列内の要素を全て結合

Pythonでスクレイピングを勉強しています。1ページごとの値を取得したかったのですが、class名などが被りいらない値まで取ってきやがりました。そこで今回は、「1ページ毎の配列をとりあえず全部結合させて、正規表現でいる部分だけ略奪作戦」をやっていきたいと思います。

## 工程

1. 配列内の要素を全て結合させる
1. 結合させたやつに、正規表現をかける
1. 正規表現にmatchした部分だけ採取

この**Japan**だけが欲しい

“`py3
list = [‘非表示’, ‘非表示’, ‘非表示’, ‘非表示’, ‘非表示’, ‘Japan’, ‘非表示’]
“`

## 配列内の要素を全て結合させる

“`py3
list_join = (”.join(list))
print(list_join)
# 非表示非表示非表示非表示非表示Japan非表示
“`

## 正規表現をかけ、いる部分だけ採取

“`py3
list_join = (”.join(list))
compile = re.compile(‘[a-zA-Z]+’)
print(”.join

Python3のvenvで仮想環境を作成するところまで

# Python3のvenvについて
## 参考
[仮想環境とパッケージ](https://docs.python.org/3/tutorial/venv.html)
### 環境
– OS
– Windows10
– WSL2: Ubuntu18.04
– 言語
– anyenv
– pyenv
– python 3.8.5

## 導入
[Introduction](https://docs.python.org/3/tutorial/venv.html#introduction)

– Pythonで自己完結型のディレクトリツリーを作成すること。
– ディレクトリごとにモジュールを独立させること。

## 仮想環境の作成
– venvは通常、入手可能な最新バージョンのPythonをインストールします。
– (pyenvなどを使用することによって)システムに複数のバージョンのPythonがある場合は、任意のバージョンを実行して特定のPythonバージョンを選択できる。
– 仮想環境を作成するには、それを配置する