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

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

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
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バージョンを選択できる。
– 仮想環境を作成するには、それを配置する

元記事を表示

はじめてのPython3 ~繰り返しのはじまり編~

# はじめに
注意点などは[こちら](https://qiita.com/kashun0410/items/4113051964d5a1cd0bb5)を参照してください。

# 繰り返し処理
歴史は繰り返される。
単純なプログラムも繰り返させよう。
## for inによるループ処理
単純な繰り返しの処理。

“`
for カウンタ変数 in 繰り返す範囲:
繰り返し処理
“`

※ コロンを忘れぬようお気をつけて

#### 例
“`
for i in range(3):
print(“hello world”)

“`
============
※ 実行結果

hello world
hello world
hello world

============

#### 繰り返す範囲の range 関数
range 関数は引数に指定した開始数から終了数までの連続した数値を要素として持つ range 型のオブジェクトを作成する。
※ range(a,b,x):a に指定した数値から順に b に指定した数値だけ足していき、 x に指定した数値を超えない範

元記事を表示

AtCoder Beginner Contest 175 B問題「Making Triangle」解説(C++,Python3,Java)

Ruteです。

AtCoder Beginner Contest 175 B問題「Making Triangle」の解説を行います。

>問題URL:
https://atcoder.jp/contests/abc175/tasks/abc175_b

#問題概要
$N$本の棒のうち、三角形を作ることのできるような長さの異なる$3$本の棒を選ぶ方法は何通りあるかを求めよ。

##制約
・$1 \leq N \leq 100$
・$1 \leq L_i \leq 10^9$
・入力は全て整数

#解法
ans = 0と初期化しておきます。
以下の様な繰返し処理を実装すれば良いです。
・以下の繰返し処理を$(0,n)$の範囲で行う(カウンタ変数を$i$とする)
 ・以下の繰返し処理を$(i+1,n)$の範囲で行う(カウンタ変数を$j$とする)
  ・以下の繰返し処理を$(j+1,n)$の範囲で行う(カウンタ変数を$k$とする)
   `L[i] == L[j]である` or `L[i] == L[k]である` or `L[j] == L[k]である`を満たしているかを判定す

元記事を表示

AtCoder Beginner Contest 175 A問題「Rainy Season 」解説(C++,Python3,Java)

Ruteです。

AtCoder Beginner Contest 175 A問題「Rainy Season」の解説を行います。

>問題URL:
https://atcoder.jp/contests/abc175/tasks/abc175_a

#問題概要
`”R”`が最大何文字連続しているかを出力しなさい。

##制約
・ $|S| = 3$
・$S$の各文字は`’S’`または`’R’`である

#解説
ls = []と定義します。
$S$を文字列として受け取ります。
now = 0とします。 これは後で利用します。
以下の様な繰返し処理を行います。
・もし`S[i](Sのi文字目)`が”R”だった場合
  now に1を加算します。
・そうでない場合
  lsにnowの値を挿入し、nowの値を0とします。
最後に、lsに繰返し処理が終わった後のnowの値を挿入します。
lsにある数のうち、最大の数が答えなのでこれを出力すれば良いです。

もしくは、制約がかなり小さいので、全ての文字列について`’R’`が何文字あるかどうかをあらかじめ計算して、条件分岐でその都度出力してもよさそう

元記事を表示

医者がAtCoder参加してみた

AtCoder Beginner Contest 175
に参加しました。
Pythonで、B問題だけAC(解けた)、結果は7000番台

#全体の感想
ABCはこれはトレーニングすればいけると思いました。
B問題を15問勉強して望んだのですが、
ABCが完答できるだけで、1400番台ですので、しばらくはABCの完答を目指してトレーニングします。

#A
2^3=8パターンしかないから、全てを探索すればいいじゃんと、
if:
elif:
else:
の構文がなぜか機能せず、エラーを吐いてしまいます。。。。解けず。

#Aから学習したこと
“print()をelifの間に置けば、バグチェックできる”ことに気付きました

#B#
問題覚えていませんが(30分前なのに、、、)、なんか全部探索したらできました。
三角形の成立条件は忘れていて、直角三角形の成立条件で思案してたのが時間を食いました。

#Bから学習したこと#
for
 条件
 for

って感じで並べないとダメなのね。
文法わからないんですよねえ

#C#
さらっと書いたら、小さい数字ではすぐ成立したが大

元記事を表示

競プロメモ Python編(便利な機能や手抜き方法)

# 小数点計算にはDecimalを使う

競プロで浮動小数点の罠系の問題が出る場合、Python以外にも解ける解法があるはず。という点は留意しておこう。ただし、何も考えずに高い精度が出せるPythonのDecimalは便利だ。

尚、Pythonといえど、普通に使うと浮動小数点の罠は生じる。例えば、0.35を小数第一位まで四捨五入したいが以下のように0.3となってしまうDecimalを使おう。quantizeは少し使う方が特殊で、以下のように”0.001″などの表示になるように四捨五入、切り下げ、切り上げをしてくれる。

“`Python
# 0.35: 0.3 になる!四捨五入してくれない
print(‘0.35:’, round(0.35, 1))

from decimal import Decimal
import decimal

# 標準的な使い方。Decimal同士の計算
x = Decimal(1) / Decimal(3) # 0.3333333333333333333333333333
print(type(x)) #

元記事を表示

【Python】Djangoプロジェクトに UIKit3 を導入する

#はじめに
DjangoプロジェクトにCSSフレームワークである
**UIKit3** を導入していきます。

##UIKit3
[UIKit](https://getuikit.com/) は、CSSフレームワークの1つ。
知名度ではBootstrapやFoundationにはやや劣るものの
シンプルなデザインで人気のフレームワークです。

クラス名が`uk-`で始まるように統一されており、
他のCSSとコンフリクションが起きにくいのも良いポイントです。

##UIKitをダウンロード
ダウンロードは [こちら](https://getuikit.com/) から。

zipファイルを解凍して、
今回は下記の3ファイルを使用します。

>uikit-3.5.6/
> ├ css/
> │ └ uikit.min.css
> └ lib/
>   └ uikit-icons.min.js
>   └ uikit.min.js

※UIKitのバージョンは3.5.6

##staticディレクトリを作成
プロジェクトディレクトリ直下に`static`ディレクトリを作成し、
下記のようにフ

元記事を表示

Raspberry Piに現在時刻、天気予報を喋らせる

#初めに
もともと[ここ](http://raspi.seesaa.net/article/415530289.html)を参考に使っていたのですが、喋らなくなっていたので調べてみるといつの間にか「[livedoor 天気](https://help.livedoor.com/weather/index.html)」は終了していたみたいです。

というわけで代わりに使えるものがないかと探してみたところ”OpenWeathermap”がよさげだったのでこれを使うことにしました。
#事前準備

・下記の記事を参考にAquasTalkを利用した”atalk”コマンドを使えるようにしてください。
[raspberry piの音周り](http://nos.hateblo.jp/entry/20150218/1424217597)

・[OpenWeathermap](https://openweathermap.org/)にてアカウントを登録してAPIを取得してください。

#必要なモジュールをインストール
“`
pi@raspberrypi ~ $sudo pip install romk

元記事を表示

pip3のアップグレード方法

# 方法
これでうまくいきました.
`pip3 install –user –upgrade pip`

元記事を表示

『Effective Python 第2版』 第1章<Pythonic思考>

# はじめに
* はじめまして。takadowaといいます。Qiita記事を書くのはこれが初めてとなります。
* 私はPythonを使ってソフトウェア開発をすることが多く、Pythonを使い始めてもう8年目になります。
* そんな私でも[『Effective Python 第2版』](https://www.oreilly.co.jp/books/9784873119175/)を読んで初めて知ることが多々ありましたので、面白かったこと、大事だと思ったこと、初めて知ったことなどをまとめていきたいと思います。
* あなたのPythonソフトウェア開発の一助になれば幸いです。

# 実行環境
サンプルコードを掲載する際は、以下の実行環境で実行した結果を掲載します。
できる限りミスのない形で提供することを心がけますが、動かない、間違っているなどがありましてもご容赦ください。

* macOS 10.14.6
* Python 3.8.5

# 第1章<Pythonic思考>

## `import this`
みなさんは「The Zen of Python」をご存知ですか?
Pythonのイン

元記事を表示

OTHERカテゴリの最新記事