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

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

[py2rb] 予約語

# はじめに
移植やってます。
( from python 3.7 to ruby 2.7 )
# 予約語 (Python)
“`python
import keyword
print(keyword.kwlist)

[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’,
‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’,
‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’,
‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’,
‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’,
‘try’, ‘while’, ‘with’, ‘yield’]
“`
# 予約語 (Ruby)
“`ruby
BEGIN class ensure nil self when
END def

元記事を表示

[py2rb] キーワード引数と可変長引数の組み合わせ

# はじめに
移植やってます。
( from python 3.7 to ruby 2.7 )
# 引数 (Python)
“`python
def func1(a, b, *args):
print(a, b, args)

def func2(a, b=None, *args):
print(a, b, args)

def func3(a=None, b=None, *args):
print(a, b, args)

func1(‘A’)
func2(‘A’)
func3(b=’A’)

func1(‘A’, ‘B’)
func2(‘A’, ‘B’)
func3(b=’A’, a=’B’)

func1(‘A’, ‘B’, ‘C’, ‘D’)
func2(‘A’, ‘B’, ‘C’, ‘D’)
func3(‘B’, ‘A’, ‘C’, ‘D’)

#output
TypeError: func1() missing 1 required positional argument: ‘b’
A None ()
None A ()
A B ()
A

元記事を表示

【Project Euler】Problem 54: ポーカーの手

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

### 問題 54. ポーカーの手

