Python3関連のことを調べてみた2022年05月18日

Python3関連のことを調べてみた2022年05月18日

C1802:use-implicit-booleaness-not-lenと怒られた反省

# 概要
Python3でシーケンス(リストやタプル)の要素が空であるか判定したいとき、以下のようなコードになると思う。
“`python
list_1 = []
if list_1 == []:
print(list_1)

[] # 出力

tuple_1 = ()
if tuple_1 == ():
print(tuple_1)

() # 出力
“`
if文の条件式での比較対象に、空のシーケンスを指定すればいい。

それはそれとして、「Python」「リスト」「空判定」といったキーワードで検索を行うと、以下のような書き方を示すサイトが検索上位に多く表示される。
“`python
list_1 = []
if not len(list_1):
print(list_1)

[] # 出力

tuple_1 = ()
if not len(tuple_1):
print(tuple_1)

() # 出力
“`
前述のコードのように同じ条件式でリストとタプルの両方の判定を行えるので便利。
ただ、Pylintでコードのチェックを行うと、この

元記事を表示

Python学習まとめ

## この文書は何か

普段pythonを書いていないため、忘れていることや学んだことをまとめていきます。業務ではGo言語を使用しているため、Go言語との比較もあるかもです。新米なので、間違っていることなどあれば教えていただけるとありがたいです。

## 簡単な関数の学習まとめ

“`python
# 関数の書き方、戻り値は定義しない
# 任意の3つの数の合計値を求める、3つが全て同じなら3倍にして返す
# 型定義しない
def sumOfAmounts(a, b, c):
if a == b == c:
ans = (a + b + c)*3
else:
ans = a + b + c
return ans
# 下記で複数の数字の標準入力に対応
a,b,c = (int(x) for x in input().split())
sumOfAmounts(a,b,c)
# TODO:pythonってどうやって実行するの

def addls(strings):
if len(strings) >= 2 and strin

元記事を表示

A simple script to show Airflow 1.10.9 tasks states in non-GUI environments

## TL;DR

Suppose you have an [Airflow 1.10.9](https://airflow.apache.org/docs/apache-airflow/1.10.9/) (this is important) instance running with [REST API](https://airflow.apache.org/docs/apache-airflow/1.10.9/api.html#) enabled listening
on `https://airflow.work.in` (for example). Suppose further that you have DAG called `my_dag` with tasks `task-1`, `task-2` and `task-3` backfilled from `2022-04-01` till `2022-04-10`. Then, to see the each task’s completion status in non-graphical environment,

元記事を表示

Heroku利用方法[Windows]

# 目次
1. 事前準備
1. Herokuの利用
1. Herokuの運用

# 1. 事前準備

