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

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

Python3でthreading処理終了後にis_alive()がFalseでなくエラーになる

#Threadingのis_alive()関数でエラー
`2to3` を使ってPythonでソースを移行していた所

“`python
if not self.thread.is_alive():
“`

という分岐でエラーが出る様になった。
処理終了後に
2では問題なく `False` が返ってくる。
3では何故か `False` ではなく下記エラーになってしまう。。。

“`
Exception has occurred: TypeError
‘bool’ object is not callable
“`

#解決法
`def __init__` 内にて `self._stop = False` を宣言していたのが原因だった。
`except KeyboardInterrupt:` の処理として `self._stop = True` にする様に書いただけだったので、`run()`内では不変の筈なんだけどなぁ。。。
解決したものの、詳しい原因が理解できていないので保留。
わかる方いたら教えていただけると助かります

元記事を表示

PyPy 7.3.1 でリスト内包表記が遅くなくなった件について

# PyPy 7.3.1 でリスト内包表記が遅くなくなった件について

タイトルでもう言いたいことは概ね終わっているのですが…….

[Python 競技プログラミング高速化tips (PythonでAtcoderをやる際に個人的に気を付けてること)](https://juppy.hatenablog.com/entry/2019/06/14/Python_%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E9%AB%98%E9%80%9F%E5%8C%96tips_%28Python%E3%81%A7Atcoder%E3%82%92%E3%82%84%E3%82%8B%E9%9A%9B%E3%81%AB%E5%80%8B#Pypy%E3%81%98%E3%82%83%E3%81%A0%E3%82%81%E3%81%AA%E3%82%82%E3%81%AE) で言及されているように、PyPy のリスト内包表記は遅いという事実がありました.

ところで [https://m

元記事を表示

Ruby → Python チートシート(文字列Stringクラス編)

####凡例
>メソッド名(兼ドキュメントへのリンク)
>【Ruby】例
>【Python】対応する例(シンタックスや結果の違いがわかるようなもの)
> 対応ドキュメントのURL

* ここでは変数 `r = “ルビー”` `p = “パイソン”` としています。
* -∗- encoding: UTF-8 -∗- です。

#INDEX

####[%](https://docs.ruby-lang.org/ja/latest/class/String.html#I_–25)
【Ruby】`”%s vs %s”%[r, p] # => “ルビー vs パイソン”`(※ 引数は配列)
【Python】`”%s vs %s”%(r, p) # => “ルビー vs パイソン”`(※ 引数はタプル)
https://docs.python.org/ja/3/library/stdtypes.html#printf-style-string-formatting

####[<<](https://docs.ruby-lang.org/ja/late

元記事を表示

CentOS7で複数ユーザーで同時に使用するJupyter Notebook環境を作る

# jupyterhub
Jupyter Notebookの環境を立てただけでは、複数ユーザーで同時に使用することは困難なので、ユーザー管理機能を追加する「JupyterHub」を用いて、Jupyter Notebookを使用できる環境を作ります。
## 環境
今回紹介する構築環境は以下です。
– OS:CentOS7.4 (docker)
– Anaconda3-4.3.1
– Python3.6.9
– 基盤:AWS EC2
## 設定
#### CentOSコンテナ作成
“`
docker run -it –privileged -d -p 888:8000 –name centos_cho centos:7 /sbin/init
“`
#### 事前インストール
“`
yum install wget
yum install bzip2
yum install sudo
yum install which
“`
#### 以降、rootユーザで操作します
#### Anaconda3インストール
“`
cd ~
wget https://repo.continu

元記事を表示

よく使うseabornのメソッドを、できるだけ最低限の引数で使ってみた【初学者向け】

# 目的
Pythonを学習して、いざ実装する際、

* seabornで使いたいメソッドが思い出せない。
* どんな引数が必要か分からない。

という経験はありませんか?

知識不足だった僕は、データ加工する際に、都度seabornメソッドの引数を調べ、設定しました。

本記事では、初学者でも理解しておく必要がある、seabornの頻出メソッドと、ぱっと確認するために必要な、最低限の引数について解説いたします。

# 大まかな流れ
* 今回使用するデータは、「Kaggle」の「[HousePrice](https://www.kaggle.com/c/house-prices-advanced-regression-techniques/)」のデータを利用します。

* HousePriceのコンペを平たく説明すると、販売価格を、家の広さや立地などから予測するコンペです。

* データを読み込み、その特徴量を理解するために、グラフ描画します。

# 注意事項

* 初学者の方でもメソッドの利用方法が分かりやすいよう、パラメータをできるだけ絞って説明しています。このため、グラフは割と

元記事を表示

数弱でも分かる ABC164 D問題 (剰余演算)

エンジニア就活ではコーディング試験が主流になっているようですね。
自分も採用試験に備えて最近はAtCoderのコンテストに参加してアルゴリズムの勉強をしています。
競プロについての記事を書くのは初めてで、競プロ自体も初心者なのでお手柔らかにお願いします。

この記事では[ABC164 D問題](https://atcoder.jp/contests/abc164/tasks/abc164_d) および、それに伴って数字からなる文字列の剰余について考察します。
なお、使用言語はPython3です。

# ABC164 D問題について(問題)
`1`から`9`までの数字のみからなる文字列`S`が与えられます。
次のような条件を満たす整数の組 `(i,j)` `(1 ≤ i ≤ j ≤ |S|)` の総数を求めてください。

条件: `S` の `i` 文字目から `j` 文字目までを 十進法の整数としてみると、この整数は `2019`の倍数である。

# 愚直にやると間に合わない

まず思いつくのは `i < j` という条件のもと、文字列`S`を「`i`文字目の前」と「`j`文字目の前」

元記事を表示

ゼロから始めるLeetCode Day5 「1266. Minimum Time Visiting All Points」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

基本的にeasyのacceptanceが高い順から解いていこうかと思います。

前回
[ゼロから始めるLeetCode Day4 「938. Range Sum of BST」](https://qiita.com/KueharX/items/f0182e346828eb5cfd09)

# 問題
[1266. Minimum Time Visiting All Points](https://leetcode.com/problem

元記事を表示

【PyTorch】サンプル② 〜TENSOR (テンソル) 〜

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587891/b676b25e-f9b2-9053-cb16-a63b7ed51ad1.png)
#目的
PyTorchのチュートリアル[PyTorch: Tensors](https://pytorch.org/tutorials/beginner/examples_tensor/two_layer_net_tensor.html#sphx-glr-beginner-examples-tensor-two-layer-net-tensor-py)を参考にPyTorch Tensor(テンソル)を使って、損失(loss)や重み(weight)の計算をする。

PyTorchの特徴の一つである、テンソルとNumPyの違いを手を動かしながら感じる。

NumPyを用いた例は、[【PyTorch】サンプル① 〜NUMPY〜](https://www.aiprogrammers.net/entry/2020/04/24/092500)から。

元記事を表示

[Python]キーワード引数の指定が要るとき、要らないとき

# 前書き
本記事は初版において誤った記述をしていた内容を書き直したものになります。
ご指摘頂いた@LouiS0616さんに感謝申し上げます?

# そもそも引数ってなに?
いや……聞かれなくても分かってるよって感じの質問ですけど、私は分かってなかったから表題のことが判別できなかったので、改めて整理してみます。

Python3で扱う「引数」というものには「実引数」と「仮引数」の2種類が存在します。[^1]
[実引数と仮引数の違いは何ですか?](https://docs.python.org/ja/3.5/faq/programming.html#faq-argument-vs-parameter)

[^1]: 大半のプログラミング言語に実引数と仮引数の概念が存在すると思いますけど、よく調べるのは大変だし本題から外れるので、とりあえずPython3だけに絞って話します。

先のリファレンスの項目を雑にまとめるとこんな感じになると思います。

| – | 実引数 | 仮引数 |
|:————– |:—————–|:—————

元記事を表示

【Mac】完全初期化状態からPython3実行環境を作る

# はじめに

こんにちは、koki1992です。今回はPython3の実行環境を、完全に初期化済みのMac上に構築します。
たまにですが、OSのバージョンによって若干インストール手順が違ったり、画面がちょっと違ったりといったりということで、初心者の方々は戸惑うことがあると思います。
一応現時点での最新のOS上に環境を構築したので、特に今年パソコンを買ってもらい、プログラミングにチャレンジしようとしている新入生とかは、この記事を読みながら、戸惑わずに環境構築にチャレンジできると思います。

# 実行環境
OS:Mojave 10.14.6
PC:MacBookAir 11-inch Early 2015

以下の操作は、インターネットのつながった状態で行ってください。よろしくおねがいします。

# 手順の概要
以下の順番で作業を行います。

* ターミナルを起動させる
* Homebrewをインストールする
* Homebrewを使ってPython3をインストールする
* Python3の仮想環境を構築する

# 1.ターミナルを起動させる。
まずはターミナルを起動させてみましょう。

元記事を表示

栃木県の新型コロナウイルス感染症患者の発生状況の表を作成 (その2)

次のページのデータソースを PDF から xlsx に変更しました。
[栃木県の新型コロナウイルス感染症患者の発生状況の表を作成](https://qiita.com/ekzemplaro/items/f3e28d7ff61f47dde002)

データのソースは栃木県です。
>[栃木県における新型コロナウイルス感染症の発生状況および検査状況について](http://www.pref.tochigi.lg.jp/e04/welfare/hoken-eisei/kansen/hp/coronakensahasseijyoukyou.html)

xlsx を JSON へ変換

“`bash
./xlsx_tochigi.py 020426hasseijyoukyouitiran.xlsx data_tochigi.json
“`

“`py:xlsx_tochigi.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# xlsx_tochigi.py
#
# Apr/27/2020
#
# ——————

元記事を表示

【python】csvファイルを読み込んでmatplotlibで図を表示

#今回使用するデータ#
何となく埼玉県と岩手県の平均気温のデータを使用しました
[ダウンロードはこちら](https://www.data.jma.go.jp/gmd/risk/obsdl/index.php)

#NumPyでcsvファイルを読み込む#
NumPyを使ってcsvファイルを読み込みます
読み込むときに使用する関数は`loadtxt`です
numpy配列が返ってくるのでそれを保持するための変数を用意します(今回はdata_set)

“`python

import numpy as np

data_set = np.loadtxt(
fname=”sampleData.csv”, #読み込むファイルのパスと名前
dtype=”float”, #floatで読み込む
delimiter=”,”, #csvなのでカンマで区切る
)
“`

#matplotlibで図を表示#
matplotlibで今回は先ほど読み込んだデータを散布図で表示します

“`py
import matplotlib.pyplot as plt

#散布図を描画
#描

元記事を表示

pathlibみんな使っている?

# はじめに

**pathlib**みなさん使ってますか?まだ使っていないならぜひ一度使って欲しいです。pathlibは何かというとパス操作できるものです。みなさん**os.path**とか使うと思いますが、そのos.pathと大体同じことは、**pathlib**でできます。しかもpathlibはPythonの標準モジュールです。

# この記事の対象者

– pathlibを使ったことのない方
– pathlib知っているけどまだ作ったことない方
– pathlibに興味を持ったた方

ぜひ気になった方、チェックしてみてください。

# **pathlib**

pathlibは、**オブジェクト指向のファイルシステムパス**です。使い方をみていきましょう。

### コンストラクタ

`Path()`で`Path`オブジェクトを生成できます

“`
>>> from pathlib import Path
>>> Path()
PosixPath(‘.’)
>>> Path(‘data’)
PosixPath(‘data’)
>>>
“`

“`
>>>

元記事を表示

競プロで役立つPythonデータ入力チートシート

#数値
##単一の数値
数値を一つ入力

“`python:
I = int(input())
“`

##複数の数値
“`
3 5 6 7
“`
のような数値が空白区切りで入力される際

“`python:
A, B, C, D = map(int, input().split())
“`

##数値を受け取る数が未定かつリストにしたいとき
例えば入力が

“`
3 5 6 7 ,,, N
“`
の様な時以下の様なlistを作成したい時

“`
[‘3’, ‘5’, ‘6’, ‘7’,,,’N’]
“`

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

#文字
##文字列
“`python:
N = input()
“`

##受け取る文字列数が決まっており、リストにしたいとき(Iは回数)

“`python:
list = [input() for i in range(I)]
“`

例えば3回入力されると決まっており、

“`python:
orange
grape
strawberry
“`

元記事を表示

ゼロから始めるLeetCode Day4 「938. Range Sum of BST」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

基本的にeasyのacceptanceが高い順から解いていこうかと思います。

前回
[ゼロから始めるLeetCode Day3 「1313. Decompress Run-Length Encoded List」](https://qiita.com/KueharX/items/c6b7d47ff6209fc96593)

# 問題
[938. Range Sum of BST](https://leetcode.com/probl

元記事を表示

カレントディレクトリに対するコマンド Python

#カレントディレクトリに対するコマンド
全てosモジュールを使用するので

import os
を最初に打っておく。

– カレントディレクトリの取得

path = os.getcwd()
print(path)

– ディレクトリ内のフォルダやファイルの表示

ls = os.listdir(os.getcwd())
print(ls)

– ディレクトリの移動

os.chdir(“Desctop”) #移動はこれだけでOK
curdir = os.getcwd()
print(curdir)

– カレントディレクトリのディレクトリ名を取得

curdirname = os.path.basename(os.getcwd())
print(curdirname)

元記事を表示

【AtCoder解説】PythonでABC164のA, B, C問題を制する !

**AtCoder Beginners Contest 164**の**A,B,C問題**を**Python3**で解く方法を、なるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、D問題に残せる時間が増える

# ABC164

開催日: 2020-04-26(日) 21:00 ~ 2020-04-26(日) 22:40 (100分)
A問題提出人数: 11236人

| パフォ | AC | 時間 | 順位 | 目安 |
| :—-: | :–: | :–: | :—-: | :————-: |
| 400 | ABC- | 29分 | 7198位 | 茶パフォ |
| 600 | ABC- | 18分 | 5854位 | 8回で茶色レート |
| 800 | ABC- | 12分 | 4425位

元記事を表示

AtCoder Beginner Contest 164 参戦記

# AtCoder Beginner Contest 164 参戦記

## [ABC164A – Sheep and Wolves](https://atcoder.jp/contests/abc164/tasks/abc164_a)

2分半で突破. 書くだけだったけど、コードテストが詰まってて、慌ててローカルでテストしたりして時間がかかった.

“`python
S, W = map(int, input().split())

if W >= S:
print(‘unsafe’)
else:
print(‘safe’)
“`

## [ABC164B – Battle](https://atcoder.jp/contests/abc164/tasks/abc164_b)

2分半で突破. B問題なので、素直にシミュレートしても TLE しないので書くだけですね.

“`python
A, B, C, D = map(int, input().split())

while True:
C -= B
if C <= 0: br

元記事を表示

AtCoder(ABC)164にPythonで挑戦!A~C問題

#はじめに
AtCoder ABC164にPythonで挑戦しました!
Ratedとしては2回目の挑戦です。
A〜Cまで解けました。
D問題はTLEでした。

#A問題
sがwより大きければsafe、その他の時はunsafeを出力すれば終わりです

“`Python3:A.py
s, w = map(int, input().split())
if s > w:
print(“safe”)
else:
print(“unsafe”)

“`

#B問題
無限ループで、aまたはcが0以下になるまで回しましょう
高橋くんが先攻なので、両方とも負になってしまう回は、高橋くんの勝ちなので先にflg1を処理するようにコードを書きましょう

“`Python3:B.py
a, b, c, d = map(int, input().split())
flg1 = False
flg2 = False
while True:
c -= b
a -= d
if c <= 0: flg1 = True if a <= 0:

元記事を表示

ゼロから始めるLeetCode Day3 「1313. Decompress Run-Length Encoded List」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

基本的にeasyのacceptanceが高い順から解いていこうかと思います。

前回
[ゼロから始めるLeetCode Day2 1108. Defanging an IP Address](https://qiita.com/KueharX/items/85a13e7329f5c93b317b)

# 問題
[1313. Decompress Run-Length Encoded List](https://leetcode.com

元記事を表示

OTHERカテゴリの最新記事