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

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

Ubuntu 18.04 + VsCode + Pytho3 + psycopg2 から Posgtgres12 にアクセスしてみる

#目的
・Ubuntu 18.04(その1)に Posgtgres12 をインストールする
・新規roleを作成する
・新規DB(demo)を作成する
・作成済のroleに対して新規作成DB(demo)に対する権限を付与する
・作成したテーブルに対して Ubuntu 18.04(その2) + VsCode + Python3 + psycopg2 からアクセスしてみる
※Ubuntu 18.04 に psycopg2 のインストするのが意外とめんどくさかったのでメモを残しておく
※libpq-devは昔からめんどくさかった気がする・・・
※psycopg2をビルドする場合は、リポジトを設定後 libpq-dev のみインストールすれば良い
※パッケージ関連で迷った時の apt search はやはり重要 なぜ pip にはないんだろう??

##Code RunnerでPython3をキックする
修正になったバージョンが不明なのだけど 1.46.1 の時点では以下の手順で修正する
・ファイル -> 基本設定 -> 設定
・検索ボックスに Code-runner:Executor Map

元記事を表示

データサイエンス100本ノック~初心者未満の戦いpart1

これはデータサイエンティストの卵子(卵になる前。~~♂だと垢BANくらいそうなので~~)がわけもわからないまま100本ノックを行っていく奮闘録である。
完走できるかすら謎。~~途中で消えてもQiitaにあげてないだけと思ってください。~~