### Gitインストール
>[こちら](https://www.curict.com/item/60/60bfe0e.html “Gitインストール詳細”)を参考にしながら、Gitをインストールします。
私はすべてデフォルトでインストールしました。

### Herokuアカウントを作成
>[こちら](https://jp.heroku.com )から、「無料で新規登録」より作成できます。

### HerokuCLIインストール
>[こちら](https://devcenter.heroku.com/ja/articles/heroku-cli)からインストールできます。
CLI -> Command Line Interface

# 2. Herokuを利用
### Heroku環境構築
>“`bash
>heroku login # ログインページが起動するので、アカウントを入力する
>heroku create <アプリ名> # アプリを作るフォルダーを作成する
>#

元記事を表示

opencv-pythonインストール時に ModuleNotFoundError: No module named ‘skbuild’と言われる

# pipでopencv-pythonインストール時に ModuleNotFoundError: No module named ‘skbuild’と言われる

pipを更新してみましょう。
“` bash
pip3 install –upgrade pip
“`

元記事を表示

albumentationsのpipインストール時に生じたopencv-python-headless buildエラーの解消法

## albumentationsインストール時のエラー
albumentationsをpip installする際に下記のエラーが発生。

“`:error内容
Traceback (most recent call last):
File “/opt/pyenv/versions/3.9.9/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py”, line 349, in
main()
File “/opt/pyenv/versions/3.9.9/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py”, line 331, in main
json_out[‘return_val’] = hook(**hook_input[‘kwargs’])
File “/opt/pyenv/versions/3.9.9/lib/python3.9/site-pa

元記事を表示

Python リストをなるべく均等にN分割する

# はじめに
マルチスレッド(スレッドプール等)で並行処理するときに使えるテクニックです

# 方法

“`python
import random

def split_array(ar, n_group):
for i_chunk in range(n_group):
yield ar[i_chunk * len(ar) // n_group:(i_chunk + 1) * len(ar) // n_group]

for _ in range(3):
# 要素数をランダムに決定
elem_count = random.randint(100,1000)
ar = [i for i in range(elem_count)]
# 分割数をランダムに決定
n = random.randint(10,20)

splited = split_array(ar, n)

print(f’要素数{elem_count}のリストを{n}分割’)
for elem in splited:

元記事を表示

Pythonを使ってミュージックアプリを操作する

やりたいこと(要件)
Pythonを使ってミュージックアプリの”再生・停止・次の曲にスキップ・音量”を操作したい。

動作に必要な環境
(1)MacOS(Windowsは対象外)
(2)Python3
(3)PythonからAppleScriptを利用するパッケージ
http://appscript.sourceforge.net/index.html
開発は終了しているようです。

手順
(1)実行するPC(Mac)で、以下のコマンドを実行しておく。
pip3 install appscript

(2)MusicControlクラスを準備する。
以下の内容をファイルに保存する。ファイル名は”MusicControl.py”
“`python:MusicControl.py
from appscript import app

class MusicControl(object):
“””
AppleScriptを利用して、Musicアプリをコントロールするクラス
注意:MacOSに依存する
“””
def __init__(self):

元記事を表示

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

**ABC251**の**A,B,C,D,E問題**を、**Python3**でなるべく丁寧に解説していきます。

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

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

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM**

元記事を表示

beautifulsoupで[特定の親要素]配下の[特定の子要素]だけを取得する方法

## やりたいこと
(備忘録を兼ねての内容なのであしからず)

ターゲットとするhtmlから、繰り返される親要素(タグ)のうち、特定の「id」に合致するものを取得。
さらに特定の「class」に該当する子要素(タグ)を取得したい。
※「id」、「class」と記載ありますが、あくまで今回やりたかったケースなので、他の組み合わせも可能

## やったこと
beautifulsoupのfindメソッドを連結させることで対応できました。

簡単にいえば
 find(親要素).find(子要素)
ですね。

“`python:
from selenium import webdriver
from bs4 import BeautifulSoup
import re

browser = webdriver.Chrome((r’C:\Users\[ユーザ名]\chromedriver.exe’)
browser.get([目的のURL])

html = browser.page_source
soup = BeautifulSoup(html,’html.parser’)

#子要素の名称

元記事を表示

Ubntu16.04.7にPython3.9をインストール

## 初めに
備忘録として残します!

## opensslをversionアップする
“`bash
cd /usr/local/src
sudo wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz
sudo tar xvf openssl-1.1.1o.tar.gz # 解凍
cd openssl-1.1.1o
sudo ./config # sourceをコンパイルしてインストールする
sudo make
sudo make install
which openssl # opensslの場所を確認
ldd /usr/local/openssl # opensslの共有ライブラリの確認
“`
* wgetを行うダウンロード先は、確認しましょう。
* 共有ライブラリの確認の際、not foundとなっている場合、下のようにldconfigにキャッシュ対象を追加するを参照する

## ldonfigにキャッシュ対象を追加する
“`bash
cd ld.so.conf.d/
sudo vim openssl-1.

元記事を表示

【2022】APIのAPI(サイト付き)を作った。PythonのBottleで。

# 自己紹介
我の名はふわふわ羊。
ふわふわ~。
C#でゲームを作ったり、Pythonでサイトを作ったりしている野生の羊。

# さくっと本題。

http://apis.uvs.jp/
↑GUIサイト
http://apis.uvs.jp/index.py/API
↑APIエンドポイント

掲題の通り、APIのAPIを作った。
~~しかし、rapidapiがあるから、いらないんじゃないか?~~
とりあえず、世の中にはAPIがたくさんあるので、びびっと来たものだけをチョイスして登録してある。

これを登録すべき!というものがあれば、コメントもしくはメールを頂きたく。にんにん。

# 【これから】
GUIサイトについてだが、やはり視認性を良くすべきだ。
CSSやデザインを改善したい。
それと、もっと楽しく出来ないか!?
例えば「いいね」機能が出来たらみんなハッピーなんじゃないか!?
でも「いいね」を連投されたらどうするんだ!?
あああああ!!!!
ふわふわ~!!!!!

*サイトに皆さん書き込んでみてくださいね。

# 【所要時間】
全部込みこみで6時間くらいかかった。
やはりPyth

元記事を表示

pythonを利用して画像から文字認識をする。

# 目的
python + Tesseractによる画像処理をOCRで試し、使い勝手を調査します。

google ドライブのOCRを使用した場合、画像内の文字認識がかなりの高精度で判断でき、便利なことが分かりました。
ただ、不便なこともいくつかありました。
・複数の画像の処理をする場合、手作業に時間がかる。
・文字認識までに時間がかかる。
・余計なスペースが入る。

# OCRとは
OCRは、Optical Character Reader の略で、画像データの文字部分を認識し、デジタルの文字データに変換する光学文字認識機能のことです。例えば、jpgやpngなどの画像データの拡張子ファイルから文字部分を取り出して、書かれている文字をテキストデータにできるようなイメージです。
![クイックノート P1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176158/6de3bd13-f160-7c12-a2f3-f622385c3ba3.png)

# 環境
Python version:3.9.7
OS:

元記事を表示

【標準入力】ユークリッドの互除法で最大公約数をもとめる【python3】

# ユークリッドの互除法とは
2つの自然数の最大公約数を求める方法の1つ

## 使いどころ

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1212456512

# 互除法のやり方
「割り切るまで二つの自然数を割り続ける」やり方を説明する。
①「2つの自然数のうち大きい数÷小さい数」する。
②前の手順の除数(最初は「2つの自然数のうち小さい数」)を前の手順の余りで割る。
③以上の手順を余りが0になるまで繰り返す。
余りが0のときの除数が最大公約数である。

※最大公約数とは余りが0になる上に一番大きな「割り切る整数(約数)」で一番大きな「割る方も割られる方も割ることが出来る数(公約数)」
※除数は割る方の数の事である。a÷bのbの方。

正式な言い方は調べると出ます。
私が噛み砕いて理解する分には上記の※の文章になります。

# pythonで表現するユークリッドの互除法
“`python
a,b=(int(x) for x in input().split())#数字にするため。input(),input()

元記事を表示

python3の私がよく忘れる演算子

`//`:整数除算。小数を切り捨てする除算。
`**`:べき乗「αの何乗」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1822331/4c3d7cd2-95b8-4d1f-b0a6-6601aab689e2.png)
のことを「a のべき乗」という

元記事を表示

じけい?れつ

Kaggle本
時系列データの扱い3.10
時系列データのバリデーション手法5.3

以下の観点から捉える。
1.時間情報を持つ変数があるかどうか
2.学習データ、テストデータが時系列で分かれているかどうか
3.ユーザーや店舗といった系列ごとに時系列の目的変数があり、ラグ特徴量が取れる形式であるかどうか

ケース1(1に当てはまる場合)
・ユーザーの属性や過去の行動ログが与えられる、
・予測対象は1ヶ月以内に解約するかどうか
・ある時点のユーザーを分割して、学習データテストデータが作成されている。
ケース2(1と2に当てはまる場合)(自分のバイトはこれ)
・ユーザーの属性や過去の行動ログが与えられる
・予測対象は1ヶ月以内に解約するかどうか
・テストデータはある時点のユーザ全体で、学習データとして、過去の各月ごとに月初ごとに存在するユーザーとその月内に退会したかどうかが与えられる。
ケース3(1、2、3に当てはまる場合)
・ユーザーの属性や過去の行動ログの他に、ユーザー過去の利用時間が日毎に与えられる。
・予測対象は日毎の利用時間
・テストデータはある時点のユーザー全体と将来の一定期間

元記事を表示

初めてQiskitを使ってからQiskitで量子機械学習ができるようになるまで 〜パート5〜

# QSVMによる3値分類
いよいよ最後のパートとなります!ここでは、前回予告した通り、Scikit-Learnのワインの数値データセットを用いて、3値分類を行います。

1. 2つの特徴量で量子SVM、古典SVMそれぞれでできた超平面を可視化し、モデルの性能を評価したものを比較する
2. 特徴量を3つに増やし、ZZFeatureMapの中のリピート数、もつれの型の2つのパラメータを変化させてその違いを比較する
3. ZZFeatureMapのパラメータを、リピート数4、もつれの型を循環型にフィックスし、特徴量の次元を変えて比較する

の3本立てですので、一つ一つ検証していきましょう。

前回のおさらい(パート4)は[こちら](https://qiita.com/Hiroki_Akita/items/e4c306ac6fdab78d24d5)から。

## 下準備
そろそろ言われなくてもやってますかね?(笑)

“`python
!pip install qiskit
!pip install qiskit[visualization]
!pip install qiskit-mac

元記事を表示

【最新のPyScript】HTMLにPython処理記述!ブラウザ表示をJavaScriptみたいに埋め込めるらしいので試してみた

先日PyConで取り扱っていたバックエンドで使うPythonをクライアントサイドで!使い勝手はJavaScriptとか書くかのように処理を書けるという**PyScript**です。
まだアルファ版ということで足りないところはあるようですが、話題となっているとのこと。

:point_down: サンプル: HTMLにPythonで処理書いてる。※少し時間かかるようです。

https://pyscript.net/examples/todo.html

https://pyscript.net/examples/matplotlib.html

HTMLにPythonの処理を埋め込んで書けるということで

– pandasとかscikit-learn、グラフなんかを書ける
– Pythonは書けるけどJS自信ない…

という人にも良いかもしれませんし、今後機能が充実したらもっと期待できそう。
![スクリーンショット 2022-05-13 2.16.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

Pythonこれだけ押さえとけ!!

## はじめに
インターンでPythonを使うことになったので、5月1日からPython学習を始めました
2週間弱たったので書き溜めたものを備忘録的に残したいと思います。
因みに投稿する前になぜかBoost Noteの記事が一つ消えてしまって書き直しました泣
まぁだから書き直し次第投稿しようと思ったのだけど・・・

## Python1

## 変数
“`python
sample = 1
“`

## 定数
“`python
OOMOJI = “pyに定数はないが慣習で大文字”
“`

## リスト(配列)
“`python
# listを変数名にするとlist()が使えなくなる
li = [1, 2, 3, 4, 5]

# 要素を追加
li.append(6)

# 指定したindex番号に挿入
li.insert(0, ‘hoge’)

## 指定した値と同じ要素を削除
li.remove(‘python’)
“`

## 辞書型(オブジェクト)
“`rb
obj = {
“hoge”: “ホゲ”,
“sample”: “サンプル”
}

# 追加 2通り
obj

元記事を表示

SPIKEプライムの軌跡をPythonで描画する

# 目次
1.SPIKEプライムとは?
2.プログラミング
3.ロボットを動かす
  ジャイロセンサーから情報取得
4.Pythonで描画
5.最後に


# SPIKEプライムとは?
[LEGO公式ページより](https://education.lego.com/ja-jp/products/-spike-/45678#spike%E3%83%97%E3%83%A9%E3%82%A4%E3%83%A0)
>レゴ**®エデュケーション SPIKE™** プライムは、小学校高学年から中高生向けのSTEAM学習セットです。カラフルなブロックパーツや、使いやすいハードウェアとScratchベースの直感的なプログラミングを融合し、問題解決型のプロジェクトを通して楽しみながら実社会で役立つスキルを育くむことを可能にします。また、SPIKEプライムは、人気の高いプログラミング言語Pythonを使ったテキストコーディングにも対応し、学習ニーズに応じてアプリ上で、ワードブロック(Scratch ベース)または、Python(テキストベース)を選択することが

元記事を表示

OTHERカテゴリの最新記事