原文 [Problem 54: Poker hands](https://projecteuler.net/problem=54)

**問題の要約:ファイルのポーカーの対戦結果を見てプレーヤー1の勝った数を求めよ**

ファイルに**5H5C6S7SKD 2C3S8S8DTD**のようにポーカーの対戦結果が1000組書かれているので以下のように勝敗判定を行うという問題です。

Hand | Player 1 | Player 2|Winner
— | — | — | —
1 | 5H 5C 6S 7S KD 
Pair of Fives | 2C 3S 8S 8D TD
Pair of Eights| Player 2
2 | 5D 8C 9S JS AC <

元記事を表示

アニメの顔を切り抜く

#アニメ画像から顔を切り抜く方法です

#アニメデータセットをつくりたい
画風変換などで、アニメ画像のデータセットを作るときに、顔だけ切り抜きたい時があります。
大量の画像を自動で処理したい。

#animefaceで切り抜ける

OpenCVでanimefaceを使うことで、自動処理できます。

#コード
【合格】Pythonエンジニア認定データ分析試験の勉強方法

[Python基礎試験](https://qiita.com/n-k-j/items/d7bbad59ffc0fb407693)に引き続いて受験し、合格しました。準備期間が短かったこともあり、点数に余裕のない合格でした。Pythonの基本文法が聞かれるというよりは、データ分析にまつわる知識や理解が問われる試験です。少しだけですが数学も絡むので、初見で公式テキストに取り掛かった段階では少々理解が辛く感じてしまいました。Youtubeで動画を拾い見してからテキストに戻るなど、工夫が必要でした。

[Pythonエンジニア認定試験 | 試験概要 | Odyssey CBT](https://cbt.odyssey-com.co.jp/pythonic-exam.html)

せっかくPython勉強したから何か形にして残しときたい&Python基礎試験を受けたのでその勢いでついでに申し込んだ程度の動機で受験しました。受験料が税込11000円と高額な民間の試験です。実際、後の転職活動で一応記載はしましたが、面接官だったDSの方々はこの試験をご存じなかったです。

# 受験状況
– 勉強期間:3

元記事を表示

【合格】Pythonエンジニア認定基礎試験の勉強方法

Pythonを業務で触った経験があり、体系立てて一度勉強したかったので、そのモチベーション到達点として試験を利用しました。民間会社が行っているものなので知名度は微妙ですが、学習レベルがまだ初歩段階の人にはよく受けられている試験です。

[Pythonエンジニア認定試験 | 試験概要 | Odyssey CBT](https://cbt.odyssey-com.co.jp/pythonic-exam.html)

「基礎試験」と「データ分析試験」があり、今回受験したのは基礎試験です。Pythonの基礎文法が問われる試験です。

# 受験状況
– 勉強期間:20日
– 受験日:2021年2月
– 使用教材
– Udemy動画 [現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル | Udemy](https://www.udemy.com/course/python-beginner/)
– 公式テキスト [Pythonチュートリアル第3版](https://www.amazon.co.jp/Python%E3%83%81

元記事を表示

スプレッドシート対応抽選デスクトップアプリの作成

#はじめに
■抽選デスクトップアプリvar0.1 報告

抽選デスクトップアプリを制作してみた。
例えば、ポケモンのパーティをランダムに構築してみたいと思った時や、
トレーディングカードゲームで、デッキから最初に引く5枚をシミュレーションする
等に利用できる。

##きっかけ
最近、転職や副業、動画配信での利用を意識するようになり、
苦手意識のあるGUIのデスクトップアプリに挑戦してみることにした。

実は抽選プログラムそのものはすでにできていたのだが、
開発環境から実行するにとどまっていたため

元記事を表示

浮動小数点にマッチする正規表現

#やり方
Pythonを使った例です。
整数、浮動小数点(’10e5’などのexponentを使った表現含む)にマッチ。

“`py
import re

regex = r'[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?’

text = ’22 10.08 .52667 2.96996e-05 .57E+05′

m = re.findall(rf'({regex})’, text)

print([t[0] for t in m])
#=> [’22’, ‘10.08’, ‘.52667’, ‘2.96996e-05’, ‘.57E+05’]

“`

正規表現を表す文字列`regex`内部で`()`を使ったグルーピングがされているので、
`regex`全体をさらに`()`で囲ってグルーピングし取り出します。

例の中の.57E+05という表記が実際に使われるのかは分かりませんが。。

#参考

[Regular-Expressions.info](https://www.regular-expressions.info/floatingpoin

元記事を表示

plotlyを実行したらAttributeErrorが発生してハマった話

plotlyで作成したグラフをPDF出力とhtml出力させようとしたらハマった話の第二弾です。
第一弾のfig.write_imageを実行するとValueErrorが発生してハマった話は[こちら](https://qiita.com/yuuun/items/1e35318c067e7e6b3465)

##環境
使用した環境
・Google Colaboratory
使用言語
・Python

##実現したいこと
Plotlyで動的なグラフを作成し、作成したグラフを出力する。

“`python:AttributeError発生サンプルコード
!pip install japanize-matplotlib

%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import cm
import japanize_matplotlib
import plotly
import plotly.graph_objs as go

# plotlyを使用するための準備

元記事を表示

fig.write_imageを実行するとValueErrorが発生してハマった話

plotlyで作成したグラフをPDF出力とhtml出力させようとしたらハマった話の第一弾です。

###環境
使用した環境
・Google Colaboratory
使用言語
・Python

###実現したいこと
Plotlyで動的なグラフを作成し、作成したグラフを出力する。

“`python:サンプルコード
!pip install japanize-matplotlib

%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import cm
import japanize_matplotlib
import plotly
import plotly.graph_objs as go

# plotlyを使用するための準備
import plotly.io as pio
from plotly.subplots import make_subplots
pio.renderers.default = “colab”

# orcaのインストール
!pi

元記事を表示

ABC236 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder

ABC236(AtCoder Beginner Contest 236) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。

その他のABC解説、動画などは以下です。

https://qiita.com/sano192/items/54accd04df62242b70f0

##A – chukodai

https://atcoder.jp/contests/abc236/tasks/abc236_a

問題文の通り、a文字目とb文字目を入れ替えて出力します。

手順は以下です。
①入力の受け取り
②一文字ずつリストへ格納
③a文字目とb文字目を入れ替え
④リストを結合
⑤答えを出力

①入力の受け取り
S,a,bを受け取ります。
Sは文字列、a,bは整数として受け取ります。

②一文字ずつリストへ格納
Sを一文字ずつリストへ格納します。
list(文字列)
と書くことで一文字ずつリストへ格納されます。
S_listというリストへ格納しましょう。

③a文字目とb文字目を入れ替え
pythonでは0インデックス(先頭が0、次が1、…)となっているので問題

元記事を表示

Pythonスクレイピング【GCP – cloud functions – サンプルコード付】

##はじめに
普段は、firebase cloud functionsで
サーバー側の処理を記述しています。

今回も、node環境のサーバーでスクレイピングを行なっていたのですが
処理に時間がかかる・メモリが多く必要になるという理由で
スクレイピングに関しては、python3で記述することにしました。

ちなみに、nodeでのスクレイピングは下記のnpmを使用していました。

“`
npm i puppeteer
“`

下記システムは、こちらのサイトでも使用しています。

https://yapoyapo.com/
#Pythonの記述・ディレクトリ構造
今回は、GCPのcloud functionsの方に
pythonのファイルをデプロイしたので、ディレクトリ構造の説明もしていきたいと思います。


#ディレクトリ構造
“`:ディレクトリ構造
pythonFunctions
├ main.py
├ getMetaFromSoup.py
├ requirements.txt
├ .gcloudignore
└ README.md
“`

元記事を表示

【Python】enumとは

# enumとは
**enum**は、列挙型と呼ばれる複数の定数を1クラスにまとめて保持できるもの。

# 定義方法
**enum**は、標準ライブラリの“`enumモジュール“`の“`Enumクラス“`を継承させることで使用できる。
定義方法のサンプルが以下となる。

“`python
from enum import Enum

class Color(Enum):
# =
RED = 0
GREEN = 1
BULE = 2
“`
変数名が“`name“`、値が“`value“`となる。**enum**では、同じ名前のメンバを複数持つことができないため、下記のように定義するとエラーになる。

“`python
class Color(Enum):
# =
RED = 0
RED = 1
# TypeError: Attempted to reuse key: ‘RED’
“`
一方、同じ“`value“`を持つメンバは複数持つことがで

元記事を表示

python async 実行記録

“`python
import asyncio
import time

async def say_after(delay, what):
print(f”{time.strftime(‘%X’)} :{what}”)
await asyncio.sleep(delay)
print(f”{time.strftime(‘%X’)} :{what}”)

async def main():
tasks = [say_after(3, ‘hello’), say_after(2, ‘yeeeei’), say_after(1, ‘ueeeeei’)]
await asyncio.gather(*tasks)

asyncio.run(main())
“`
“`
16:38:20 :hello
16:38:20 :yeeeei
16:38:20 :ueeeeei
16:38:21 :ueeeeei
16:38:22 :yeeeei
16:38:23 :hello
“`

元記事を表示

google cloud natural Language APIを使用してテキストから感情を出力

ちょっと触ってみたいAPIがあったので触ってみました。

テキストから感情を読み取ってくれるAPIです。
https://cloud.google.com/natural-language

## 実際にやってみよう

まずは以下のリンクから無料トライアルに登録(登録済みの人はスルーで)
※ 5000回解析するまではお金はかからないみたいです。
https://console.cloud.google.com/getting-started

APIトサービス->ダッシュボード
![スクリーンショット 2022-01-25 15.59.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/600288/247e08bc-2f42-68da-42d4-fd189d79858f.png)

**新規プロジェクトの作成**
名前はなんでもいいと思います。
自分は「20220125-nlp-api」としました。
![スクリーンショット 2022-01-25 16.01.54.png](https://qiit

元記事を表示

pythonでdatetimeを使って時刻をYYYYMMDDHHHMMSSで出力する

pythonでdatetimeを使って時刻をYYYYMMDDHHHMMSSで出力する

“`python:test.py
import datetime
t_delta = datetime.timedelta(hours=9)
JST = datetime.timezone(t_delta, ‘JST’)
now = datetime.datetime.now(JST)

d = now.strftime(‘%Y%m%d%H%M%S’)
print(d)
“`

“`
$ python test.py
20220125161020
“`

# 参考
https://atmarkit.itmedia.co.jp/ait/articles/2111/09/news015.html

元記事を表示

pythonでディレクトリが存在しているかどうかをチェックする

pythonでディレクトリが存在しているかどうかをチェックするには`os.path.exists()`を使う、
ディレクトリを作成するには`os.makedirs()`を使う

“`python:test.py
import os

checkdir = ‘./testdir’
if os.path.exists(checkdir) == False:
print(“{} not exists”.format(checkdir))
print(“{} create path”.format(checkdir))
os.makedirs(checkdir)
else:
print(“{} exists”.format(checkdir))
“`

実行する

“`
$ python test.py
./testdir not exists
./testdir create path
$ python test.py
./testdir exists
$ ls testdir/
“`

# 参考
https://docs.python.org/3

元記事を表示

Jupyter RuntimeErrorの対処方法 asyncio.run() cannot be called from a running event loop

Jupyter自身のイベントループ上で新たにイベントループを開始しようとしたために起こったエラー。非同期処理を実行させたければ、await関数で直接実行させれば良い。

“`python:Jupyterで非同期処理を実行させる
import asyncio
import datetime

async def display_date():
“””現在時刻を5秒間表示する”””
loop = asyncio.get_running_loop()
end_time = loop.time() + 5.0
while True:
print(datetime.datetime.now())
if(loop.time()+1.0)>=end_time:
break
await asyncio.sleep(1)

x : asyncio.run(display_date())
○ : await display_date()
“`
“`
2022-01-25 15:31:57.79

元記事を表示

【Django】IIS のサーバータイムアウト時間の変更

#はじめに
Django フレームワークを用いて IIS サーバーへデプロイしました
その際に サーバータイムアウト の設定を IISマネージャーからどこを変えてもうんともすんとも効かなかったので、変更箇所を共有したいと思います
IIS タイムアウト時間はデフォルトで 110 秒となっています

※DjangoをIISへデプロイしたり環境の用意をする記事ではありません

####下記の環境を想定しています
“`
– Windows Server 2019
– IIS 10
– Python 3.9.7
– Django 3.2.10
– wfastcgi 3.0.0
– wwwroot 直下に venv にて python 仮想環境フォルダ(env)を作成
“`

#もくじ
– applicationHost.config の変更

#applicationHost.config の変更
下記ディレクトリにある applicationHost.config を変更します
“`C:\Windows\System32\inetsrv\Config\applicationHost.

元記事を表示

Apache Airflow 並列処理 ハンズオン

# はじめに

[Apache Airflow ハンズオン](https://qiita.com/honda28/items/2d780aad39b344e354ff)に続いて、[The Complete Hands-On Introduction to Apache Airflow](https://www.udemy.com/course/the-complete-hands-on-course-to-master-apache-airflow/) で理解を深める。本記事では、デフォルトで設定されている SQLite と SequentialExecutor での挙動を確認した後、それらを PostgreSQL と LocalExecutor に変更し、並列処理を試す。

# デフォルト設定の確認

Apache Airflow では、初期化した段階でデフォルトの設定がなされている。設定は以下コマンドで確認できる。

“`bash
$ airflow config get-value core sql_alchemy_conn
sqlite:////home/airflow/ai

元記事を表示

OTHERカテゴリの最新記事