[100本ノックの記事](https://codezine.jp/article/detail/12456)

[前回環境構築の参考にさせていただいたページ](https://qiita.com/rasyo/items/dd6f8dfc422511da25d6)

**ネタバレも含みますのでやろうとされている方は注意**

記事を書く時点で25本目まで終わっていますが、知らなかった書き方も多く、また「自分はこう書いたけど答えはこうだった」というものも多くあったのでメモ代わりに置いておきます。

コレは見づらい!この書き方は危険!等ありましたら教えていただきたいです。~~心にダメージを負いながら~~糧とさせていただきます。

今回は1~9まで。

#1本目
さすがにこれは書ける。
予習しても頭に入らない鳥頭でもコレが書けないと支障をきたすので。

元記事を表示

ゼロから始めるLeetCode Day64「287. Find the Duplicate Number」

# 概要

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

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

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

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

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

競技プログラミングにおける標準入力の受け取り方

競技プログラミングでは、標準入力を受け取る機会が多いが、それの受け取り方を備忘録として残しておく。

“`input.txt
Hoge
“`

“`sample.py
from sys import stdin

a = stdin.readline().rstrip()
print(a.upper()) # 読み込んだ文字を大文字に変換
“`

の2つのファイルを作成し、ターミナルで以下を実行する。

`python sample.py < input.txt` すると、 `HOGE` が返ってくる。

元記事を表示

AtCoder beginner Contest 171

A~Dまでを記載します。

##[A – αlphabet](https://atcoder.jp/contests/abc171/tasks/abc171_a)

pythonだと「isupper()」を使うことで一瞬で解けます。

“`Python:Python
A = input()

if A.isupper():
print(‘A’)
else:
print(‘a’)
“`

##[B – Mix Juice](https://atcoder.jp/contests/abc171/tasks/abc171_b)

貪欲法?
金額の最小の商品から最適解の処理をひたすら繰り返します。

“`Python:Python
N, K = list(map(int, input().split()))

A = list(map(int, input().split()))

A.sort()

ans=0
for i in range(K):
ans+=A[i]

print(ans)
“`

##[C – One Quadrillion and One

元記事を表示

Python学習記録(paiza B問題:計算ドリル)

ちょっと修正したが、、、まだタイムアウト、、

import random
plus, minus = map(int,input().split())

Equal = [“=” for i in range(plus+minus)]
Plus = [“+” for i in range(plus+minus)]
Minus = [“-” for i in range(plus+minus)]

ok_list_plus = []
ok_list_minus = []
ans_list = []

for i,(p, m, e) in enumerate(zip(Plus, Minus, Equal)):
if i < plus: for i in range(5050): if len(ok_list_plus)<(plus): x = random.randint(0,100) y = random.randint(0,100)

元記事を表示

scipy/solve_ivp における初期条件のイベント検知回避

# 問題点
`solve_ivp`のイベント検知関数 `find_active_events` はデフォルトで以下のように定義されている.(コメントは省略した)

“`python:ivp.py
def find_active_events(g, g_new, direction):
g, g_new = np.asarray(g), np.asarray(g_new)
up = (g <= 0) & (g_new >= 0)
down = (g >= 0) & (g_new <= 0) either = up | down mask = (up & (direction > 0) |
down & (direction < 0) | either & (direction == 0)) return np.nonzero(mask)[0] ``` 上記定義に従うと,初期条件 $(t_0, y_0)$ が `g=event(t0,y0)=0` を満たす場合でもイベントを検知してしまうた

元記事を表示

Python学習記録(paiza:B問題:計算ドリル)

最初のテストはpassしたが、テストが進むにつれて、
タイムアウトによって処理が行われなかった。

課題
・whileは時間かかるみたいだから、forで書き換える
・list作成を内包で書き換える

import random
plus, minus = map(int,input().split())

Equal = []
Plus = []
Minus = []

for i in range(plus+minus):
Plus.append(“+”)
for i in range(plus+minus):
Minus.append(“-“)
for i in range(plus+minus):
Equal.append(“=”)
ok_list_plus = []
ok_list_minus = []
ans_list = []

for i,(p, m, e) in enumerate(zip(Plus, Minus, Equal)):
if i < plus: while len(ok_list_plus)<(

元記事を表示

Tkinterで押したボタンだけの色を変える方法

“`example.py
def setnumber():
column = -1
row = 0
root = tk.Tk()
root.title(‘numbers’)
root.geometry(‘470×310′)
for i in range(101):
if i > 0:
if i%10 == 1:
row += 1
column = -1
column += 1
text=f'{i}’
btn = tk.Button(root, text=text)
btn.grid(column=column, row=row)
btn.config(command=collback(btn))
root.mainloop()

def collback(btn):
def nothing():

元記事を表示

[Python]フォーマット済み文字列

### 今まで
“`Python
a = 5
print(“あなたは{}歳”.format(a))
# あなたは5歳
“`
又は

“`Python
print(“あなたは” + str(a) + “歳”)
# あなたは5歳
“`
### フォーマット済み文字列
“`Python
a = 5
print(f”あなたは{a}歳”)
# あなたは5歳
“`
これができるようになると、
`str()`と`+`が減り簡潔に文字列と数値を結合できる。
***
### 参考
https://note.nkmk.me/python-f-strings/

元記事を表示

Win10 + VsCode + Python3 + psycopg2 から Ubuntu 20.04 + Posgtgres12 にアクセスしてみる

#目的
[Ubuntu 20.04 に Posgtgres12 をインストール後 C# + Npgsql でアクセスしてみる](https://qiita.com/tabizou/items/47f395d7ab3030dd1915)
でインストしたPostgresをもう少し触ってみる
・新規roleを作成する
・新規DB(demo)を作成する
・作成済のroleに対して新規作成DB(demo)に対する権限を付与する
・作成したテーブルに対して Win10 + VsCode + Python3 + psycopg2 からアクセスしてみる
・Ubuntu + VsCode + Python3 の場合の追加設定 [Ubuntu 16.04 x64 + VsCode + Code Runner で Python3を使ってみる](https://qiita.com/tabizou/items/bcd0dd44a8f51ca2fcf6)
##アクセス環境の設定

$ su - postgres
$ psql -U postgres
ユーザ postgres のパスワード:
psql

元記事を表示

個人的に忘れがちなpandasの書き方備忘録

### 作業用にSampleのDataFrameを作成
```python
df = pd.util.testing.makeMixedDataFrame()
df
```

| | A | B | C | D |
|--:|--:|--:|--:|--:|
| 0 | 0.0 | 0.0 | foo1 | 2009-01-01 |
| 1 | 1.0 | 1.0 | foo2 | 2009-01-02 |
| 2 | 2.0 | 0.0 | foo3 | 2009-01-05 |
| 3 | 3.0 | 1.0 | foo4 | 2009-01-06 |
| 4 | 4.0 | 0.0 | foo5 | 2009-01-07 |

### pandasの表示オプションの変更
```python
pd.set_option('max_rows', 2)
pd.set_option('max_columns', 3)
df
```
| | A | ... | D |
|:--|--:|--:|--:|
| 0 | 0.0 | ... | 2009-01-01 |
| ... |

元記事を表示

Pythonのビルトイン関数たち

# まえおき

- この記事は執筆中の[やさしくはじめるPythonプログラミング](https://github.com/simon-ritchie/python-novice-book-preview)の本の特定の章の部分抜粋です。
- 入門本なので初心者の方向けです。
- ビルトイン関数の章の内容が主になります。
- Qiita記事にマッチしていない箇所(「章」や「ページ」といった単語が使っていたり、改行数が余分だったり、リンクが対応していない等)があるという点はご留意ください。気になる方は↑のリンクの電子書籍版をご利用ください。
- コメントなどでフィードバックいただいた場合、書籍側にも活用・反映させていただく場合があります。

# 最初から使える関数たち : Pythonのビルトイン関数

本章ではPythonのよく使われるビルトイン関数について触れていきます。ビルトインという単語は聞きなれないものかもしれませんが、英語だと「built-in」という単語で、「作り付けの」とか「本来備わっている」、「内臓の」といったような意味を持ちます。

`built`という単語からも分かる

元記事を表示

numpyで行列の内積を求めてみた

#行列の内積を求める
( a行 b列 )×( b行 c列 )=( a行 c列 )という計算になる。
スクリーンショット 2020-06-22 0.12.02.jpg

ではこの計算をNumpyでしてみるとどうなるのか
ソースコードは以下の通りです。
####サンプルコード
```Python:matrixInnerProduct.py
# 乱数を発生させて(5行3列)×(3行4列)
# = (5行4列)の行列を求める
import numpy as np

a = np.random.randint(0, 14, size=(5, 3))
b = np.random.randint(0, 14, size=(3, 4))
print(a)
print(b)

print("内積の

元記事を表示

ホロライブメンバーの配信予定を取得して配信開始時刻に通知するDiscord botを作った

現在、ホロライブ+イノナカミュージックには28人のメンバーがおり、それぞれのメンバーの配信予定を把握することが難しいです。一応公式でホロジュールと呼ばれる各メンバーのスケジュールはありますが、それに乗らないような3時間前くらいに突如として現れるようなスケジュールまで追うのはなかなか難しいのではないでしょうか。

そこで、今回Discordに配信予定や配信時刻になったら通知が来るようなbotをミカグラくん([@hungry_and_fool](https://twitter.com/hungry_and_fool))と作りました。

見た目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/413178/b52651c2-189c-524f-4e98-8643d8c022c5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/413178/891a2f2d-1a3c-7cbc-37ad-

元記事を表示

pandas での reset_index() で series を dataframe にする

[データサイエンス100本ノック](https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess)やっています。
わからなかったことのメモです。

```
P-030: レシート明細データフレーム(df_receipt)に対し、
店舗コード(store_cd)ごとに売上金額(amount)の標本分散を計算し、降順でTOP5を表示せよ。
```

という問題で、自分の答えは以下でしたがうまくいきませんでした。
`df_receipt.groupby("store_cd").amount.var(ddof=0).sort_values("amount", ascending=False).head(5)`

正解は以下でした。
`df_receipt.groupby('store_cd').amount.var(ddof=0).reset_index().sort_values('amount', ascending=False).head(5)`

違いは `.reset_index()`だけです。
`re

元記事を表示

Pythonでのファイル入出力チェック|assertでのTDD

#ファイル入出力チェック
ファイルを開いてそれをバイナリ式にコピーして別のファイルで保存します。
2つの方法でファイルのチェックをするようにしています。
以下のファイルを読み込みます。

```C:HelloClang.c
/*******************************************
Hello.c
*******************************************/
#include

int main(){
int ii = 0;
int x = 1;
int y = 2;

for ( ii = 0; ii++; ii<10 ){ printf("X × Y = %d\n",x*y); x++; y++; } return 0; } ``` まず一つ目のソースコードです。 ##1) try・・・except・・・finally・・・ ```Python:try型 try: """・1・""" except FileNotFoundErro

元記事を表示

製薬企業研究者がPythonにおける正規表現についてまとめてみた

# はじめに

ここでは、Pythonにおける正規表現の基本について解説します。

# 主な正規表現

```python
import re

m1 = re.match(r'ab*', 'a') # 直前の文字(b)の0回以上の繰り返し
if m1:
print(m1.group(0))
else:
print('Not match')

m2 = re.match(r'ab+', 'a') # 直前の文字(b)の1回以上の繰り返し
if m2:
print(m2.group(0))
else:
print('Not match')

m3 = re.match(r'ab?', 'abb') # 直前の文字(b)の0回または1回の繰り返し
if m3:
print(m3.group(0))
else:
print('Not match')

m4 = re.match(r'ab$', 'abb') # 文字列の末尾と合致するか
if m4:
print(m4.group(0))
else:
print('Not mat

元記事を表示

【QtDesigner】PyQt5 で WebView を実装する

# PyQt5 で WebView を実装してみる

`QtDesigner` と `PyQt5` を用いて、簡易的なブラウザを作成しようと思い立ったのですが、
WebView を表示するための設定方法について、日本語の記事がなかなか見つからなかったため、備忘録としてここに残しておきます。

## 環境

- OS: MacOS Catalina 10.15.3

- QtDesigner: version 5.9.6

- PyQt5: version 5.15.0

## 結論
- WebView は、**Qt5.6 で削除された**。

- 代わりに、**QwebEngineView** を使用する必要がある。

- **QWebEngineView** を使用するには、 **QWidget を拡張して、QWebEngineView クラスを作成する**必要がある。

## 背景

冒頭でもさらっと書いた通り、簡易的なブラウザを作成しようと思い立ちました。
色々ググってみた結果、 `PyQt5` というライブラリを使用すれば `Python` でもわりと簡単に Web ページを

元記事を表示

Ubuntu18.04 (WSL)でpyspark+jupyterの環境を手早く作る

# やること
Ubuntu 18.04(WSL)上にpysparkを試すための環境をさくっと用意する。
anacondaやpyenvは使用しないので、使いたい方は随時対応してください。

# 前提環境
Windows 10 Home
Ubuntu 18.04 LTS (WSL) インストールしたばかりの状態から開始

# 作る環境
Spark 2.4.6
Hadoop 2.7
Python3.6.9
jupyter-notebook

# 手順
## まずはSparkのインストール
### jdkをインストール
```shell
sudo apt-get update
sudo apt-get install -y openjdk-8-jdk
```

### sparkをインストール
入れたいバージョンに応じて、各所変更すると吉。

```shell
wget http://ftp.riken.jp/net/apache/spark/spark-2.4.6/spark-2.4.6-bin-hadoop2.7.tgz
tar zxvf spark-2.4.6-bin-hadoop2.

元記事を表示

OTHERカテゴリの最新記事