Python3関連のことを調べてみた2021年08月14日

Python3関連のことを調べてみた2021年08月14日

SitarHarmonicsさんが書いた物体の動きを可視化するコードを復元して、戦闘機と馬術競技のMP4動画で試した(成功)

###実行結果

>“`bash:Terminal
>% python3 trajectory_arrow_sample_2.py –file_path f_22_fighter.mp4 –start_frame 100
>“`

![](https://user-images.githubusercontent.com/87643752/129235872-940e84c9-5208-45e1-8608-fa622bfbe7c9.png)

![](https://user-images.githubusercontent.com/87643752/129235934-d2f76079-4bef-4704-b4f5-1d7e45f3fe53.png)

![](https://user-images.githubusercontent.com/87643752/129236045-78254f55-b2cf-4a43-85b3-360d35372c21.png)

![](https://user-images.githubusercontent.com/87643752/

元記事を表示

Chapter 1 – §02 計算・コメント

# Pythonで計算してみよう
今回から、開発環境を使って作っていきたいと思います。
自分は Pycharm を使いますが、VSCode などご自分が使われているものであればかまいません。
文字列以外は**すべて**半角小文字です。

## 簡単な計算
`1 + 1 = 2` を計算してみましょう。

“`python:1+1
print(1 + 1)
“`
を入れて実行すると、

“`python:1+1
2
“`

と出てきます。
↓ このようになれば成功です。
![6edfec388c1719b3a55ed472207399ca.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1581903/a68078c7-f34f-ff1e-136a-a613dc1c7e0b.png)

掛け算・割り算・累乗(羃乗)などの複雑な計算もできます。

“`python
print(6 – 4)
print(2 * 5)
print(10 / 2)
pri

元記事を表示

指定した距離よりも近づかないように、ランダムに点を平面に並べる

###はじめに
blenderのテクスチャマップで、模様の並びがランダムで、お互いに重ならないようにする必要があったので、指定した距離よりも近づかないように、ランダムに点を平面に並べるリストを作るスクリプトを書いてみた。

ランダムに点を取って、それと、既存の点の距離を計算して、距離が十分なら新たな点として採用、という仕組みなので、効率は悪い。

並べる模様が、指定した面積からはみ出さないように、変数出力をする際に、yohaku = round(distance/2)、を設定してある。

“`python
import random

dot_list = [] #点を入れるリスト。入っているのは、2次元のタプル。

distance = 70 #これ以上離れていれば良い距離。並べるものを円形としたら、その直径より大きな値にする

point_num = 20 #模様の個数

size_x = 1024 #下地の横のサイズ
size_y = 1024 #下地の縦のサイズ

#与えられた既存の点のリストと、新たに作った点に対して、新たな点が、既存の点の一覧と、離れているかの確認。
#近

元記事を表示

OpenCV2で物体追跡 〜 特徴点の移動軌跡をlineではなくarrowedLIneに変えてウインドウに動画出力

__[前の記事](https://qiita.com/electronics_diy721/items/ad9bb5a095ba90e96e37)__で取り組んだオプティカル・フローの物体移動軌跡(__*trajectory*__)を線(__*cv2.line*__)から矢印(__*cv2.arrwedLine*__)に変えてみた。

__( 前の記事 )__

– [OpenCV2で物体追跡 〜 特徴点の移動軌跡をフレーム画像から切離してウインドウに動画出力](https://qiita.com/electronics_diy721/items/ad9bb5a095ba90e96e37)

Have changed *cv2.line* tp *cv2.arrowedLine* in optical flow drawing script.

###( 変更後の出力結果 )

– 左下の画面を見ると、ところどころ小さな__矢印の先(「>」)__が見える

![](https://user-images.githubusercontent.com/87643752/129138904

元記事を表示

【解決】【Python】自作クラス内のlistに値を代入するときappendだと__dict__に代入されない

# 8/12追記

@shiracamusさんより丁寧に解説して頂き解決しました。
結論として変数をインスタンス化をしていなかったらとなります。

“`python:
class Result:

def __init__(self): # 初期化をしていなかった
self.result = []
“`
初期化することでappendでも代入されることを確認しました。
ありがとうございます。

以下追記前の記事です。

# はじめに
PythonでクラスをJSONにシリアライズするときにハマったので書き落としておきます。
まだまだ初学者で根本的な間違いをしていそうなので、理由わかる方いましたらぜひ教えて頂きたいです。

# 環境
python 3.9.6
pipenv version 2021.5.29

# 本文
###0. 前準備
実行結果をまとめておくクラスに内包されたlistを用意しておきました。

“`python:
class Result:
result: list[str] = []
“`
###1. append
さて、ここに実行結果の

元記事を表示

CartPoleを強化学習ライブラリKeras-rlを使って学習させてみた

DeepLearningの勉強中なのですが、(全くわからないので)「とりあえず他人の模倣をする」という方針で、多くの皆様方がやっておられるOpenAIのCartPoleを強化学習ライブラリKeras-RLを使って学習させてみました。

#CartPoleとは

CartPoleは横に移動できるカートの上にポールが立っており、そのポールをいかに倒さず長く維持できるかを競うゲームになっています。言い換えるとCartPoleでは「4つの入力情報(カートの位置、カートの速度、ポールの角度、ポールの角速度)を与えて、2つの出力(左に押す、右に押す:押す強さは固定)のうちどちらか1つを選ぶ、DeepLearningのモデルを作りなさい」と言うことです。

![cartpole.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593076/62664196-5983-eb54-c5e6-6055c5fdc69e.png)

#動作環境

本投稿では下のライブラリを使っています。Keras-RL2が強化学習用ライブラリで

元記事を表示

flaskを使ってRestAPIサーバを作ってみる(編集編)

# 本記事は

[flaskを使ってRestAPIサーバを作ってみる](https://qiita.com/kaorunix/items/c5fb96124dcdf57c151f)の「編集」について記述しています。
ここまでの流れは[flaskを使ってRestAPIサーバを作ってみる](https://qiita.com/kaorunix/items/c5fb96124dcdf57c151f)を参照してください。

# 4. 編集

次に編集です。

編集も、必要な情報はsearchと変わりませんが、どのAccountを変更するかを指定するためにアカウントIDを指定することにします。
変更が必要な項目のみを受け取り、リクエストにない項目は更新しないことにします。

受信すべきリクエストは次の様になります。

###### updateのリクエスト

“`json
{
        ”id”: 320,
“account_name”: “account”,
“start_on”: “2021-01-01 00:00:00”,
“end_on”: “2021-1

元記事を表示

PythonでJSON with Commentsを使う

# 目次

1. [Pythonファイルへのデータ直書きに待った](#pythonファイルへのデータ直書きに待った)
2. [JSON with Comments とは](#json-with-comments-とは)
3. [JSONCファイルをPythonで読み込む](#jsoncファイルをpythonで読み込む)
4. [参考文献](#参考文献)

# Pythonファイルへのデータ直書きに待った

お急ぎの方は読み飛ばしてください。

例えば、都道府県庁所在地を辞書型で持つ、という状況を考えてみましょう。
Pythonファイルにデータを直書きしてしまうと、以下のような感じになってしまうでしょう。

“`hoge.py
dict_prefectural_capital = {‘北海道’: ‘札幌’, ‘青森県’: ‘青森’,
… (略) … ,
‘沖縄県’: ‘那覇’}
“`

このデータをここからさらにいじりたい時(具体例悪くてすみません・・・)とかは、こ

元記事を表示

Pythonでオリジナルのドット絵エディタを作る(3) – FFT機能の実装

#はじめに
[前回の記事](https://qiita.com/Hisan_twi/items/d9cb985ef1ca6b660c08)で作成したドット絵エディタにお遊び機能として高速フーリエ変換(FFT)機能を追加します。
搭載する機能の仕様は以下の通りです。

– FFTボタンをクリックするとペイントツールで描いた原画像をFFTしてそのパワースペクトルと位相像を表示する。
– IFFTボタンをクリックするとパワースペクトルと位相像から原画像に逆変換する。
– ライブFFTボタンを有効にするとペイントツールや編集ボタンで描画したしたときに自動で上記の相互変換を行う。
– パワースペクトルおよび位相像のキャンバスにも原画像のキャンバスと同じようにペイントツールでドット絵が描ける。

#環境

前回から使用している環境に加えてmathライブラリを使用します。
mathは標準ライブラリのためインストールは不要です。
円周率(`math.pi`)を使用するだけなので、直接数値を入れるなどして代用する場合は不要です。

#解説
FFT機能の実装方法を解説します。

###キャンバスの準備

元記事を表示

【AtCoder】ABC213をPython3で解説(ABCD)

ABC213の解説。

https://atcoder.jp/contests/abc213

## A – Bitwise Exclusive Or
### 解説

`xor` は、排他的論理和を表す。
これについては、`^` を用いることで答えがでる。

### コード

“`python
a, b = map(int, input().split())

print(a ^ b)
“`

## B – Booby Prize
### 解説

下位から2番目の選手番号、つまり、スコアが2番目に大きい選手番号を答える問題。

`enumerate()`でスコアと選手番号をあわせてタプルにする。
その後、降順でソートし、リストの2番目の値を取ればAC。

### コード
“`python
n = int(input())
alist = map(int, input().split())
result = []

for i, v in enumerate(alist):
result.append((v, i+1))

ans = sorted(result, rev

元記事を表示

python リスト内包表記のメモ

## リスト内包表記の書き方
リスト内包表記とはリストの中にコードを書いてリストを作成する手法のことである。

“`square.py
square = [i ** 2 for i in range(10)]
# >> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
“`

リスト内包表記では、if文で分岐する記載も可能である。

“`even_square.py
even_square = [i ** 2 for i in range(1:10) if i % 2 == 0]
# >> [4, 16, 36, 64]
“`

if-else文での分岐処理も可能である。
ただしif文のみで作成する場合とは順番が異なることに注意が必要である。

“`odd_and_even_square.py
odd_and_even_square = [i ** 2 if i % 2 == 0 else i for i in range(1, 10)]
# >> [1, 4, 3, 16, 5, 36, 7, 64, 9]
“`

elifは使えない。しかし、if

元記事を表示

flaskを使ってRestAPIサーバを作ってみる

# 0. 始める前に

Webアプリケーションを作りシステム作りが初めてであってもどこからどこまで実施すれば動くシステムができるのかを開発して体験してみます。
前準備として次の記事を見てアプリケーションに必要なツールの導入をしてください。
* [Flask+MySQL on dockerを始める準備](https://qiita.com/kaorunix/items/dacb0122898c18ad6b57)
* [Flask+MySQL on docker](https://qiita.com/kaorunix/items/c04d250bda904e9f07f2)

FlaskはpythonのWebアプリ開発フレームワークです。Webサーバーを立ち上げてURLに応じた画面を表示したり、リクエストに対する処理をpythonで作り処理結果を返すことができます。

### 0.1. DBにテーブルを追加する

本記事はユーザーアカウントを想定したAccountというテーブルを使います。
異なるテーブルを使う場合、[Flask+MySQL on docker](https://qiita.

元記事を表示

flaskを使ってRestAPIサーバを作ってみる(検索編)

# 本記事は

[flaskを使ってRestAPIサーバを作ってみる](https://qiita.com/kaorunix/items/c5fb96124dcdf57c151f)の「検索」について記述しています。
ここまでの流れは[flaskを使ってRestAPIサーバを作ってみる](https://qiita.com/kaorunix/items/c5fb96124dcdf57c151f)を参照してください。

# 3. 検索

検索も考え方は作成とほぼ同じですが、検索に必要な項目はその時よって異なります。
全ての項目を受け取れるJSONを設計しますが、項目は任意とし、項目がなかったら検索条件に加えないことにします。
また、検索というのは与えられる項目について完全一致、部分一致、範囲検索などができるのが通常のシステムでしょう。今回は限定的に完全一致のみ実施することとします。
受信すべきリクエストは次の様になります。

###### createのリクエスト

“`json
{
“account_name”: “アカウント名”,
“start_on”: “2021-

元記事を表示

flaskを使ってRestAPIサーバを作ってみる(作成編)

# 本記事は

[flaskを使ってRestAPIサーバを作ってみる](https://qiita.com/kaorunix/items/c5fb96124dcdf57c151f)の「作成」について記述しています。
ここまでの流れは[flaskを使ってRestAPIサーバを作ってみる](https://qiita.com/kaorunix/items/c5fb96124dcdf57c151f)を参照してください。

# 2. 作成

[参照](https://qiita.com/kaorunix/items/05f47b937d83e2324c4d)の次に、Accountレコードを作るApiを考えましょう。
入力には作られるAccountオブジェクトで必須となる情報を受け取れる様にする必要があります。

Accountオブジェクトの場合、以下の様な情報で構成されています。

|項目名|カラム名|データ型|
|–|–|–|
|アカウントID|id|数値|
|アカウント名称|account_name|文字列|
|有効開始日|start_on|時間|
|有効終了日|end_on|時間|

元記事を表示

flaskを使ってRestAPIサーバを作ってみる(参照編)

# 本記事は

[flaskを使ってRestAPIサーバを作ってみる](https://qiita.com/kaorunix/items/c5fb96124dcdf57c151f)の「参照」について記述しています。
ここまでの流れは[flaskを使ってRestAPIサーバを作ってみる](https://qiita.com/kaorunix/items/c5fb96124dcdf57c151f)を参照してください。

# 1. 参照

### 1.1. モデル層・エンティティ

accountをaccount_idからレコードを抽出してAPIで返却するところまでを説明します。
importは省略するのでgithubのコードを参照してください。

まずモデル層の核になるAccountクラスです。

“`backend/src/model/Account.py
# model class
class Account(Base):
“””
accountモデル
flask_svシステムにログインするアカウントを管理するモデル

Parameters

元記事を表示

flaskを使ってRestAPIサーバを作ってみる(削除編)

# 本記事は

[flaskを使ってRestAPIサーバを作ってみる](https://qiita.com/kaorunix/items/c5fb96124dcdf57c151f)の「削除」について記述しています。
ここまでの流れは[flaskを使ってRestAPIサーバを作ってみる](https://qiita.com/kaorunix/items/c5fb96124dcdf57c151f)を参照してください。

# 5. 削除

削除のAPIは、アカウントIDだけわかれば良いのでGETメソッドで特定のURLにアクセスすることにしましょう。

`http://サーバーのIP/account/delete/アカウントID`

### 5.1. モデル層・エンティティ

コードの全文はこちらです。

“`backend/src/model/Account.py
def delete(account_id, operation_account_id):
Session = scoped_session(sessionmaker(bind=engine, autocommit=F

元記事を表示

pythonで、ファイル名の一部を一瞬で修正する。(間違ったファイル名を修正する!)

Pythonを業務で生かして、ラクをしようと言うプロジェクトを実行中です。

1.現状/問題点
月初に経理チームから送付されているpdfファイルなのですが、下記の様に「変」です。
”( ”が、全角になってたりします。(半角と全角がごっちゃになっております。)
これを、Pythonで修正したい。(こんなの簡単だろうと思ったのですが、結構、ハマったので、共有しますね!)

“`
C:\Users\user_xxx\Desktop\project>tree/F
フォルダー パスの一覧
ボリューム シリアル番号は 2E48-BBB4 です
C:.
│ rename_test.py
│ sample1.(1234).pdf
│ sample2(2345).pdf
│ sample3(4567).pdf
“`

ファイル名が「壊れている」と、御存じの様に色々な作業(例えば、Pythonのpywinzipモジュールを使って、pdfファイルを圧縮するとか)に支障が出ます。
従って、ファイル名を一瞬で修正します。

2.コード

“`py
import o

元記事を表示

ベイズ線形回帰で更に実践的に分析へ ~pyroによる実装例~

## はじめに
線形回帰は解釈性も高く、パラメータ推定も容易なので非常に協力な手法です。
また、一般化線形回帰へ拡張することで、より多様なデータにも適用することができるため、現在でも様々な場面で利用されています。
一方で、線形回帰を使っていると、以下の様な疑問に直面することはないでしょうか?
– **パラメータ(回帰係数)はどの程度、信頼できるのか?**
– **予測結果はどの程度信頼できるのか?**
– **より精度をあげるために追加データの取得を考えているが、どの範囲で追加取得するのがいいのか?**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76983/26fa9d57-a01a-fd34-5660-69d107074263.png)

線形回帰を行う主なモチベーションの一つに**パラメータ(回帰係数)の解釈**があるかと思います(予測精度だけを追及するならブラックボックスMLで良い)。
しかし、点推定だけの解釈は危険あり、**その背後にある分布も捉えることでより正しい理解**に

元記事を表示

RaRCTF writeup

# RaRCTF 2021 Writeup
今回は適当に出場してみましたがチーム数が1200弱ありすげーーーと気圧されてましたが
結果は 126位でほぼcryptoだけでこれたので満足です.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1810405/0853f4ad-50b5-b468-0a47-9d2fa5a29435.png)

## 解けた問題

* 解けた問題
* sRSA (100 points)
* unrandompad (150 points)
* Shamir’s Stingy Sharing (200 points)
* babycrypt (200 points)
* PsychECC (400 points)

##sRSA (100 points)
$e,n,ct$が与えられ$ct = flag*e \ \ mod(n)$
よって$ct*e^{-1} = flag*e*e^{-1} \ \ mod(n)$とでき

元記事を表示

M1 MacにPython3をインストールする

# はじめに
Apple M1チップ搭載のMac Book ProにPython3をインストールした時のメモです。
今回は[Miniforge](https://github.com/conda-forge/miniforge)を利用しました。

# やり方
[Miniforge](https://github.com/conda-forge/miniforge)とは最小限のCondaのインストーラーです。
さまざまはCPUアーキテクチャのサポートに重点を置いているので、新しいCPUアーキテクチャのPCにCondaを入れるときに最適です。
今回は直接ダウンロードする方法を紹介します。

## 1. Githubからダウンロードする。
[ここ](https://github.com/conda-forge/miniforge#download)からOS X arm64 (Apple Silicon)Miniforge3-MacOSX-arm64を選択してダウンロードします。

![image.png](https://qiita-image-store.s3.ap-northeast-1

元記事を表示

OTHERカテゴリの最新記事