- 1. Attack Survival
- 1.0.1. 【AtCoder解説】PythonでABC242のA,B,C,D,E問題を制する!
- 1.0.2. raspberryPIでopenCVをインストール
- 1.0.3. python基礎
- 1.0.4. Python windowsのcmd、powershellでctrl cでスレッド、プロセスが止まらない時の対処法
- 1.0.5. 40 代おっさんPythonを使って自分あてに指定したLINEを送る
- 1.0.6. kaggle内でnotebookを作る
- 1.0.7. 【機械学習】最新論文の異常検知手法をMVTecデータセットの実験結果で比較してみた&各手法のPythonコードも紹介【異常検知】
- 1.0.8. 【Python】opencvでWebカメラの起動に時間がかかる問題の対処
- 1.0.9. 40 代おっさんPythonでExcelのデータを活用してみる
- 1.0.10. OpenCVでレシート画像を切り抜き(改良の余地あり)
- 1.0.11. 40 代おっさんPythonでブラウザ操作してみる
- 1.0.12. xlwingsでシートを丸ごとリストのリストにする関数作ってみた
- 1.0.13. 超初心者がAtcoder ProblemsのC問題を134回から140回までをpythonで解いてみた【記憶喪失した時用】
- 2. Exception Handling
超初心者がAtcoder ProblemsのC問題を141回から150回までをpythonで解いてみた【記憶喪失した時用】
解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!
Attack Survival
https://atcoder.jp/contests/abc141/tasks/abc141_c
“`python:practice.py
n,k,q = map(int, input().split())
points = [k]*n
for i in range(q):
win = int(input())-1
points[win] += 1
for point in points:
if point-q > 0:
print(“Yes”)
else:
print(“No”)
“`最初に正解者のポイントに1を追加し、後から全ての参加者から問題数と同じ数を引けば、問題で指示されてい
【AtCoder解説】PythonでABC242のA,B,C,D,E問題を制する!
**ABC242**の**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**
raspberryPIでopenCVをインストール
前提条件
このページにたどり着く前にopenCVのインストールにチャレンジしていますか?`pi@raspberrypi:~ $ pip3 list` を実行した際に、
`opencv`を含む文字を見つけた方は、以下のコマンドから削除してください。“`delete.terminal
pi@raspberrypi:~ $ pip3 list
olefile 0.46
opencv-python 4.5.5.28 <-(1)opencvを含む文字列を下記コマンドに記入 opencv-contrib-python 4.5.16 <-(2)opencvを含む文字列を下記コマンドに記入 pantilthat 0.0.72 parso 0.8.1 (1)の場合。(2)の場合はopencvのあとに文字を追加してください。 pi@raspberrypi:~ $ sudo pip3 uninstall opencv-python ``` :::note info テキストエディタで「opencv」を検
python基礎
# print(文字を出力する方法)
“`csharp:php
print(‘Hellow World’);
“`
# #(コメント)“`csharp:php
#コメントアウト
“`
# 変数の定義
+ PHPのように、$などはいらない。
+ 変数名の付け方は、`user_name`のように、単語2文字以上のときは、アンダーバーで繋げる。“`csharp:php
name = ‘Naoki’;
name = 12;
“`
+ 変数の中の値を取り出すときは↓
+ クオテーションをつけると、文字列として認識されてしまうので、クオテーションはつけない。“`csharp:php
print(name); //Naoki
“`
# 変数の更新“`csharp:php
x = x + 10//x + = 10と同じ 、x % = 10など
“`
# 文字列の連結+ +記号は、文字列の連結もすることができる。
+ PHPの場合は、’Hello’.’World’→ドットで繋げていた。“`csharp:php
print(‘Hello’ + ‘World’
Python windowsのcmd、powershellでctrl cでスレッド、プロセスが止まらない時の対処法
# 結論
メインスレッド以外をデーモン化する
# スレッドのデーモン化とは
デーモンスレッドは他の非デーモンスレッドが終了と同時に強制的に終了するスレッドのこと
また、子スレッドは親スレッドのデーモンの値を継承する
つまり、デーモンスレッドによって開かれた子スレッドは引き続きデーモンスレッド# やり方
以下、極端な例。デーモンスレッド、非デーモンスレッドの順にスレッドを実行させればよい
“`python
import threading
from multiprocessing import Process
import timedef task(num: int):
while True:
time.sleep(1)
print(f’task{num}’)def main():
“””ctrl c を受け取るためのスレッド”””
while True:
try:
# スリープ入れないとcpuコアがフル稼働するので注意
time.slee
40 代おっさんPythonを使って自分あてに指定したLINEを送る
## 本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。## 参考資料
## 目標
LINE Notifyを使い、Webスクレイピングを行って、明日の天気予報を自分のLINEに送る。
## 環境
以前はCloud9を使用していましたが、今回はExcelのため変えることにしました
Windows 10
Jupyter Notebook
そのため構文に少し違いがあります。
気を付けてください## LINE Notify
LINE Notifyとは
LINEと外部のWebサービスやアプリを連携し、ユーザーがカスタマイズされた好みの情報を受け取ることができる機能### アクセストークン発行
自分が書くより説明がしっかりなされていたのでこちらを参照してください
<
kaggle内でnotebookを作る
どうも、AIRS-LabでKaggleをやっています。
データ分析コンペというとJupyter Notebookを使っている人も多いと思います。
Jupyter Notebookを使っていて、うまくファイルを読み込めない時ありませんか?(やり方知らないだけですが・・w)
ドラッグアンドドロップで同じパスに入れられたらいいのに。。。と思い、Google Colaboratoryに変更しました。2ヶ月ほどGoogle Colabで快適ライフを送っていたのですが、先日ある問題に直面してしまいました。。。!
論文の実験結果に記載されている[MVTecデータセット](https://www.mvtec.com/company/research/datasets/mvtec-ad)のAUC値で各手法を比較してみたいと思います。
**MVTecデータセットの画像例:**
# 手法の概要紹介
## [CutPaste](https://openaccess.thecvf.com/content/CVPR2021/html/Li_CutPaste_Self-Supervised_Learning_for_Anomaly_Det
【Python】opencvでWebカメラの起動に時間がかかる問題の対処
## はじめに
USB経由で接続されたWebカメラの起動に30秒~1分ほどかかっており、いらいらしたので対処法を探しておりました。しかし調べ方が未熟なせいもあって解決に時間がかかりました。capture = cv2.VideoCapture(1) ←具体的にはここがボトルネック。
## 対象者
この記事は下記のような人を対象にしています。
– 同じ悩みを持ち、ちょっとでも短時間でWebカメラを起動したいと思った人## 環境
– Windows10
– Python3.7## 結論
opencvのissueをたどってみると解決法がありました。
MSMFバックエンドの設定部分で問題が起きていたみたい。“`py
# cv2のインポート前にカメラに関する設定を行う
# https://github.com/opencv/opencv/issues/17687
import os
os.environ[“OPENCV_VIDEOIO_MSMF_ENABLE_HW_TRANSFORMS”] = “0”
import cv2
“`
## 検証
Webカメラの起動が本当に速くなっ
40 代おっさんPythonでExcelのデータを活用してみる
## 本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。## 参考資料
## 環境
以前はCloud9を使用していましたが
Windows 10
Jupyter Notebook
そのため構文に少し違いがあります。
気を付けてください## 目的
Excelのデータを活用してみる
## Excelのデータを活用してみる
pcr_tested_daily.csv(厚生労働省からダウンロードしました)
これを使ってデータを分析したいと思います。### pandasのインストール
pandasとは
データの統計量を表示したり、グラフ化するなど、データ分析(データサイエンス)や機械学習で必要となる作業を簡単に行うことができるようになります自分のはまだ入れていなか
OpenCVでレシート画像を切り抜き(改良の余地あり)
# 目的
– レシートと背景が写った写真からレシートをくりぬきたい
– OpenCVの理解
– なんか画像処理っぽいことしたい# 環境
– Windows11 Home
– VSCode
– Python3.9
– pip
opencv-python 4.5.5.62【追記20220305:パラメータなど調整しました】
– グレースケール化の方法を変更 cv2.cvtColor→cv2.decolor
– 二値化のパラメータ変更 cv2.THRESH_OTSUに変更
– cv2.findContoursの引数を変更 cv2.RETR_TREE→cv2.RETR_EXTERNAL(ご意見いただきました。ありがとうございます。中の余計な線が消えました。)# 本編
## 参考文献
ありがとうございます。お世話になりましたhttps://vigne-cla.com/14-3/
https://qiita.com/mix_dvd/items/5674f26af467098842f0
https://note.com/lydiacorp/n/n338940559a3c
##
40 代おっさんPythonでブラウザ操作してみる
## 本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。## 参考資料
## 環境
以前はCloud9を使用していましたが
Windows 10
Jupyter Notebook
そのため構文に少し違いがあります。
気を付けてください## 目的
Webページにアクセスして必要なファイルを取ってくる
そして自分の指定フォルダに移動する。## Webページを操作
### 必要なライブラリ
seleniumとは
Webブラウザで行うクリック操作やキーボード入力などをプログラム上から自動で操作できるようにしたライブラリ“`python
!pip install selenium
“`webdriver_managerとは
Webブラウザのバージョンに合わ
xlwingsでシートを丸ごとリストのリストにする関数作ってみた
PythonからExcelの自動操作をしたりExcelからPythonを呼び出したりしています。
VBAだとシートの情報を呼び出してもそこまで重いと感じることはありません。
xlwingsさんはとても優秀なのですが、VBAのように都度API経由でセル情報をやりとりするのはかなり重たくなってしまいます。そこでリストのリスト(俗に言う多次元リスト)にして操作するということをよくしてます。
# 例

こんなExcelシートがあったとします。
第1引数に該当シートオブジェクトをしていただくことでリストにする関数
列を基準にリストにした多次元リストになります。
“`python
all_col(sheet)
“`“`
[[‘A1’, ‘A2’, ‘A3’, ‘A4’],
[‘B1’, ‘B2’, ‘B3’, ‘B4’],
超初心者がAtcoder ProblemsのC問題を134回から140回までをpythonで解いてみた【記憶喪失した時用】
解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!
Exception Handling
https://atcoder.jp/contests/abc134/tasks/abc134_c
“`practice.py
n = int(input())
nums = [int(input()) for _ in range(n)]
new_nums = sorted(nums)
highest = new_nums[-1]
if len(new_nums) > 1:
second_highest = new_nums[-2]
for i in range(n):
if nums[i] == highest:
print(second_highest)
else:
print(highest)
“`最初にリストを昇順に並べ替えて、一番大きい値を取得します。次にもしリストの要素数が1より大きい場合は二番目に大きい
40 代おっさんPythonでExcel操作でほかのファイルにコピーしてみる
## 本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。## 参考資料
前回の続きになりますので気になる方はこちら
## 環境
以前はCloud9を使用していましたが、今回はExcelのため変えることにしました
Windows 10
Jupyter Notebook
そのため構文に少し違いがあります。
気を付けてください## 目的
Excelファイルをほかのファイルにすべて一気に転記できるようになりたいと思います。
一つづつの動作を確認しながらやっていきます。## 違うファイルに転記をする
### ファイル情報を取得
“`python
wb_ma
40 代おっさんPythonでExcel操作をしてみる
## 本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。## 参考資料
## 環境
以前はCloud9を使用していましたが、今回はExcelのため変えることにしました
Windows 10
Jupyter Notebook
そのため構文に少し違いがあります。
気を付けてください## Excel操作
### Excel操作するライブラリをインストール
“`python
!pip install openpyxl
“`普通はPandas使用するみたいですが、書式が固定されるため、今回はこちらを使用します。
### Excelファイルを読み込む
“`python
import openpyxl
wb = openpyxl.load_workbook(“出社
40 代おっさんPythonのことを軽く学ぶ
## 本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。## 参考資料
## ちょっとした良く使う関数
|関数|内容|
|—-|—-|
|print()|文字列や数値、変数に格納された値などを標準出力(sys.stdout)に表示する|
|int()|文字列,float型をint型に変換|
|str()|str 関数は引数に指定したオブジェクトを文字列にして取得します|format()
構文“`python
‘str1{}str2’.format(var)
“`## リスト
リスト:任意の型(整数、浮動小数点数、文字列など)のデータを格納できる。要素には順序があり、インデックスを用いて要素を指定できる。リストの要素は変更可能。他のプログラミング言
FlaskとVue.jsでSPA Webアプリ開発
### 参考記事
https://qiita.com/y-tsutsu/items/67f71fc8430a199a3efd
https://tech-market.org/vue-flask-cooperation/
https://rise-of-kantan.com/2021/07/06/91/
https://webjin.work/install-vue-js-on-ubuntu-16-04-at-npm/
https://xvideos.hatenablog.com/entry/ubuntu-vuejs-env-settings
https://noauto-nolife.com/post/startup-npm-install/
https://rise-of-kantan.com/2021/07/06/91/
https://qiita.com/watataku8911/items/26f2ce546fcd562e4b46
https://qiita.com/Toshiaki0315/items/1ab4e479007bb0f76f06
https:
ロジックサマナー ランクB「魔法陣」を解いた
# はじめに
先日に引き続き、ロジックサマナーのゲームを進めました。早く全部解けるぐらいになりたいです。
今回は、ランクCではなくランクBに挑戦しました。以前の「圧縮」よりは簡単に出来ました。よかったです。今回もまた、正答したソースコードを以下に載せてます。
# 問題の概要
[問題です。](https://paiza.jp/logic_summoner/challenges/logics_type_2002)
問題の概要と説明は、はてなブログでpaizaの倉内さんが説明してくださっているので、[そちらを参照してください。](https://paiza.hatenablog.com/entry/2020/06/30/%E5%88%9D%E5%BF%83%E8%80%85%E3%80%9C%E4%B8%AD%E7%B4%9A%E8%80%85%E5%90%91%E3%81%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%95%8F%E9%A1%8C%E3%81%AE%E8%A7%A3%E3%81
カクヨム記法のルビをWordのルビにするツールをリリースしたので色々書く
# 紹介
https://github.com/msattova/conv-ruby-on-docx
Wordでルビ振りするのが面倒くさいという人向けに、こういうのを作っています。
一言で言えば、docxファイル中にカクヨム記法で示されたルビを、Wordのルビに変換するやつです。
(傍点を振る記法にも対応する予定ですが、現状ではルビ振りにのみ対応しています。)
(「カクヨム記法ってなに?」という方は[こちら](https://kakuyomu.jp/help/entry/notation)を見てください)
このツールを使うと、下の画像のbeforeのところをafterのようにすることが可能です。

(文章は拙作[『誰が為の歴史改変』](https://note.com/msattova/n/n5981d867920d?magazi