- 1. Python学習#1
- 2. AWS S3に保存してあるファイルをPYTHONで直接読みこむ方法
- 3. PythonでAtCoderを解くときにちょっと得するメモ
- 4. [PySimpleGUI] ボタンが押されるたびにInputボックスを追加していく
- 5. 40代おっさん面会予約アプリを作ってみる
- 6. 初稿
- 7. cv2.imshow()で何も表示されずフリーズした
- 8. paizaラーニング「同値判定 Python3編」
- 9. paizaラーニング「足したり引いたり Python3編」
- 10. Paizaラーニング 「けた数の測定 Python3編」
- 11. 【Python】昔C言語で作ったゲームをPythonでリファクタリングしてみた
- 12. Python 入門 第1章 Pythonとは
- 13. 最近傍探索による測位座標の補正および取得
- 14. AtCoder Beginner Contest(ABC) 275 – Pythonでのバーチャル参加結果と内容整理
- 15. Python Language – format() built-in Floating Point Rounding(浮動小数点数の端数処理 – 丸め)
- 16. Pythonを管理者権限で実行するためのスクリプトを作成した。
- 17. CpawCTF Writeup Level 3 Q29.[Crypto] Common World (注意)
- 18. Prophetを使ってみた(異常検知)
- 19. 伝説のトレーダー集団が使った投資戦略を検証してみる
- 20. 【文字検出_備忘録】OpenCV X Python エッジ処理画像における物体検出
Python学習#1
Pythonで学んだことをアウトプットすることにしました。
まずは1日目。環境は
VS code
Python3.9.12
M1 Mac たまにWindows
だいたいこんな感じです…
学習は基本的にインターネット、書籍の独学です。
今日は辞書型、for分のzip,enumerate,tqdmについて学びました。
基本的なことですがしっかりと理解をしておきたいので復習です。
調べたり解説を見たりしているとまだまだ自分のものにないと実感、、、辞書から
“`
x = {‘apple’:120,’orange’:200,’painapple’:500}
apple_price = x[apple]
“`
辞書の値を取り出せる
“`
x = {‘apple’:120,’orange’:200,’painapple’:500}
x[apple] = 150
“`
keyのappleに対しての値の書き換え
“`
x = {‘apple’:120,’orange’:200,’painapple’:500}
y = {‘tomato’:170,’poteto’:190}
x.upda
AWS S3に保存してあるファイルをPYTHONで直接読みこむ方法
s3からファイルに書き込まない、ダウンロードしないで直接読み込んで何かする
# CSVの場合
– utf-8
– csv.readerを使う“`py
import csv
import ioimport boto3
s3_client = boto3.client(“s3″)
csv_s3_object = s3_client.get_object(Bucket=”bucket name”, Key=”key~csvのパス~”)
with io.TextIOWrapper(
io.BytesIO(csv_s3_object[“Body”].read()), encoding=”utf-8″
) as csv_file_io:
reader = csv.reader(csv_file_io, delimiter=”,”)
for record in reader:
print(record[0], record[1])
“`# jpgの場合
– Image.openする“`py
import os
from
PythonでAtCoderを解くときにちょっと得するメモ
# はじめに
これからPythonでAtCoderを始めてみよう!となったときに、知っておくとちょっと得する小技の紹介です。
少しPythonコードかけるかな. っていう方向けです。## その1(出力)
“`Python:sample.py
“””求める出力”””
1 2 3 4 5
#一般的
nums = [1, 2, 3, 4, 5]
str_nums = []
for num in nums:
str_nums.append(str(num))
print(” “.join(str_nums))
>>> 1 2 3 4 5
#楽な方法
nums = [1, 2, 3, 4, 5]
print(*nums)
>>> 1 2 3 4 5
“`
(一般的かどうかはさておき…)
AtCoderの出力でありがちな空白区切りの複数出力。Pythonにあるjoin関数を用いることで適切な出力になりますが、 **join関数はリストの要素が全てstr型(文字列型)でなければエラーになります。** そのため、もしも出力が数字である場合は、(面倒ですが)一度str型に変
[PySimpleGUI] ボタンが押されるたびにInputボックスを追加していく
# 概要
何かしらボタンが押されたときにInputボックスが追加されるようなインターフェイスが欲しかったが、
ネット上に情報がなかったので備忘録としてあげさせていただく
(下画像はヘタクソなイメージ図)
例えば先にInputボックスを10個用意しておいて非表示にしておく → ボタンが押されるたびに非表示を解除
みたいなコードも可だが、やっぱり上限値は設定したくないのでがんばった# 実行環境
・Windows10
・Python 3.11.0
・PySimpleGUI 4.60.4# サンプルコード
~~~python:Add_Input.py
import PySimpleGUI as sg
import sysnum = 1 #Inputボックスの数
g_value = {0 :””} #In
40代おっさん面会予約アプリを作ってみる
## 本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。## FastAPIでモデルを用意
“`python
import datetime # 日付
from fastapi import FastAPI
from pydantic import BaseModel, Fieldclass Booking(BaseModel):
booking_id: int # 予約ID
user_id: int # ユーザーID usersテーブルと紐づけ
room_id: int # 面会室ID roomsテーブルと紐づけ
booked_num: int # 予約人数 面会室の定員まで
start_datetime: datetime.datetime # 開始時刻
end_datetime: datetime.datetime # 終了時刻class User(BaseModel):
初稿
初投稿です。
これからPythonやC++についてアウトプットしていきたいと思います。
まずは手始めに挨拶を。“`python:qiita.py
print(“Hello World.”)
“`“`c++:qiita.cpp
#includeusing namespace std;
int main(int argc, char** argv) {
cout << "Hello World." << endl; return 0; } ``` よろしくお願いします。
cv2.imshow()で何も表示されずフリーズした
# 解決方法
opencvをpipで入れ直した
“`
pip install opencv-python
“`
Anacondaの仮想環境でpipを使うのはよろしくないが、とりあえず動いた
paizaラーニング「同値判定 Python3編」
#### 私の回答
“`
n=int(input())
ans=0a=list(map(int,input().split()))
b=list(map(int,input().split()))
for i in range(n):
if a[i]==b[i]:
ans+=1
print(ans)
“`#### 模範解答
“`
n = int(input())
a = [int(x) for x in input().split()]
b = [int(x) for x in input().split()]ans = 0
for i in range(n):
if a[i] == b[i]:
ans += 1print(ans)
“`– A_i == B_iである要素の個数を計算します。
– まずは 2 つの配列を用意し、入力を受け取ります。
– 次にループを用いて各要素が一緒かどうか比較し、一緒の場合は答え用の変数をカウントアップします。
paizaラーニング「足したり引いたり Python3編」
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step2
#### 私の回答
“`
n,a,b=map(int,input().split())
if (n+a+b==0) or (n+a-b==0) or (n-a+b==0) or (n-a-b==0):
print(“YES”)
else:
print(“NO”)
“`#### 模範解答
“`
n, a, b = [int(x) for x in input().split()]if n + a + b == 0:
print(“YES”)
elif n + a – b == 0:
print(“YES”)
elif n – a + b == 0:
print(“YES”)
elif n – a – b == 0:
print(“YES”)
else:
print(“NO”)
“`– 本問題は N ± A ± B が 0 になるか判定する問題です。
–
Paizaラーニング 「けた数の測定 Python3編」
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step1
けた数の測定なので、単純にlen関数を使えば良いのかと思ったので、以下のように回答しました。
しかし、条件分岐メニューの問題集だったので、模範解答は条件分岐が使われていました。#### 私の回答
“`
n=input()
print(len(n))
“`#### 模範回答
“`
n = int(input())if n <= 9: print(1) elif n <= 99: print(2) else: print(3) ``` - Nのけた数を出力します。 - Nの大きさで以下のように場合わけします。 1. Nが 9 以下の場合、答えは 1 です。 1. Nが 10 以上 99 以下の場合、答えは 2 です。 1. Nが 100 以上 999 以下の場合、答えは 3 です。
【Python】昔C言語で作ったゲームをPythonでリファクタリングしてみた
# この記事について
特に初心者にとってためになる記事ではないと思います。
ただ今後のために記録に残したいがために記事にしました。
読む価値がありそうなのはゲームがしたい人、初心者のコードのレビューをしたい人とかでしょうか。# ?始めに
昔自分で作ったゲームをPythonで書き直し、同時にリファクタリングもしてみましたー!!
?そのゲーム
https://qiita.com/scythercas/items/77d213b9f6ead9954dd6
あげた直後に[コメント](https://qiita.com/scythercas/items/77d213b9f6ead9954dd6#comment-9fde105241cf0dc75c86)にて @shiracamus さんが凄く綺麗に書き直してくださりました。
ここで初めて関数分割という概念を知り、見やすさとコードの簡潔さに感動した覚えがあります。
今回は成長出来ているか確かめるため参考にせずにやってみました(もちろん当時はめちゃくちゃ見ました)。
# ?ルール説明
丁寧に説明してるつもりですが、プレイしてい
Python 入門 第1章 Pythonとは
Python入門として、Pythonはどのようなプログラム言語なのか[**入門Pytnon3 第2版**](https://www.oreilly.co.jp/books/9784873119328/) – [**O’Raily Japan**](https://www.oreilly.co.jp/index.shtml)を基に解説を行う予定である。
先ほどの書籍をメインとして他の書籍やサイトなどを参考に行い、記事の最後に出典として掲載するので、詳しく勉強したい人は、**メインとなる書籍のリンクも付けとくので購入して勉強することをおすすめしたい。**
また、このPython入門では[**Anaconda**](https://www.anaconda.com/products/distribution)の**Jupyter NoteBook**を利用するため、あらかじめ準備した方がいいと思う。
また、容量が無い場合、[**Python**](https://www.python.org/downloads/)のみでも構わない。# 1.1 概要
Pythonは、
最近傍探索による測位座標の補正および取得
# Pythonで出発点と進む距離・方位から到達点の緯度経度を計算する方法
Pythonのpyprojライブラリを使用した。pypojは地球が楕円体であることを考慮して、地理的な位置情報を使った計算ができるライブラリです.
また,出発点と方位角・距離を与えて到達点の緯度経度を計算する方法がfwdメソッドを使えば簡単に求めることができる。fwdメソッドには引数として出発点の経度・緯度、方位角・距離を与えます。戻り値は到着点の経度・緯度・逆方位角(到着点から出発点を見た時の方位角)です。
また最近傍探索を用い座標の補正を行うにあたり緯度経度と平面直角座標の相互変換を実装した。
“`
import csv
import numpy as np
from numpy.linalg import norm
import pyprojgrs80 = pyproj.Geod(ellps=’GRS80′)
coordinate_path = “coordinate.csv”
azimuth_path = “azimuth.csv”
azimuth_data = []def write
AtCoder Beginner Contest(ABC) 275 – Pythonでのバーチャル参加結果と内容整理
# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 275
– 開催日時
– 2022/10/29(土) 21:00 – 22:40
– 実施区分
– バーチャル参加
– 2022/11/2(水)# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|9:42|24ms|
|B問題|AC|12:55|24ms|
|C問題|未提出|-|-|# 4. 解説
## 4-1. A問題
### 4-1-1. 問題文
> AtCoder村にはN本の橋があり、i本目(iは1以上N以下の整
Python Language – format() built-in Floating Point Rounding(浮動小数点数の端数処理 – 丸め)
Python では、他の多くの言語と同様に浮動小数点数における端数の丸めが行われます。
__15. Floating Point Arithmetic: Issues and Limitations__
https://docs.python.org/3.9/tutorial/floatingpoint.html__The Perils of Floating Point__
https://www.lahey.com/float.htmPython では IEEE 754 の `Round to nearest, ties to even(最近接丸め(偶数)= 偶数丸め(= 銀行家の丸め =Bankers’ Rounding ))` を採用しています。
__IEEE 754__
https://en.wikipedia.org/wiki/IEEE_754#Rounding_rules※ decimal 等で丸めの方法を変更することも可能です。
__Rounding modes__
https://docs.python.org/3/library/decimal.htm
Pythonを管理者権限で実行するためのスクリプトを作成した。
pythonを管理者権限で実行するにはショートカットを作成して、管理者権限で実行すればいい。
そのため、pythonのスクリプトのショートカットを作成するスクリプトを作成した。# 実行環境
* windows 10 home
* python 3.9
* pip 22.0.4# スクリプト
“`python3
pip install pywin32
pip install winshell
“`“`python3:make_shortcut.py
import os, sys, winshell
from win32com.client import Dispatchdef main():
if len(sys.argv) != 2:
return# スクリプトの存在確認をする
target_path = sys.argv[1]
if os.path.isfile(target_path) is False:
returnsave_path = target_path + ‘
CpawCTF Writeup Level 3 Q29.[Crypto] Common World (注意)
“`
Cpaw君は,以下の公開鍵を用いて暗号化された暗号文Cを受け取りました.しかしCpaw君は秘密鍵を忘れてしまいました.Cpaw君のために暗号文を解読してあげましょう.(e, N) = (11, 2369340497431162671379990822433726318097895674820839187178326428100973633055122934745680713690552962641998544386308203526343253572523992031600526606837454217101748263231924758704973191054184356468204948649877872869418172246590734972127684806183871524778784496030081870971485995342060553188076579024938501806950916465758789165317420769511105290047834282604567133150078121126324292962573135255062070
Prophetを使ってみた(異常検知)
今回はProphetを使った異常検知をやってみたいと思います。
予測検知の作業を実施した後をベースとしていますのでまだの方は、下記記事を先に見てもらえればと思います。https://qiita.com/nw-engineer/items/d167e9e193124bacfb96
https://qiita.com/nw-engineer/items/f09a0313f065dcc5276e
また、下記サイトを参考にさせていただきました。
https://www.kaggle.com/code/vinayjaju/anomaly-detection-using-facebook-s-prophet## 1. ライブラリインストール
まずは、追加で下記ライブラリをインストールします。
“`bash
conda install -c conda-forge altair
“`## 2. ライブラリインポート
では、必要となるライブラリをインポートしましょう。
“`python
import pandas as pd
import numpy as np
import
伝説のトレーダー集団が使った投資戦略を検証してみる
## 伝説のトレーダー集団「タートルズ」について
> ウォール街で伝説的トレーダー集団「タートルズ」―
彼らはプロの投資家による指導により、素人がトレーダーになれるかどうか?という実験の結果生まれたトレーダー集団でした。
> 【[タートルズ投資とは?そのルールと概要](https://www.ig.com/jp/trading-strategies/turtle-trading–what-is-it-and-what-are-the-rules–181207)より引用】要するにズブズブの素人を伝説のトレーダー集団に仕立てた、すごい投資戦略ということです。
(つまりこの戦略使えば誰でも大金持ちってコト….!?!?)今回はこのすごい投資戦略が本当に通用するのか検証したいと思います。
## どうやって検証するの?(バックテストとは?)
検証はバックテストを実施することで行います。
バックテストとは過去のデータを使って、その投資戦略がどの程度良いルールなのか(どのぐらい利益を出せるか)を検証することです。
この過程を行うことで、実際に売買する前にその買い方が本当に適切な
【文字検出_備忘録】OpenCV X Python エッジ処理画像における物体検出
続き
エッジ処理あとの画像で物体検出をしようと思う。待て待て焦るんじゃない。
たくさんネット記事が出てくるので、何となくできそうな気はするけど
ちょっとここで立ち止まって、画像をちゃんと確認したい。### エッジ処理後の画素値
早速画素値を見てみよう。
“`
y_num[0] x_num[0]:255
y_num[0] x_num[1]:255
y_num[0] x_num[2]:255
y_num[0] x_num[3]:255
…
y_num[186] x_num[116]:255
y_num[186] x_num[117]:0
y_num[186] x_num[118]:0
y_num[186] x_num[119]:0
y_num[186] x_num[120]:0
…
“`
ちゃんと、255か0になってますね。この255->0に落ちる点が特異点な気がするなー。
なんかそういうのできないかなーと思って。この2次元行列をX軸方向に一つずらして計算する方法を考えてみました。ちょっと文字では言いづらいので頑張って残しますね。
![元行列.png](https://q