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

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

知らなかったPython3の言語仕様まとめ

他の言語とちょっと違う・・・・というのを中心に個人用のメモとして残そうと思います

[オライリーの入門 Python 3を参照しています](https://www.amazon.co.jp/dp/4873117380/)
[Python3 公式ドキュメント](https://docs.python.org/3/contents.html)
## データ型

Pythonでは、ブール値、整数、浮動小数点数、文字列、データ構造(※1)、関数、プログラムもすべてオブジェクトとして扱われる

:::note warn
プリミティブ型が存在しないので、全て値の参照を保持する
複製したいときには注意が必要である
:::

|種類|データ型|
|—|—|
|数値型|[int](https://docs.python.org/3/library/stdtypes.html?highlight=int)|
|数値型|[float](https://docs.python.org/3/library/stdtypes.html?highlight=float)|
|複素数型|[complex](h

元記事を表示

【Qiita API】Qiita投稿記事の総閲覧数知りたくない?

## はじめに
どうもこんにちはもきお([@mokio_50](https://twitter.com/mokio_50))です。実務でスクレイピングやデータ分析に触れたので、なんかデータ取ってきて取得したものを分析してみたい欲にかられました。

そこでふと思ったのが、自分がこれまで投稿してきた記事の総閲覧数とかってパッとみる事できなくね?総閲覧数ってどのくらいなんだろう?と調べてみたくなりました。

なので今回は総閲覧数をPythonを使用し取得するのをメインに実装してみたのを書き残しておきたいと思います。

## 実装方法
最初はスクレイピングしないと取得できないかなーと思っていましたが、調べてみるとQiitaさんが正式にAPI提供してくれているではありませんか!!ドキュメントも分かりやすく書かれています。さすがQiitaさん!

https://qiita.com/api/v2/docs

あとはこのAPIにリクエストを投げて、返ってきたjsonデータを可視化すれば良さそうです。Qiita API使用している良さそうな記事ないかなーと思っているとまさに自分がやりたい事を記事にして

元記事を表示

python、pip関連のメモ書き

#### pip listとpip freezeでパッケージ一覧表示と違いについて

pythonのpipでインストールしたパッケージとバージョンを一覧表示する場合、pip listかpip freezeでできます。

“`
$ pip list
$ pip freeze
“`

両者の違いは、出力形式にあるようです。

##### 参考サイト

・[pip listとpip freezeの違い](https://it-jog.com/py/piplistfreeze)
・[Python, pip list / freezeでインストール済みパッケージ一覧を確認](https://note.nkmk.me/python-pip-list-freeze/)

元記事を表示

AtCoder Beginner Contest(ABC) 283 – Pythonでリアルタイム参加結果と内容整理

# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。

# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 283
– 開催日時
– 2022/12/24(土) 21:00 – 22:40
– 実施区分
– リアルタイム参加

# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|2:45|24ms|
|B問題|AC|8:10|463ms|
|C問題|AC|34:58(1)|202ms|
|D問題|AC|95:07(3)|159ms|

# 4. 解説

## 4-1. A – Power

### 4-1-1. 問題文
整数 A,B が与えられ

元記事を表示

Microsoft Azure: 秘密鍵を使ってサービスプリンシパルの認証を行う

Microsoft Azure で、秘密鍵を使ってサービスプリンシパルの認証情報を作成するコードを紹介します。 サービスプリンシパルに証明書を登録した場合は秘密鍵を使って認証できます。
さらに、その認証を利用して、 Azure Storage Account のコンテナ一覧、ファイル一覧を行なってみます。

## 環境

* Python 3.10.8
* pipでインストールしたもの
* azure-identity 1.12.0
* azure-storage-blob 12.14.1

## 認証情報を作成するコード

秘密鍵を使って認証情報を作成する場合は、 `azure.identity.CertificateCredential` を使います。
`CertificateCredential` のパラメータとなる `client_id`, `tenant_id` はサービスプリンシパルのページからわかります。

“`python
import azure

config = {
‘client_id’: ‘XXXXXXXXXXXXXXXXXX

元記事を表示

【入門】ソケット通信

# はじめに
普段何気にWebサイトを見たりする際に、実際にどのような通信が行われているのか意識したことはない、、、ブラックボックスとして意識の外に追いやっている方が多いのではないかと思います、

ネットワークエンジニアは、プロトコルの通信の仕組みはある程度理解している。
しかし、実際に作ってみようとしても、「あれ、、そんなのできるのか、、」となりました。

そこで、ネットワークの基礎的な通信であるソケット通信についてまとめて、実際に再現してみました。

# この記事の対象者
– ネットワーク初心者で、通信の基礎を学習したい
– 自分でソケット通信を再現してみたい
– ネットワークエンジニアなりたての初学者

# 環境
– Visual Studio Code
– Python 3.9.7

環境が無い方は以下を参考にして、準備してください

https://docs.microsoft.com/ja-jp/training/modules/python-install-vscode/

# 通信情報の取得
socketをimportすることで、通信の情報が取得することができます。
`

元記事を表示

ボイチャ録音できる!DiscordBotの開発

# はじめに
`Discord Bot作るならPython一択だよなぁ↑`という思考の元(?)Discord Botを開発されている皆さん、録音機能を実装したくなったことありませんか?

私が調べた限りでは、録音機能の実装方法を紹介をしている記事は少なく、数少ない検索結果の中にあったとある記事を読んでみましたが、DiscordのAPIを直接操作しているようで、難易度が高いように感じました。
しかし、Pycordというライブラリを使うことで、DiscordのAPIを直接操作しなくても簡単に録音機能を実装できちゃいます!

そんなわけで、今回はボイチャの録音ができるDiscord Botを作ってみたいと思います。
それでは早速作っていきましょう!

:::note warn
この記事はある程度Pythonが扱えることを前提とした表記・表現等があります。予めご了承ください。
:::

### 実行環境
– OS: `Ubuntu Server 22.04`
– Python: `v3.10.8` (Anaconda)
– pycord: `v2.3.2`
– ffmpeg: `v4.

元記事を表示

PythonであるLambda関数から別のLambda関数を呼び出す

最近あるLambda関数から別のLambda関数を呼び出す処理をする際に少し調べたのでメモ。

# 環境

| ランタイム | Python 3.9 |
| — | — |

# 今回の想定ケース

特定のLambdaから別のLambdaをまるごと呼び出す処理を想定。
今回は、以下の`testFunction01`から`testFunction02`を呼び出すような処理を実現していく。

“`python:testFunction01
def lambda_handler(event, context):
print(‘[testFunction01] testFunction01’)
“`

“`python:testFunction02
def lambda_handler(event, context):
print(‘[testFunction02] Called by testFunction01’)
return {‘message’: ‘called by testFunction01’}
“`

# 実現方法

基本的には[inv

元記事を表示

Pythonで画像のエッジ検出と直線検出をする

# 1.概要
みんな大好き大乱闘スマッシュブラザーズ(以下スマブラ)!!
私事ながら,スマブラ配信をしています.[チャンネル登録お願いします!](https://www.youtube.com/channel/UCKys_FIMcKfIn5L4HOyy0vQ)
スマブラ×機械学習でなんかできないかなー,と思っていたところこんな記事を発見しました.
[画像認識でスマブラの戦績を自動で作成するツールを作ろう](https://note.com/kelp168/n/nf717de3a2d22)
最終的に何を作るかは置いといて,面白そうだしとりあえずやってみよう!

前回,[Pythonで指定した範囲のスクリーンショットを撮る](https://qiita.com/kenshin-627/items/56b4d945ac63ad8c541c)ことができました.
今回の目標は,前回撮った画像からエッジ検出と直線検出をすることです.
こんな画像から,
![before.png](https://qiita-image-store.s3.ap-nor

元記事を表示

AtCoder ユニークビジョンプログラミングコンテスト2022冬 D問題解説(Python コード付)

# はじめに 

 本記事はPythonでAtcoderにチャレンジしているけど、Pythonはコード例がないため解説がわかりにくい!と感じている方を対象としています。
 私自身大してレートも高くないので、不備等あるかもしれませんがご了承くださいm(_ _)m
## ユニークビジョンプログラミングコンテスト2022冬 D問題
 問題のURLはこちらです。[ユニークビジョンプログラミングコンテスト2022冬 D問題](https://atcoder.jp/contests/abc283/tasks/abc283_d)

## 使うデータ構造 
 **スタック**を使っていきます。 
 スタックとはなんぞや?って方は[こちら](https://qiita.com/drken/items/6a95b57d2e374a3d3292)の記事を見て見てください。非常にわかりやすく解説してくれています。
 また、今回私はlistを使ってスタックを実装しましたが、collections.dequeを使用した方が計算速度は早いそうです。[こちら](https://qiita.com/saba/item

元記事を表示

Tweepyで作った画像を呟くBOTをGCPで定期実行させる(素人)

# 目次
1. [はじめに](#はじめに)
2. [TwitterAPIkeyを入手してTweepyでツイート](#twitterapikeyを入手してtweepyでツイート)
2.1 [TwitterAPIkeyを入手](#twitterapikeyを入手)
2.2 [Tweepyでツイート](#tweepyでツイート)
3. [GCPで定期実行](#gcpで定期実行)
3.1 [Cloud Functionにデプロイ](#cloud-functionにデプロイ)
3.2 [Cloud Schedularでデプロイしたプログラムを定期実行](#cloud-schedularでデプロイしたプログラムを定期実行)
4. [Cloud Function上にて画像つきでツイート](#cloud-function上にて画像つきでツイート)
4.1[Firebaseに画像を保存 その画像を読み取るkeyを生成](#firebaseに画像を保存-その画像を読み取るkeyを生成)
4.2[入手したkeyを用いて画像を読み取り一緒にツイート](#入手したkeyを用いて画像を読み取り一緒にツイート)

元記事を表示

paizaラーニング「二次元配列の行ごとの和 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__row_sum
#### 私の解答
“`Python3
n, k = map(int, input().split())
a = [[int(i) for i in input().split()] for _ in range(n)]

for i in range(n):
ans = sum(a[i])
print(ans)
“`
#### 解答例
“`Python3
n, k = map(int, input().split())
a = [[int(i) for i in input().split()] for _ in range(n)]

for i in range(n):
s = 0
for j in range(k):
s += a[i][j]
print(s)
“`

元記事を表示

paizaラーニング「二次元配列の最大の要素 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__search_max
#### 私の解答
“`Python3
n, k = map(int, input().split())
a = [input().split() for _ in range(n)]
max = 0
for i in range(n):
for j in range(k):
if int(a[i][j]) > max:
max = int(a[i][j])
print(max)
“`
#### 解答例
“`Python3
n, k = map(int, input().split())
a = [[int(i) for i in input().split()] for _ in range(n)]

ans = 0
for i in range(n):
for j in range(k):
if a[i][j] > ans:

元記事を表示

roboflowを用いたデータセットのアノテーションのやり方

## 概要
自分で集めたデータセットを学習させてYOLOV5で物体検知をしたい!!
と思ったのですが、アノテーションどうやったらいいの!?
となり、その際にアプリをダウンロードせずにWEB上でアノテーションができるものを見つけたので共有します。

## 目次
– roboflowについて
– roboflowを使ったアノテーション
– プロジェクトの作成
– データセットのアップロード
– アノテーション
– ダウンロード

## roboflowについて
まずそもそもroboflowってなんぞ?って方にroboflowの説明をしたいと思います。
(roboflowの使い方を見にきてるんだって方は飛ばしてください、、)


roboflowは、学習用のデータアップロードからデータ整理、ラベリング、画像処理、学習、モデル配置、組み込み、アクティブラーニングまで一連で行えるAI活用を加速するためのコンピュータビジョンプラットフォームです。(roboflow公式から引用)

[roboflow公式サイト](https://www.systems.nakas

元記事を表示

paizaラーニング「二次元配列での要素の検索 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__search
#### 私の解答
“`Python3
n, k = map(int, input().split())
a = [input().split() for _ in range(n)]

for i in range(n):
for j in range(k):
if int(a[i][j]) == 1:
print(i+1, j+1)
“`
私は数値として扱っていますが、解答例は文字として扱っています。
#### 解答例
“`Python3
n, k = map(int, input().split())
a = [input().split() for _ in range(n)]

for i in range(n):
for j in range(k):
if a[i][j] == “1”:
print(i + 1, j

元記事を表示

【python】勉強メモ 速習Flask⑥

## はじめに
今回は、ログイン機能を実装します。

以下の記事の続きとなります。
[【python】勉強メモ 速習Flask①](https://qiita.com/qiitataro/items/d9b4b44255ae5082838a)
[【python】勉強メモ 速習Flask②](https://qiita.com/qiitataro/items/682faa9749d596cb3496)
[【python】勉強メモ 速習Flask③](https://qiita.com/qiitataro/items/5f12300c4b238d2b6170)
[【python】勉強メモ 速習Flask④](https://qiita.com/qiitataro/items/ae5eca426fbf7d1bea83)
[【python】勉強メモ 速習Flask⑤](https://qiita.com/qiitataro/items/8d7027f97e20a6e07cbc)

## 前回までの環境
#### ディレクトリ構造
“`
pydir/
┣myproject/ ->仮想環境

元記事を表示

paizaラーニング「二次元配列の出力 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_input_step4

前にも同じ問題があったので、私の解答は省略しました。

解答例だけ異なったので、記録に残すことにしました。
#### 解答例
“`Python3
n, k = map(int, input().split())
a = [input().split() for _ in range(n)]

for i in range(n):
for j in range(k):
if j == k – 1:
print(a[i][j])
else:
print(a[i][j], end=” “)
“`

元記事を表示

paizaラーニング「指定された範囲・行数の数字の出力 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__print_range
#### 私の解答
“`Python3
n, k = map(int,input().split())
for _ in range(k):
for i in range(1, n+1):
if i == n:
print(i)
else:
print(i, end=” “)
“`
前の問題の解答例に倣ったので、同じでした。
#### 解答例
“`Python3
n, k = map(int, input().split())
for _ in range(k):
for i in range(1, n + 1):
if i == n:
print(i)
else:
print(i, end=” “)
“`

元記事を表示

paizaラーニング「指定された行数の数字の出力 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__print_column
#### 私の解答
“`Python3
n = int(input())
for i in range(n):
print(“1 2 3 4 5″)
“`
二重ループメニューの問題集なので、私の解答は、手抜きでした^^;
#### 解答例
“`Python3
n = int(input())
for _ in range(n):
for i in range(1, 6):
if i == 5:
print(i)
else:
print(i, end=” “)
“`

元記事を表示

paizaラーニング「指定された数字までの出力 Python3編」

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__print_column_new
#### 私の解答
“`Python3
n = int(input())
for i in range(1,n):
print(i, end=” “)
print(n)
“`
#### 解答例
“`Python3
n = int(input())
for i in range(1, n + 1):
if i != n:
print(i, end=” “)
else:
print(i)
“`

元記事を表示

OTHERカテゴリの最新記事