Python関連のことを調べてみた2021年10月16日

Python関連のことを調べてみた2021年10月16日

再帰関数の処理される順番

Pythonでアルゴリズムの学習中に再帰関数を学んだが、「再帰関数でループしたらその下の行の処理いかないんじゃね?」みたいな感じで処理の順番があやふやなところが多いので、下の例を実装しながら理解を深めていく。

## 再帰関数とは
定義中の関数の中で、その関数(自分自身)が呼び出される関数のこと。「再帰呼び出し」とも呼ばれる。
繰り返し処理などで使われる。

## 実装
再帰関数totalでどのような値が出力されるか考える。

“`python:Python
def total(data):
if data <= 1: return data value = total(data - 1) return sum(value) def sum(value): return value + 3 print(total(3)) ``` まず、引数に`3`が入れられたtotal関数が呼び出される。ここで、引数`data`が`1`以下の場合は「1」が返されるが、現状は`3`なので無視。 次に、変数`value`が定義されているが、こ

元記事を表示

公式APIを使わずにTwitter Analytics(アナリティクス)の情報を取得する方法

# 概要

![スクリーンショット 2021-10-16 1.30.28_censored.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688854/cd67e1fb-c5d0-f448-5caf-246bbaa62d2f.jpeg)

先日、とある業務の一環において「Twitter Analyticsの情報(上記画像のような部分)を毎日記録しておいてくれ」といった感じの指令を受けました。

![スクリーンショット 2021-10-16 1.40.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688854/c0ac6498-3329-9e8a-a878-4a989eb2f54a.png)

