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

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

AtCoder Beginners Selection 10題をPythonで解くぞ!!!

#はじめに
フロントサイドのエンジニアとして活動していたのですが,最近になってPythonを勉強し始め,競技プログラミングに興味を持ち始めました.
そこで今回は[AtCoder](https://atcoder.jp/)における[AtCoder Beginners Selection](https://atcoder.jp/contests/abs)の10題全問をPythonを使って解きたいと思います!
私はPythonに関しては初心者ですのでご容赦頂けますと幸いです.(アドバイスや指摘は大歓迎します.)
それでは早速解いていきましょう!!

ー現在進行形で記事を執筆中(12/4 17:00までに完成)ー

#入力方法について
AtCoderでは各問題で様々な入力方法が指定されます.
これが初心者にとっては少し厄介です.
ですが,今回の記事ではアルゴリズムに焦点を当てていますので入力方法については[こちらの記事](https://qiita.com/katsuofukuoka0225/items/7a542f995cb4c7a56284)を参照くださいませ.

#PracticeA-W

元記事を表示

Python3 入力の指定方法 6種

#背景
AtCoder等の競技プログラミングの問題では入力の形式が指定されます.
その際,あらゆる入力形式を指定されるため.その都度コードを考えなくてはいけません.
どうせならそんなところで時間を割きたくはないですよね?
そこで,本記事ではAtCoder Beginners Selectionにおける10題に沿って入力形式とそのコードをまとめます.
問題解説は[こちらの記事](https://qiita.com/katsuofukuoka0225/items/b588e672e1a3ca8fa483)を参照してください.

#標準入力
最もシンプルな入力

##str型
“`python
a = input(“表示される文章”)
“`
デフォルトがstr型なので最低限のコードで済みます.
ここでは入力を変数aに代入しています.
数値を入力しても文字列として認識されますのでご注意ください.

##int型
“`python
b = int(input(“表示される文章”))
“`
input全体にintを適用します.
またAtCoderでは数値入力の際に文章を表示させる必要はな

元記事を表示

[Python]斜めに情報を引き継ぐ

# 概要
[ABC183 E – Queen on Grid](https://atcoder.jp/contests/abc183/tasks/abc183_e) で、右下へ移動する方法の数の累積和を記録する必要があった。
直前と現在の 2 つの配列を用意し、直前の値を参照して現在の値を更新する方法もあるが、1 つの配列を使って書くこともできる。

# 2 つの配列で引き継ぐ

右上の値を 10 倍するサンプル。

“`python
import numpy as np

h, w = 3, 4
A = np.zeros((h, w), int)
prev = [0, 1, 2, 3]

for y in range(h):
A[y] = prev
cur = [0]*w
for x in range(w):
cur[x] = w+y if x == w-1 else 10*prev[x+1]
prev = cur

print(A)

# 結果
# [[ 0 1 2 3]
# [ 10 20 30 4

元記事を表示

PDF・Word・PowerPoint・Excelファイルのパスを入力すると、ファイルの文字列部分を連結した単一のstrオブジェクトを返すメソッド

##1. 実行時に走らせるコード

以下を実行すると、__引数に渡したファイルパスのファイル__が、以下のいずれかである場合、__ファイルの中にあるテキスト文字列を文字列連結した、単一の*str*型オブジェクトが、返されます。__

1. PDFファイル
2. Wordファイル
3. PowerPointファイル
4. Excelファイル

__返り値__は、__単一の*str*)型オブジェクト__です。

##( 事前にインストールしておくべき資源 )

“`bash:
pip install python-docx
pip install openpyxl
“`

##( 実行例 )

“`bash:Terminal
% ls
000717009.xlsx JNGI2019_Zentai.pptx honbun.docx
29zen10kai2.pdf __pycache__ text_from_string_files.py get_text_from_arg_filepath.py
% ipython
“`

“`Python3:ipyth

元記事を表示

今日からPythonエンジニアになろう

# はじめに
この記事は「Python勉強したいな」という方向けに圧倒的初心者の自分が「Python3の開発環境構築をVScodeで実現する」過程を先人の知恵をかりながら(**他力本願で**)解説したものになります。
記事を見ながら一緒に環境構築してみましょう!!
今回は[Anaconda](https://techacademy.jp/magazine/15703)を使ってPython3のインストールとVScodeでの軽い設定を行っていきたい思います。ちなみにAnacondaはPythonでよく使われるライブラリを最初からまとめたくれたものになります。

# 開発環境
Python3.8

# 手順

## 1.Anacondaのインストール
[Python3環境構築](https://ai-inter1.com/python-install/#AN2)を参考にAnacondaのインストールを行っていきます。
以下をクリックしてホームページに飛びます。
[Anaconda](https://www.anaconda.com/download/)

下の方にスクロールす

元記事を表示

Let’s challenge LeetCode!! _1

Hello,teams(*´ω`)

I have studied some algorithms for two month.
Yes, I am going to keep practice it.
BTW, I will try to solve problems by my knowledge in parallel.
If you know more simple and fast program, please teach to me.

**[Q1.TWO SUM](https://leetcode.com/problems/two-sum)**
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
You may assume that each input would have exactly one solution, and you may not use the same e

元記事を表示

Macでmysqlclientのpip install時に出るエラー

## 概要
Macで環境作り直して`pip install mysqlclient`しようとするとたまに出るエラー
いつも対処法を忘れるのでメモ

## エラー内容

“`bash:エラー出力
Running setup.py install for mysqlclient … error
ERROR: Command errored out with exit status 1:
command: /Users/user/develop/api/venv/bin/python -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘/private/var/folders/z_/62bk1p8s7mj1p5_nq48s81gr0000gp/T/pip-install-8k8ewh_h/mysqlclient_980254ec895e421ba41a7ec66c0ccde2/setup.py'”‘”‘; __file__='”‘”‘/private/var/folders/z_/62bk1p

元記事を表示

pyyamlでハマったこと

#やりたかったこと

数値計算したデータを保存する時、二次元データならcsvでこと足りるが、dict型などのもっと複雑な構造を持ったデータをまとめて保存したいことがある。pickleを使う方法もあるが、pickleで保存してしまうとpythonを経由しないとデータが読めない。一方yamlならpyyamlを使うことでdict型を簡単に保存しつつ、テキストエディタからも読めるのでよい。

#ハマったこと

dict -> yaml -> dict としたときに、dictの順序がどうなっているか?

pythonは3.7から辞書の順序を保存するようになっているので、当然順序を保存していてほしい……

が、実際は保存しない:

“`python
import yaml

din = {“c”:3,”b”:2, “a”:1}

fname = “tmp.yaml”

with open(fname,”w”) as f:
yaml.dump(din,f)
print(din)
# {“c”:3,”b”:2, “a”:1}
print(yaml.dump(din)

元記事を表示

MitamaでTodoアプリを作ってみる(3) – ControllerとViewを作る

[Mitama Advent Calendar](https://qiita.com/advent-calendar/2020/mitama)4日目です。

前回→『[MitamaでTodoアプリを作ってみる(2) – Modelを作りこむ](https://qiita.com/ta1g3n/items/d0bc09af8b82a4b4280a)』

木瓜丸です。今回も引き続きTodoアプリを組んでみましょう。

## ルーティング
まずはControllerに配信先のパスを与えます。ルーティング周りはmain.pyに書いてあるので、次の様に書き換えてください。

“`python
from mitama.app import App, Router
from mitama.utils.controllers import static_files
from mitama.app.method import view
from mitama.utils.middlewares import SessionMiddleware

from .controller import Home

元記事を表示

Python3 Tkinter フォント設定

#1. はじめに

今回はTkinterのフォント設定方法について記載する.
tkinterとttkのウィジェットで指定方法が異なるため,両方の設定方法を以下にまとめる.

#2. ソースコード

tkinterとttkのウィジェットで,font引数がある場合はそれを使って指定する.
ttkのウィジェットのうち,font引数がない場合はstyle引数を使って指定する.

“`Python3:test.py
from tkinter import ttk
import tkinter as tk

fontfamily = “”
fontsize = 30

def pressedButton1():
global fontfamily, fontsize
# 文字サイズ加算
if 10 <= fontsize < 50: fontsize += 5 # 各ウィジェットに設定 style.configure("myButton1.TButton", font=(fontfamily, fontsize)) style.co

元記事を表示

Pybulletでロボットアームシミュレーションをするまでの手順

#Pybulletでロボットアームを動かす方法
 「ロボットシミュレーションをするためにPybulletをインストールしたものの、日本語の記事や説明が少なすぎてきつい…」と感じたので、Pybulletの環境構築からPybulletの関数の説明、そして実際にロボットを動かすまでの手順を簡単に解説しました。

##動作環境

– Windows10

– WSL2

– Ubunu18.04

##準備
 まだPybulletを動かす準備が何もできていない人のための章なので、「もうPybulletが動くよっ!」って人は読み飛ばしても問題ないです。

###環境構築のための手順

 Windows10でPybulletを動かすための流れを簡単に説明します。
Pybulletを動かすためには、Pybullet自体のインストールの前に

1. WSL2環境をつくる
2. Ubuntu18.04のインストール
3. Xserverのインストール

が必要になっています。

**1. WSL2環境をつくる**
 Windows10でPybulletを使うためには、まずWSL (Windows Sub

元記事を表示

kaggle の Courses を読む —Intro to Machine Learning 1~3

# 初投稿!
はじめまして!まはらせないき と申します!
2020/12/3現在、大学1年生で機械学習を勉強中です。

自分のモチベを保つために、[__kaggle__](https://www.kaggle.com/) の __Courses__で学習したことを書いていきます。英語の学習もできて一石二鳥!
今回と次回は、Courses の __Intro to Machine Learning__ をやっていきます。
__これからよろしくお願いします!__

___
__Intro to Machine Learning__ では、_pandas_ を使って内容が進んでいきました

~Intro to Machine Learning の流れ~
 1.モデルとは何か
 2.データを見てみる
 3.”決定木”による機械学習のモデル作成
 4.モデルの検証
 5.ランダムフォレスト
 6.機械学習の大会

今回は、__1~3まで__の内容です

# 決定木
何かを推測するときは、__今までの経験測__ に基づいて推測するのが普通ですよね。その経験則を __パターン化する機械的な手順__

元記事を表示

AGI(Asterisk Gateway Interface)を使って内線電話からPythonスクリプトを実行する

## はじめに
この記事は 2020 年の RevComm アドベントカレンダー 4 日目の記事です。
3 日目は @yk_saru さんの「 [SOQLクエリビルダーを使ってみた](https://qiita.com/yk_saru/private/df9108f3a695d6b6c8be “SOQLクエリビルダーを使ってみた”)」でした。

こんにちは。株式会社RevCommで通信サーバの開発等を担当している宮崎です。

この記事ではOSSのIP-PBX(回線交換機)であるAsteriskを用いて、電話機からの内線発信をトリガーにしてサーバ内のPythonスクリプトを実行する手順の一例を紹介します。
「電話をかけてPythonを実行する」 というのはちょっと面白いと思いませんか…?

## 前提
下記の条件で実施しました。

– 電話機からの内線発信でAsteriskの標準機能であるAGIによるPythonスクリプト実行を行うことをゴールとする

元記事を表示

日本語テキストから、SVO格を指定した検索単語を含む「係受け元単語 -> 係受け先単語」を全件出力するGUIツール

###( 後記 )

画面の下部にある__ラベル「指定単語が指定した格で登場するぬ文脈から、」__の部分で、__「するぬ」は誤記__です。__正しくは、「する」__です。

___

##作ったもの

サンプルの和文テキストは、NHK NewsWebの国際面に、2020/12/1に掲載されていた__[記事](https://www3.nhk.or.jp/news/html/20201201/k10012741251000.html?utm_int=news_contents_news-main_001)__から拝借しました。

__0. Teminalで、Pythonスクリプトファイルを実行__

“`bash:Terminal(Python3.9.0)
% python3 tkinter_ner_svo_list_filter_by_target_word_and_case_file_dialog2.py
“`

__1. ファイル選択ダイアログから、解析したいテキストファイルを選択__

![スクリーンショット 2020-12-03 3.06.09.png](https://q

元記事を表示

決定性有限オートマトンで等価な状態を調べる

# 概要

Python使って、決定性有限オートマトン(以下DFA)の等価な状態を調べます。

# 前提

– pythonの基本文法知ってる人
– DFA知ってる人

# 環境

windows 10
python 3.8

automata-libライブラリを使用します。

> The library requires Python 3.5 or newer.

3.5以上が必要みたいですね。

“`
pip install automata-lib
“`

# プログラム本体

“`python
from automata.fa.dfa import DFA

SYMBOL_FORMAT = lambda s0, s1 : f'{s0},{s1}’

def directProduct(target0:DFA, target1:DFA, form = SYMBOL_FORMAT):
”’ 直積オートマトンを求める ”’
new_input_symbols : set = target0.input_symbols | target1.input_sym

元記事を表示

Cython+Numpyでいいとこどり

## TL;DR(要約)
– Cythonを使えば、(実装内容によっては)処理が遅い関数やクラスを高速化できる
– CtyhonとNumpyを組み合わせるには、ちょっとしたコツが必要
– notebookで実行する場合とスクリプトで実行する場合で、やり方が少し異なる

## 前置き
Python、便利ですよね。研究開発分野では言わずもがな、ちょっとした開発をする分にも申し分ない手軽さとライブラリの豊富さがあります。ただやはりせっかちな私にとってはもう少し早く実行が終わってほしいところ。

ということで、Cython+Numpyを使ってちょっとでも高速化できないか調べてみました。

## Cythonとは?
> Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as eas

元記事を表示

ConoHa WING CLIあれこれ (WP cli, Linuxbrew, pymux)

[ConoHa Advent Calender 2020](https://qiita.com/advent-calendar/2020/conoha) を書くにあたって、なににしようかなと思い立ちましたが、ConoHa WINGについて書くことにしました。

私は、webの置き場所としてや、sshfsのストレージとして、またssh terminalでのちょいとコマンド実行できるLinux環境として活用しています。

ConoHa WINGでせっかくssh/sftpがあるのだからと、VPSの補助用の環境として使っています。
雑多に、私が使っているCLI関係の話を 2020/12/2 の記事にしようとか思います。

## ConoHa WINGとはどんな環境なの?

ConoHa Cloud VPSでは、VMを作ってwebを動かすまで色々設定が必要だったりするが、ConoHa WINGではすぐにwebサーバとして、メールサーバとして使える機能がホスティングサービスとして提供されていますね。

とくに、WordPressを簡単に運用することにかなり注力されていることが、コントロールパネル

元記事を表示

tensorflow2のtf.data.Datasetをfrow_from_directory()のように手軽に作成できる関数を作る。

#はじめに

**注:個人メモですので使用の際には自己責任で。**
**注:tensorflow2.3.0でのみ動作、正式実装ではない関数を使用しています。**

`tf.data.Dataset`のdatasetパイプラインを`flow_from_directory()`のように手軽に作るクラスを定義する。
augmentaionも組み込んでおく(フリップ、回転、ズームのみ)。

[以前の投稿](https://qiita.com/masamiic/items/79dd55d0a8654e1f9d29)も参照ください

“`py:python3
import tensorflow as tf
AUTOTUNE = tf.data.experimental.AUTOTUNE
import glob
import os
import numpy as np
import random

class creat_dataset_from_directory():
def __init__(
self,
train_dir_path,
valid_dir_

元記事を表示

Python スライス指定で変数を使う際の注意点

#python: エラー 「slice indices must be integers or None or have an \_\_index__ method」が出た時の解決法
pythonにて以下のエラーが出たので、その際の対応記録です。

“`
TypeError: slice indices must be integers or None or have an __index__ method
“`

##エラーコード
観測データの解析でfftを使うときに以下のようなコードでエラーが出ました。

“`fft.py
freq = [0,1,2,3,4,5,6] #リスト
fft_sampling = 7 #リストをスライスする用
out = freq[1:fft_sampling/2]
“`

リストをスライスする際は整数か`__index__ method`で指定をしないとだめらしい。
##解決策
`fft_sampling/2`を`fft_sampling//2`と指定することで、`fft_sampling`がいくつでもスライスを整数で指定ができる。

元記事を表示

[OpenCV]動画を表示する方法

#はじめに
OpenCVによる画像処理の基礎を整理します。
100本ノックのように、毎日追加していきたいと思います。

#やりたいこと
mp4の動画ファイル、WebCamからの映像をパソコン画面上に表示したいと思います。

#プログラム構造

cv2.VideoCapture()を利用します。

“`Python
#動画ファイル
cap = cv2.VideoCapture(‘video.mp4’)
#内臓カメラ
cap = cv2.VideoCapture(0)
#USBカメラ
cap = cv2.VideoCapture(1)
“`

そして、cap.read()から動画のフレームをimgに入れ、それをimshow()で表示します。
このプロセスをWhile文を利用して繰り返し実行します。←ここがみそ。

“`Python
while True :
ret, img = cap.read()
cv2.imshow(‘Video’, img)
“`

#実行結果

![bandicam-2020-12-02-17-27-43-031.gif](https://

元記事を表示

OTHERカテゴリの最新記事