Python関連のことを調べてみた2022年01月07日

Python関連のことを調べてみた2022年01月07日

[py2rb] re.match re.search

# はじめに
移植やってます。
# re.match re.search (Python)
“`python
import re
print(re.match(r’aaa’, ‘aaab’))
print(re.match(r’aaa’, ‘baaa’))
print(re.search(r’aaa’, ‘aaab’))
print(re.search(r’aaa’, ‘baaa’))


None


“`
`re.match`は先頭からのマッチになります。
こちらの記事が分かりやすい。

https://qiita.com/halhorn/items/9e6599a3422e7dd94ec8
# match (Ruby)
“`ruby
p ‘aaab’.match(/^aaa/)
p ‘baaa’.match(/^aaa/

元記事を表示

csvのデリミタ、改行文字とかを推測

# csv定義 推測関数
“`python
def sniffer(dat:str,
delimiters = [‘\t’, ‘;’, ‘,’, ‘:’, ‘|’, ‘ ‘],
quotechars = [‘”‘, ‘\”, ‘`’],
escapechars = [‘\\’, ‘^’],
):

lineterminators = set([‘\r’, ‘\n’, ‘\0’])
delimiters = set(delimiters)
quotechars = set(quotechars)

delimiter = None
doublequote = True
escapechar = None
lineterminator = “”
quotechar = ‘”‘
quoting = 0
skipinitialspace = False
strict = False

Sym_lt = {}
Sym_dl = {}
Sym_qu

元記事を表示

[py2rb] re.sub

# はじめに
移植やってます。
# re.sub (Python)
“`python
import re
s = ‘1A2B3C’
print(re.sub(r'[A-Z]’, ”, s))
print(re.sub(r'[A-Z]’, ”, s, count=1))

# 123
# 12B3C
“`
正規表現で一致した文字列を置換します。
`count`オプションで置換する回数を指定できます。
https://docs.python.org/ja/3.7/library/re.html#re.sub
# gsub (Ruby)
“`ruby
s = ‘1A2B3C’
puts s.gsub(/[A-Z]/, ”)
puts s.sub(/[A-Z]/, ”)

# 123
# 12B3C
“`
`Ruby`の場合、すべて置換する`gsub`/`gsub!`と最初に一致する文字列を置換する`sub`/`sub!`があります。

https://docs.ruby-lang.org/ja/latest/method/String/i/gsub.html

https:/

元記事を表示

DearPyGuiをはじめる10行

![SS 192.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565043/a41cd967-f549-8677-1efa-2e99bf69518d.png) スゴクよさそうなので最初のとっつきだけご紹介

#DearPyGuiとは?

https://github.com/hoffstadt/DearPyGui

DearPyGuiはpythonでグラフィカルなインターフェースを作るためのライブラリです。
DearImGuiというC++用のGUIフレームワークのpython版という位置づけのようです。
GPU対応のため動作も軽快で、アプリケーションやゲームも作れるそうです。
その素晴らしさはgithubを見れば一目瞭然です。

#インストール
Python 3.6 以上、64bitの環境で以下を実行します。

“`shel

元記事を表示

SQLAlchemy の IdentityMap の登録・利用条件

## はじめに

SQLAlchemy を用いて DB にデータ投入した後に、再び select をして返している時がよくあります。これは、本来避けるべきでしょうが、構造が複雑になってきて、このような構造になってしまうことがどうしてもあります。[SDGs が叫ばれる昨今、Python という地球環境によろしくない言語は抹殺されるべき](https://twitter.com/imos/status/1465185411651694598)という ~~言説~~ ネタが飛び交う中、このような構造になってしまった時に少しでも DB の負担を和らげることはできないだろうと思い調べたのが、 Identity Map でした。

## Identity Map とは

[こちらのダイアグラム](https://www.martinfowler.com/eaaCatalog/identityMap.html)を見ていただければわかると思いますが、データをプライマリーキーをキーとしてキャッシュとして保持しておき、取得するデータのプライマリーキーのオブジェクトがキャッシュが存在した場合は、キャッシュ

元記事を表示

Yahoo NewsをSlackへ通知してみる ~AWS Lambda × Web scraping × Slack API~

#はじめに
今回はAWS Lambdaを使ってSlackに通知を送るというシンプルなサーバレスアーキテクチャ作成を紹介します。
すでにLambdaとSlackについては多くの記事が出ていますがWeb scrapingを組み合わせたものはあまりないように思いました。
私がクラウド技術のすごさを思い知ったのがこの**Lambda×Web scraping**という組み合わせだったので初心に帰るという意味で記事にします!

#Web Scrapingとの出会いと課題
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363360/1d174d88-1680-627f-010a-cdd57bb852c0.png)
>資料出所:[Webスクレイピングとは?定義から活用事例までの説明](https://www.octoparse.jp/blog/web-scraping/ “Webスクレイピングとは?定義から活用事例までの説明”)

##1.Web Scraping
皆さんはWeb scrapingと

元記事を表示

2進に変換

末尾にdのついた10進数文字列、末尾にhのついた16進数文字列、末尾にbのついた2進数文字列をbitの並びに変換するテスト

“`py
def any2bin(valstr: str, is_signed: bool, bitlen: int):
“”” 2進数に変換する “””
final_char = valstr[-1]
valstr = valstr[:-1]
ret = ”
if final_char == ‘b’:
if len(valstr) == bitlen:
ret = valstr
else:
raise Exception # 桁数不一致
elif final_char == ‘d’:
ret = dec2bin(valstr, is_signed, bitlen)
elif final_char == ‘h’:
ret = hex2bin(valstr, is_signed, bit

元記事を表示

web3.pyでhardhat_resetを実行する方法

hardhatのethノードでは、hardhat_resetなどの特殊なコマンドが使える。web3.pyでそのコマンドを使う方法を紹介する

## hardhat用のモジュール

web3.pyはモジュールで機能を拡張できる。w3.ethなどもモジュールとして実装されている。w3.ethの実装を参考に以下のように書いたら、hardhatコマンドを使えるようになった。

“`python
# license: CC0
from web3.module import Module, Method
from web3.types import RPCEndpoint

class HardhatModule(Module):

def reset(self):
return self._hardhat_reset()

_hardhat_reset = Method(RPCEndpoint(“hardhat_reset”))

“`

## hardhat用のモジュールの使い方

w3にモジュールをattach_modulesで注入する。

“`pyt

元記事を表示

PythonでHeapを実装してみる

Heapのデータ構造を理解するためにPythonで書いてみました。

“`python
class Heap:
def __init__(self) -> None:
self.heap = []

def push(self, x):
self.heap.append(x)
i = len(self.heap) – 1
while i > 0:
p = (i – 1) // 2
if self.heap[p] >= x:
break

self.heap[i] = self.heap[p]
i = p
self.heap[i] = x

def top(self):
if len(self.heap) != 0:
return self.heap[0]
else:
retur

元記事を表示

ラビットチャレンジ【E資格】 深層学習day1

# 初めに

本記事ではニューラルネットワークについて、以下の5つの項目をまとめています。

+ 入力層~中間層
+ 活性化関数
+ 出力層
+ 勾配降下法
+ 誤差逆伝搬法

**ニューラルネットワークについて**
ニューラルネットワークは、人間の脳内にある神経細胞(ニューロン)とそのつながり、いわゆる神経回路網を人工ニューロンという数式的なモデルで表現したものです。最近では、人工知能(AI)領域がブームになっていますが、ニューラルネットワークは機械学習や深層学習(ディープラーニング)などを学ぶ際に知っておくべき基本的な仕組みです。ニューラルネットワークは、入力層、出力層、隠れ層から構成され、層と層の間には、ニューロン同士のつながりの強さを示す重み「w」があります。

**重み「w」とは?**
-> 人間の脳の中にあるニューロンは電気信号として情報伝達を行います。その際にシナプスの結合強度によって、情報の伝わりやすさが変わってきます。この結合強度を、人工ニューロンでは重みwで表現しています。

ひとつひとつの人工ニューロンは単純な仕組みですが、それを多数組み合わせる事で複雑な関数近似

元記事を表示

【画像処理】Numpyで図形描画

Numpyで画像に図形描画してみます。

まず、使用する画像を読み込んでおきます。

“`python
import numpy as np
import matplotlib.pyplot as plt

original_image = plt.imread(image_name)
if np.issubdtype(original_image.dtype, np.integer):
original_image = original_image / np.iinfo(original_image.dtype).max
plt.imshow(original_image)
“`

![OriginalImage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61569/18f5237c-6a66-5d7f-f86a-ed98fad52909.png)

## 円

塗りつぶしの円です。

“`python
def fill_circle(image, color, center, rad

元記事を表示

多変量時系列データ予測モデルVARを使ってみた

#ARモデル

時系列データ予測で使われる$p+1$次の自己回帰モデル(AR Model)は以下のように与えられます。

“`math
x_{t+1} = a_0x_t+a_1x_{t-1}+a_2x_{t-2}+…+a_px_{t-p}+\epsilon_t
“`
なので、$a_0,a_1,a_2,…,a_p$が決まれば、時刻$t+1$以降の時系列データは次のように過去の時系列データと新たに生成された未来の時系列を再帰的に使って順次求めることができます。

![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483137/2362ce9f-2710-7676-d75f-540bfbd897c8.png)

$a_0,a_1,a_2,…,a_p$の求め方は、次の通り。($p+1=3$次の時)

“`math
x_{t+1} = a_0x_t+a_1x_{t-1}+a_2x_{t-2}+\epsilon_t\\
x_{t+2} = a_0x_{t+1}+a_1x_t+a_2x_{

元記事を表示

Pythonで楽天レシピAPIからレシピを取得する

# レシピを自動で取得したい

毎日のおかずを考えるのって、結構大変ですよね:frowning2:
そんなとき、**今晩のおかずを提案してくれるサービス**があったらいいなと思いませんか?

これを実装するためには、「料理のレシピを取得する」ことが必要です。

世の中にはレシピサイトは数多くありますが、楽天レシピが**Web APIを提供**しているのでこれを使って**「任意のキーワードから人気レシピを取得する」**ことをPythonをで実現してみましょう。

# 楽天レシピAPIで人気レシピを取得しよう

## 準備

まず、楽天レシピAPIを利用するにはユーザー登録(無料)を行ってアプリIDを取得する必要があります。
その方法についてはこちらの記事の序盤部分をご参照いただければと思います。

https://qiita.com/anzuuuuu/items/be4e4845c21ac3334695

以降、本記事ではアプリIDを取得できた前提で話を進めていきます。

## APIの概略

楽天レシピAPIには2つのAPIが用意されています。

– 楽天レシピカテゴリ一覧API:楽天

元記事を表示

【転職】コーディングテスト を 攻略 せよ !!

(感想)
私が採用側または、大手なら課す。
現職で採択するなら、
チームで使っている技術スタックの問題を選択形式で出題したい。(即戦力がほしい)

#◆チェックリスト & PRPoint
「実装ができる」だけは自己中な状態
→影響範囲が広くなり保守が大変(未然に防ぐ実装)

#◆コーディング面接・試験

1.1~2次面接など、選考の序盤~中盤の段階(45分)

> コンピュータサイエンスに関連した知識を問われる技術面接もある
(codingなし)
事前課題を解き、面接官にその実装について解説をする面接
(事前のコーディングに3,4時間かかるものもあり)

##流れ

1. 問題の確認

2. 解法を考える

3. 実際にコーディング

4. 解説(工夫点)

5. ディスカッション

“`
– 問題の一部が変わったらどのようにコードを変えるか
– 計算量
– 更に改善できるコードがあるかどうか
– エッジケースに対応できているか
– コードを書く際に気をつけたこと(コーディング規約など)
“`

##評価ポイント

企業により評価方法はさまざまですが、
以下

元記事を表示

Slackに画像を投稿する最小限度のPythonスクリプトの作り方

この記事では、Slackの特定のチャンネルに画像を投稿するシンプルなPythonスクリプトを作成するための基礎知識を共有します。

この記事で利用しているスクリプトで、以下の記事で利用している Google Photos へアップロードするスクリプトを置き換えると、Slack へ撮影した画像を定期的に投稿する簡易 Network カメラが作成できます。

https://qiita.com/aikige/items/46684487c8af1070a069

## 利用するもの

[Your Apps]:https://api.slack.com/apps
[Python Slack SDK]:https://slack.dev/python-slack-sdk/
[WebClient]:https://slack.dev/python-slack-sdk/web/index.html
[aikige/slack-photo-uploader]:https://github.com/aikige/slack-photo-uploader

– [Python Slack SDK] の

元記事を表示

Python Tkinterの大量のボタンをpartialを使って楽に設置

#Python Tkinterの大量のボタンをpartialを使って楽に設置

##この記事の目的
Python GUIのTkinterで大量のボタンをループして設置するには**partialが一番楽に感じた**という記事。
「**楽に設置**」を目的として調査した結果です。

##背景
たくさんのボタンを配置する。
そのため、Tkinterにてtkinter.Button()のループで生成した。

ボタン押下した際の**「どのボタンを押したか」という挙動がうまくいかなかった**。

いくつか試した。

functoolsの**partialが一番楽に感じた**。

という書き置き。

##まずはcommand属性へ関数名を記載してみる

単純に5つのボタンをループで設置して、ボタンを押下したら関数を実行するプログラム。

“`python:tkinter_button_test1.py
import tkinter

tk_root = tkinter.Tk()
frame_main = tkinter.Frame(tk_root)
frame_main.grid()

de

元記事を表示

Azure Computer VisionをPythonで試すよ

Microsoft Azureの無料アカウントを作ったので中のサービスのいくつかを試してみるよ。今回はAIによる画像認識のComputer Vision。アップロードするかネット上に配置した画像ファイルを元にAzure側で準備したAIで分析をしてくれるAPIサービスです。
IBM Cloudにも同じようなAPIサービスが用意されていたんだけど最近廃止されてしまったので代替サービスを検討中です。

## 事前チェック
* MacOS Monterey
* Python 3.8.8
* Microsoft Azure Computer Vision (無料アカウントでも利用できます)
* ANACONDA navigator
* JupyterLab

## Microsoft Azure Computer Vision API (v3.2)

https://japaneast.dev.cognitive.microsoft.com/docs/services/computer-vision-v3-2/operations/56f91f2e778daf14a499f21b

Micro

元記事を表示

Python(Django) と AnyTree で 勘定科目の集計

## はじめに ##
 技術的なというより、実務的な使い方として、よく会計システム等にみられる様な、勘定の集計を行います。改良すべきところは多々ありそうですが、アイデアとしての備忘禄です。

## 発想と方針 ##
 製造業では、製造用の勘定を材料費、労務費、その他経費に分類して集計しますが、必要に応じて全体を集計・表示するときに、各科目の関係がTree構造になっていると便利です。
Pythonには、AnyTreeというライブラリがあったのでこれを使って集計・表示ができるようにします。
貸借対照表や損益計算書も同様のやり方でできると思いますが、生産管理システムにみられる様な製品構成をあらわす部品表などへの活用の方が使い勝手が良いかもしれません。
ここでは総製造費用を簡単なモデルとして集計します。因みに、総製造費用に期首仕掛品をプラスして期末仕掛品をマイナスすると、当期製品製造原価となります。当期製品製造原価は、売上原価の構成要素です。

## 完成したモノのイメージ ##
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

【Project Euler】Problem 9: 特別なピタゴラス数

* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

### 問題 9. ピタゴラス数

原文 [Problem 9: Special Pythagorean triplet](https://projecteuler.net/problem=9)

**問題の要約:ピタゴラス数の3つの数の和が1000となるもの3つの積を求めよ**

ピタゴラス数はProject Eulerではよく出てくるので、今後のために基本ピタゴラス数を無限に発生させる関数**pyth**を作ります。

“`python
import itertools, math
def pyth():
for m in itertools.count(2):
for n in range(1,m):
if (m%2)==(n%2): continue
if math.gcd(m,n)

元記事を表示

Python: FastAPI: @app.middleware(“http”) を複数書くとどうなる?

“`python

@app.middleware(“http”)
async def f1(req: Request, call_next):
print(f”⭐️{sys._getframe().f_code.co_name}”)
return await call_next(req)

@app.middleware(“http”)
async def f2(req: Request, call_next):
print(f”⭐️{sys._getframe().f_code.co_name}”)
return await call_next(req)

@app.middleware(“http”)
async def f3(req: Request, call_next):
print(f”⭐️{sys._getframe().f_code.co_name}”)
return await call_next(req)

“`

“`
⭐️f3
⭐️f2
⭐️f1
“`
逆順にコールされた。

元記事を表示

OTHERカテゴリの最新記事