一応、Twitter Analyticsのページ([https://analytics.twitter.com](https://analytics.twitter.com))では過去にさかのぼって各種データをCSV形式でエク

元記事を表示

ABC180 C – Cream puff から学んだ

https://atcoder.jp/contests/abc180/tasks/abc180_c

![abc180c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/166bf53e-6e0a-a057-b5a9-9e5959a36d15.png)
![abc180c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/5777b8d2-ec02-a670-30dd-78ea8e425319.png)
![abc180c_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/2b731773-ea2a-79ad-67bb-ae61e40148c7.png)
![abc180c_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.

元記事を表示

ABC179 C – A x B + C から学んだ

https://atcoder.jp/contests/abc179/tasks/abc179_c

![abc179c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/2d736667-6b0d-2d3d-5db4-ff238de6fbfe.png)
![abc179c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/221222ad-0a87-1a48-3c20-aef18f2c56c5.png)

悩んだが、何とか出来た。

“`abc179c.py
N = int(input())
cnt = 0
for b in range(1,10**6+1):
if (N-1)//b >= 1:
cnt += (N-1)//b
print(cnt)
“`

元記事を表示

【Python】日付をforで回したい (〇月〇日から△月△日まで〜)

## はじめに
**〇月〇日から△月△日まで〜** みたいなのをforで回したい時ありますよね。

そんな時に使えそうなライブラリを作ったので投稿します。

## ソースコード

名前は **`dt-range`** めっちゃ普通。

https://github.com/nanato12/dt-range

## 使い方

まずは普通に `pip` を使ってインストール

“`sh
$ pip install dt-range
“`

### 週単位で回したいとき: **weekrange**

“`python
from datetime import datetime

from dt_range import weekrange

START = datetime(2021, 1, 1)
END = datetime(2021, 1, 31)

for dt in weekrange(START, END):
print(dt)
# 2021-01-01 00:00:00
# 2021-01-08 00:00:00
# 2021-01-15 00:00:00
#

元記事を表示

コンピュータとオセロ対戦19 ~評価値の評価~

https://qiita.com/tt_and_tk/items/068f2afde6db637e189f

[前回](https://qiita.com/tt_and_tk/items/9928f1848112785563ce)

# 今回の目標
前回も書いた通り[17](https://qiita.com/tt_and_tk/items/9928f1848112785563ce)の評価値と、ついでに[15](https://qiita.com/tt_and_tk/items/04768c21d351897e82f4)で求めた評価値についてその有用性を検証します。
# ここから本編
具体的な検証方法は、求めた評価値に従って1handなど様々な手法の相手と戦い、その勝率を見ます。
srand関数の引数については、[18](https://qiita.com/tt_and_tk/items/ca0f0f2cc1be35f99241)で求めた最も勝敗に影響しない81~100を使います。
詳しくは後述。

## 評価値、整形
[15](https://qiita.com/tt_and_tk

元記事を表示

【Python】lambda関数の使い方

## はじめに
lambda関数(ラムダ式)、また無名関数と呼ばれています。
名前の通り、名前の無い関数です(笑)。
[前編](https://qiita.com/PuchiCorner/items/24da1162d591d943fcfb)と[前前編](https://qiita.com/PuchiCorner/items/d71033e903c27be874a7)の**leaky ReLU**と**ReLU**グラフを作成した時に、

“`python
list(map(lambda x: relu(x), X))
“`
このようなコードがあります。今回はそれについて話したいと思います。

## lambda関数
“`python
lambda parameter(s): expression
“`
– parameter(s): パラメーターが複数であれば、””**,**”” で区切りします。
– expression: 計算式です。

例:

“`python
tashisan = lambda x, y: x + y
print(tashisan(2, 4))

元記事を表示

ABC176 C – Step を解いた

https://atcoder.jp/contests/abc176/tasks/abc176_c

![abc176c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/16559bef-bbdc-ea8c-3bbe-beed753331b3.png)
![abc176c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/d133fe43-a6a6-4028-9e05-57e15764840b.png)
![abc176c_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/db923496-de6e-de9a-d3be-187d054e8e39.png)

“`abc176c.py
N = int(input())
lis = list(map(int,input().split()))
sc

元記事を表示

ABC170 C – Forbidden List を解いた

https://atcoder.jp/contests/abc170/tasks/abc170_c

![abc170c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/3b93ff42-568f-f6f6-a6f1-29431e2d771b.png)
![abc170c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/617b26a2-a790-616f-80b3-f1a0544edd16.png)
![abc170c_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/3bf837d8-35d9-715c-c6fc-d33aa9432086.png)

**正とは限らない** らしいので、
マイナスも入れて for 文を回してみた。

“`abc170c.py
X,N = map(int,

元記事を表示

ABC168 C – : (Colon) を解いた

https://atcoder.jp/contests/abc168/tasks/abc168_c

![abc168c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/eab32f65-1dd9-bce7-b3c7-f59f3bc4aef6.png)
![abc168c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/f26f05c5-9430-ee08-2505-f7d983c96f61.png)
![abc168c_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/12c75ec9-6fba-9cd4-6aa7-fac1af35e34b.png)

ポイントは時針も分単位で動く事でしょうか。

“`abc168c.py
from math import *

A,B,H,M = map

元記事を表示

ABC164 C – gacha を解いた

https://atcoder.jp/contests/abc164/tasks/abc164_c

![abc164c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/7a849153-a360-fef5-8379-b95555b1e162.png)
![abc164c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/ee8e7dc8-daf1-318f-9a2f-5981f3e762f6.png)
![abc164c_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/7426ab21-e041-31e4-e2ab-5258b35d1940.png)

set を使えば良いと思う。

“`abc164c.py
N = int(input())
lis = []
for _ in range

元記事を表示

ABC162 C – Sum of gcd of Tuples (Easy) を解いた

https://atcoder.jp/contests/abc162/tasks/abc162_c

![abc162c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/9905bae0-59da-d6f3-447c-01966e4d65a0.png)
![abc162c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/573002de-3fcc-3d35-c322-70f4ccd282cd.png)

“`abc162c.py
from math import gcd
K = int(input())

score = 0
for a in range(1,K+1):
for b in range(1,K+1):
for c in range(1,K+1):
score += gcd(gcd(a,b),c)
print(score)

元記事を表示

ABC161 C – Replacing Integer を解いた

https://atcoder.jp/contests/abc161/tasks/abc161_c

![abc161c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/034fd462-5db2-23f5-c626-705b7994f8eb.png)
![abc161c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/9324a006-74f9-efc5-9b0e-fa6049a9b78c.png)
![abc161c_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/1b725bd2-2a95-9440-ba7e-60b5e2dfc2ac.png)

条件にある 10^18 はさすがに for で
全部試すわけにはいかない。

“`abc161c.py
N,K = map(int,inp

元記事を表示

pybulletをインストールするときのエラーと対処法

pybulletをインストールする機会があり、その際のエラーの対処法をメモしておく。
#環境

– macOS Big Sur バージョン11.6
– Python 3.8

#やったこと

###pipでインストール

“`
pip install pybullet
“`
するとエラーと同時にこんな表記が

>You have not agreed to the Xcode license agreements, please run ‘sudo xcodebuild -license’ from within a Terminal window to review and agree to the Xcode license agreements.

どうやらターミナルから規約に同意してくださいということらしい。

###Xcode licenseに同意する

“`
User$ sudo xcodebuild -license
“`
すると
>You have not agreed to the Xcode license agreements. You must agre

元記事を表示

GluonCVでwebcam画像を物体検出,姿勢推定,セグメンテーション

GluonのCVモジュールが便利だったので,ノートPCのwebカメラの画像をCPUで処理してみた.

https://cv.gluon.ai/tutorials/index.html

# 環境設定

まずはanacondaを入れる.

“`bash
conda create –name gluon python=3.8
conda activate gluon
python -m pip install mxnet torch torchvision gluoncv
“`

# 物体検出

モデルはSSD.精度はまあまあ,速度はCPUでも3fps程度.

https://cv.gluon.ai/build/examples_detection/demo_webcam.html

“`python
import mxnet as mx
import time
import gluoncv as gcv
from gluoncv.utils import try_import_cv2

cv2 = try_import_cv2()

net = gcv.model_zo

元記事を表示

深層強化学習(Ape-X)を用いたシステムトレーディング

# はじめに

 近年、人工知能ブームにより、人工知能を使ったトレーディング手法が盛んである。そこで、今回は深層強化学習を用いたシステムトレーディングを実施した。
 まず、基本的な深層強化学習を用いたトレーディングモデルである。agentの行動として、 BUY、HOLD、SELLの三つの内一つを選択する。環境の戻り値として、状態(今現在保有しているポジションの価格、市場価格、手持ちのキャッシュ)、報酬(手持ちのキャッシュの変化値(含む益も含む))、終了(取引の終了か否か)、情報(ターミナルにディスプレイする情報)を返す。

![rl.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/731268/a6397f4a-72b8-dfa1-9206-2d2bfdd82851.png)

## 使用データについて

トレンド傾向の掴みやすさから、yahoo financeからGSPCの日足を使用した。

訓練データの期間:2015/1/1 – 2017/6/30
テストデータの期間:2017/7/1 – 2021

元記事を表示

Python、Flaskであっという間に画面表示!

##内容
今回はPythonのWebアプリケーションフレームワークのFlaskを使って画面を表示させるよーっていうところまで書きます!簡単な内容となっていますがよろしくお願いいたします!
※本記事ではソースコードのみの記載とさせていただき、環境の構築(Python、Flaskのインストールなど)に関しましては割愛させていただきます。

##環境
・Python 3.9.6
・Flask 1.1.2

##helloを表示
どこにでもあるhelloを表示させるです。

“`python:hello.py
from flask import Flask

app = Flask(__name__)

@app.route(‘/’)
def hello():
return “Hello World!”

if __name__ ==”__main__”:
app.run()
“`
###実行
サーバーを起動させる

“`terminal:ターミナル
python hello.py
“`
下記URLにアクセスしてみます。
http://localhost:5000/

元記事を表示

GPIB、PyVISAで完全自動測定

#きっかけ
測定器を制御して測定を自動化しようとしたのがきっかけです。
これを見ればどのようにPythonで測定を自動化できるか分かります。
もし再現したい場合はすべて読んでから行ってください。
#はじめに
[PyVISA](https://pyvisa.readthedocs.io/en/latest/)とはPythonで測定器を自動で制御できるようにするライブラリです。

どのように内部で制御されているかはNational Instruments社(NI)の[計測器制御に必要なソフトウェア(GPIB、Serial、VISA、USBなど)](https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019XKkSAM&l=ja-JP)を見るとわかりやすいです。
上記サイトの図に測定器制御ソフトウェア層が書かれています。
基本的に下位層から、ハードウェア層、ドライバ層、計測器ドライバ層、アプリケーション層に分かれています。

また図からわかりますが、今回、ハードウェアから通信を受けるプロトコルにはGPIBを用いるので、ドラ

元記事を表示

【Python】Githubリモートリモジトリ作成~仮想環境構築の一連の流れ

## 概要
今までGithubの簡単な使い方やPythonの仮想環境構築についてやってきました。
今回はまとめとして、プログラムを組める状態までの一連の環境作りをやっていきます。
これから課題1、課題2、、、と続いていきますが課題ごとにプロジェクトフォルダを作っていきましょう。

## Githubのリモートリポジトリ作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399745/834bffb5-a3dc-3a0f-cd5c-1a4c184e2e61.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399745/1d94b529-1075-d232-ff72-a07e0455ff44.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399745/b3edf0a8-5ee

元記事を表示

CIGALE をインストールする

この記事では CIGALE (Code Investigating GALaxy Emission) のインストール方法をまとめていきます.

# 環境
+ Windows 10
+ Python 3.7 (公式では Python 3.7 環境へのインストールが推奨されています.)

# 手順
### 1. CIGALE のバイナリデータをダウンロードする
[CIGALE の公式サイト](https://cigale.lam.fr/)からバイナリデータをダウンロードして解凍します.

### 2. setup.py を用いて build

“`sh
cd cigale-v~ # setup.py のあるディレクトリに移動
python setup.py build
python setup.py develop
“`

これでインストールが完了です.

# 関連記事

# 参考

元記事を表示

OTHERカテゴリの最新記事