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

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

AtCoder Beginner Contest 252の復習, E問まで(Python)

[ABC252](https://atcoder.jp/contests/abc252)に参加しました。復習用記事です。

ここで書く解は解説や他の人の提出を見ながら書いたものです。自分が実際に提出したものとは限りません。

## [A – ASCII code](https://atcoder.jp/contests/abc252/tasks/abc252_a)

英小文字の文字コード(番号)を文字に変換する問題です。

pythonでは変換用の関数が用意されています。

“`py
N = int(input())

print(chr(N))
“`

## [B – Takahashi’s Failure](https://atcoder.jp/contests/abc252/tasks/abc252_b)

数列Aの最大値となる要素の位置番号が数列Bに含まれているかを調べる問題です。

制約条件が緩いのでどうやってもいいです。

「配列A内で最大となるインデックスの配列」を作り、「配列B」との重複する要素をset型で取り出すのが綺麗でしょうか。

インデックスの値に1を加

元記事を表示

Django デプロイ前後のエラー対処(初学者)

# はじめに

こちらの記事はDjangoで作成したものをHerokuにてデプロイする際にエラーにとてもつまずいたので、また見返す用に作成しました。誰かのためになれば嬉しいです。

# 目次

1. [push前のエラー](#Chapter1)
1. [push後のエラー](#Chapter2)
1. [参考文献](#reference)



# push前のエラー
## 「error: failed to push some refs to」について
Herokuで「git push heroku main」を実行する際に、以下のようなエラーが出ることがあります。
“`
To https://git.heroku.com/<アプリ名>.git
![remote rejected]main -> main (pre-receive hook declined)
error: failed to push some refs to ‘

元記事を表示

ABC001が一通り解けたので書いた記事[Python3]

## はじめに
pythonでもABC001を解いてみました。苦手な言語なので非常に疲れました。
解説はJavaとほぼ同じです。というか、コピペばっかです。

では、実際に私がACを取れたコードを見ながら解説していきます。

## A-積雪深差
問題文は[こちら](https://atcoder.jp/contests/abc001/tasks/abc001_1)

単純にH1-H2を行なえば良いですね。
“`A.py
#値の受け取り
H1 = int(input())
H2 = int(input())
#差の出力
print(H1-H2)
“`
今のABCもこれくらい優しいと助かるんですがね。

## B-視程の通報
問題文は[こちら](https://atcoder.jp/contests/abc001/tasks/abc001_2)

ちょっと条件が多いですが、そのままコードに落とし込んでやりましょう。
“`B.py
#値の受け取り
m = int(input())
#出力用に文字列版も
mm = str(m)
#100未満なら00
if m<100: pri

元記事を表示

intへの変換の範囲について

# 概要
int型変換で遊んでいて気づいたので備忘録。

半角数値の文字列をint()で数値型にできるのは当然だが、
全角数値型の文字も半角数値にしてくれることにちょっと感動した。

# やっていたこと

“`python: 文字列(半角数値)を数値へ
>>> num = “123”
>>> int(num)
123
“`

まあ、当然そうなる。

“`python: 文字列(全角数値)を数値へ
>>> num = “123”
>>> int(num)
123
“`
おおお、優秀。

“`python: 文字列(漢字で単位と数値)を数値へ
>>> num3 = “一億”
>>> int(num3)
Traceback (most recent call last):
File ““, line 1, in
ValueError: invalid literal for int() with base 10: ‘一億’
“`
期待したけどダメでした。まあ、当然。漢字をほいほいできる訳無し。

“`python: 文字列(漢字(数字のみ))

元記事を表示

Pythonスクリプトのメモリリークを探す

どんなプログラミング言語でもメモリリークの追跡は難しいものです。特に、他人の作ったライブラリでメモリリークがある場合、原因を切り分けるのは非常に面倒な仕事になります。

Pythonにはtracemallocという組み込みモジュールがあり、これがメモリリークの調査に便利だったのでまとめてみます。

## メモリ消費量トップ10を出す

tracemallocのマニュアルにも書いてあるのですが、下記のようにするとメモリ消費量のトップ10が出せます。

“`python
import tracemalloc

tracemalloc.start()

# … メモリリークしてるっぽい処理 …

snapshot = tracemalloc.take_snapshot()
top_stats = snapshot.statistics(‘lineno’)

print(“[ Top 10 ]”)
for stat in top_stats[:10]:
print(stat)
“`

これを実行すると、下記のような結果が得られます。

“`
[ Top 10 ]
/usr

元記事を表示

【Python】話題の音声認識ツールキット Vosk を試してみた

# はじめに

こちらの記事は[Zenn](https://zenn.dev/kama_meshi/articles/517acebcdd1d61)にも投稿しています。

たまたまTLで見かけたので試してみました。結果から言うとすごく簡単、触っていておもしろかったです。

# What is Vosk?

20言語以上に対応した音声認識ツールキット。言語モデルが50MBと軽く、組み込みがしやすいです。[^1]
PythonはもちろんのことNode.jsやJava, C#でも実装可能。ラズパイ/iOS/Android用のビルド、Websocketサーバまで用意されているという準備の良さです。
**なおM1 Macには非対応です。**
詳しくは [Vosk](https://alphacephei.com/vosk/) のリファレンスで。

# サンプル音声の準備

まずは音源の準備をします。フリーの素材がないかと探していたところ [こえやさん](https://www.

元記事を表示

Pythonの勉強方法(初心者)

Pythonの勉強方法を紹介したいと思います。
Pythonといっても、コーディングのレベルはさまざまです。ここでは、データ分析を行なったり機械学習を実装する上で必要なレベルになるための勉強法を紹介します。

余談ですが、、、
ちなみに私自身も学部1, 2年の時にPythonのプログラミングの授業がありましたが、その時は全くできませんでした、、
(今もたいして書けませんが、、😂)

長期休暇にプログラミングの勉強しようと決意してもなかなか続かず、、
いざコードを書いてみても、実行時エラーの意味がわからない、、

などなど、苦労しました。

そんな自分が、企業の長期インターンで全く問題なくプログラムを書くレベルまでになった勉強方法を紹介したいと思います。

### ○ 意識したこと
・無理にメソッドを使おうとしなくてOK
・実行時間とか気にせず、自分が書けるコードを書く(無駄が多くてもOK)
・細かいことはとりあえず無視(必要になった時に勉強する)

### ○ 実際に行ったこと
・とても簡単な本でいいので、一冊とりあえず頑張ってやってみる。
・YouTubeの動画で勉強する。(←一番

元記事を表示

【Python】特定ユーザーの最新の投稿にいいねしたアカウントを全件取得する

# 初めに
 ことすたぐらむフォロー機能2のいいねしたアカウントのユーザーIDを全件取得する工程になります。
 こちらと、フォロー機能1で搭載した画面からのフォローを組み合わせることで、フォロー機能2は完成します。
 順に解説していきます。

# 最新の投稿にいいねしたアカウントを全件取得する

## ライブラリをインポートする
 まずはライブラリをインポートしましょう。インポートするライブラリはinstaloaderです。instaloaderについては別記事で詳しく書こうと思いますが、非常に使いやすいライブラリです。
“`python:instagram.py
import instaloader
“`
## ログインIDとパスワードを定義する
 instaloaderでInstagramにログインするための情報を設定しましょう。
“`python:instagram.py
import instaloader

#IDとpasswordを定義
INSTAGRAM_ID = 自分のユーザーID
INSTAGRAM_PASSWORD = 自分のパスワード
“`

## Ins

元記事を表示

python if文の条件の判定順

すこし気になることがあり、if条件判定順について確認してみた。(個人的メモ)

下のコードのように配列長より長い数値が入りうる変数で配列の要素をチェックする際に、if文を一気に書いた方がインデントが減るので確認してみた。(phpだと定義されている(と認識している)ので、個人的にはよく使っていた)

“`python
import numpy as np
array_Test = np.repeat(True,10)
for i in range(0,15):
if i < len(array_Test) and array_Test[i]==True:#配列の要素をチェックすることを強調 print(i,"True") else: print(i,"False") ## 結果 # 0 True # 1 True # 2 True # 3 True # 4 True # 5 True # 6 True # 7 True # 8 True # 9 True # 10 False # 11 False # 12 False # 13 Fals

元記事を表示

重回帰分析にダミー変数を使うとき

# 重回帰分析にダミー変数を使うとき

## 1. 重回帰分析に使用するデータ

“`python
import pandas as pd

df5 = pd.DataFrame({
‘x1’: [2, 2, 3, 1, 2, 3, 2, 2, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1],
‘x2’: [2, 2, 3, 2, 2, 1, 2, 3, 2, 3, 2, 1, 3, 2, 2, 1, 1, 3, 2, 1],
‘y’: [17, 20, 24, 15, 20, 19, 20, 22, 20, 26, 24, 14, 22, 23, 23, 19, 13, 27, 17, 13]})
“`

前の記事では $x_1$, $x_2$ ともに連続変数として,そのまま説明変数として使った。

今回,$x_2$ をカテゴリー変数として扱うことにする。

`pd.get_dummies()` により,$k$ 個のカテゴリーを表すために **冗長ではあるが** $k$ 個のダミー変数を作る。

$k$ 個のダミー変数は一次従属なので,正規

元記事を表示

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’)

#子要素の名称

元記事を表示

OTHERカテゴリの最新記事