- 1. Exception Handling
- 1.0.1. 40 代おっさんPythonでExcel操作でほかのファイルにコピーしてみる
- 1.0.2. 40 代おっさんPythonでExcel操作をしてみる
- 1.0.3. 40 代おっさんPythonのことを軽く学ぶ
- 1.0.4. FlaskとVue.jsでSPA Webアプリ開発
- 1.0.5. ロジックサマナー ランクB「魔法陣」を解いた
- 1.0.6. カクヨム記法のルビをWordのルビにするツールをリリースしたので色々書く
- 1.0.7. Pythonでいい感じに書く
- 1.0.8. 【Python】injectorでDIコンテナを実装する
- 1.0.9. Explanation of Evaluation index ‘MAP@5’ in Happywhale – Whale and Dolphin Identification Competition.
- 1.0.10. pipの厳格な依存関係チェックにハマってしまった時の解決方法備忘録メモ
- 1.0.11. Django パスワード試行回数ロックとランダムかつ有効期限付きURLでの本人確認による解除
- 1.0.12. タイムアウトがある場合にチェックすること。随時更新。
- 1.0.13. Python スレッドのフラグ管理をEnumとStateパターンでおこなう
- 1.0.14. 入茶、入緑記事(2022年2月27日)
- 1.0.15. PythonのParamiko経由でレガシーなサーバーにSSH接続できなかったけど解決した話
- 1.0.16. 【備忘録】Beautiful Soup 4の.stringの挙動を正しく理解していなかった話
- 1.0.17. 特定文字列を含む行のみを抽出しdf化/グラフ化
- 1.0.18. 備忘録 wslからusbカメラにアクセス
- 1.0.19. [python] kd木を使った最近傍探索
超初心者が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
Pythonでいい感じに書く
## 背景
最近、Pythonでソースコードを書くようになったのですが、
書き始めて半年ということでまだまだキレイな書き方、
効率的な書き方ができておりません。一緒に開発しているベテランエンジニアさんのソースコードを見て、
あぁ〜こういう風に書くのか〜、と勉強になったので
メモがてら記事にしてみます。## 通常のif文
通常は下記のように書きます。
“`
if a == ‘a’:
return True
else:
return False
“`
なんてことないif文ですが、単純なif、elseの場合は
あまりこういう風には書かないようです。## 1行にまとめたif文
上のif文は1行にまとめられます。
“`
return True if a == ‘a’ else return False
“`
要は三項演算子です。
ただ、JSやPHPなどの言語とは違って最初に(True)の時の処理が来て、
その後に条件式が来るんですよね。
これまでJS、PHPをメインで書いていたので、少し戸惑いましたw## 通常:for文でlistに追加
続いてはfo
【Python】injectorでDIコンテナを実装する
個人開発中、依存先が多いクラスをインスタンス化する場面がありました。
その時は依存先を全部インスタンス化→依存元をインスタンス化する時に引数で渡して実装しました。
1度だけなら問題になりませんが毎回この手順で実装する場合、実装の手間が増える上に可読性も下がります。 この問題を解消するためにDIコンテナを採用します。
DIコンテナをざっくりと説明すると、「インスタンス生成時に依存関係をいい感じに解決してくれる仕組み」です。
今回は “`injector“` モジュールを利用してPythonでDIコンテナを実現します。
### 環境
– Python3.8.10
– injector 0.19.0### injectorの採用理由
– 使用例を理解しやすかった
– 採用事例が多い(体感ですが)
– Pure Pythonだけで完結するため特定FWに依存しない
– 直近のコミットが2021年10月と比較的新しく、今後もメンテナンスが続くと見込まれるPythonのDI用ライブラリとしてinjectorの他には [python-injector](https://git
Explanation of Evaluation index ‘MAP@5’ in Happywhale – Whale and Dolphin Identification Competition.

pipの厳格な依存関係チェックにハマってしまった時の解決方法備忘録メモ
# 事の起こり
Tensor Flowのアップグレードを実行した時に以下のエラーが発生しました。
>ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
numba 0.55.1 requires numpy<1.22,>=1.18, but you have numpy 1.22.2 which is incompatible.詳細な実行ログ
“`bash
$ pip install -U tensorflow
Requirement already satisfied: tensorflow in /opt/conda/lib/python3.9/site-packages (2.6.2)
Collecting tDjango パスワード試行回数ロックとランダムかつ有効期限付きURLでの本人確認による解除
## 環境
Windows 11 Home
Python 3.10.2
Django 4.0.2
venv利用あり
(PyPI)
django-axes==5.31.0
条件:関連記事 第1回が完了していること## 関連記事
Django 第1回:[Django Custom User Model の作成](https://qiita.com/startours777/items/706d38e712b0c737a16a)
Django 第2回:[Django 初回ログイン時にパスワード変更を強制する](https://qiita.com/startours777/items/28db625a9bb81a36d4ad)
Django 第3回:[Django 一定期間パスワードを変更していないユーザにパスワード変更を強制する](https://qiita.com/startours777/items/d550ca9b67cea4408a44)
Django 第4回:[Django ランダムかつ有効期限のあるURLを生成し、上位者に承認してもらいアカウントを発行する](https://タイムアウトがある場合にチェックすること。随時更新。
学習サイトなどでのスキルチェック時に、アウトプットの正解率だけではなくて、処理時間まで見られている。
そのためタイムアウトになった際にどのような点を見直すべきか、どのようなアクションを取るべきかを箇条書きで記載していく。・条件分岐で無駄な条件が入っていないか。(特に配列を含む条件の場合)
・配列と辞書でのデータの持ち方。
・ロジック自体を見直す。
・in演算子を多発していないか。(特にlistでのin演算子)Python スレッドのフラグ管理をEnumとStateパターンでおこなう
# はじめに
今までスレッドの状態管理をBool値を使っていたし状態遷移を直接代入方式でやっていた。今回、開発中のアプリのコード数が増えてきたこともあり、また、ワンランク上のコーディングをしたいという欲もでてきたので挑戦してみた。# 以前のコード
“`python
class MainThread():
def __init__(self) -> None:
self.is_running_thread1 = True
self.is_running_thread2 = True
self.is_running_thread3 = Truedef task1(self):
# スレッド1の状態がRUNか否か
if self.is_running_thread1:
print(‘thread1 is running.’)
time.sleep(1)
# スレッド1シャットダウン
self.is_running_入茶、入緑記事(2022年2月27日)
# はじめに
ABC241にて入緑させていただきました。今まで多くの人の勉強法の記事に助けられて今の自分があると思うので、今度は自分が恩返しする番だと思い記事を投稿させていただきます。初投稿にて、見苦しい点もあるかと思いますが、ご容赦ください_(;ω;`」_)
# 自己紹介
2019年3月に国公立大学医学部卒業
2022年2月現在 医師として3年目
数学や物理などの自然科学分野は相当得意な学生時代だったと思います。センター試験も全教科合計94%程度だったので、世間の中ではいわゆる頭の良い方だったのだと思います。
#### プログラミングの知識は…
全くのゼロでした。そもそも、どんな言語が存在するのかすら知らない状態が2021年9月の段階です。今回は、そこから5ヶ月で入緑した過程などをお話できPythonのParamiko経由でレガシーなサーバーにSSH接続できなかったけど解決した話
PythonのParamikoを使って、以下のようなコードで接続しようと試みたところ。。。
“`:Python
import os
import paramikoconfig_file = os.path.join(os.getenv(‘HOME’), ‘.ssh/config’)
ssh_config = paramiko.SSHConfig()
ssh_config.parse(open(config_file, ‘r’))
config_file = ssh_config.lookup(‘レガシーなバージョンの接続先サーバー’)ssh_client = paramiko.SSHClient()
ssh_client.load_system_host_keys()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(
hostname=config_file[‘hostname’],
username=config_file[‘user’]【備忘録】Beautiful Soup 4の.stringの挙動を正しく理解していなかった話
# 要約
`.string`は挙動をしっかり把握して使わなくてはいけない。
子タグを残して文字列を取得したいときはBeautiful Soup 4を利用せずに`re.sub()`などを用いることを検討するべきかもしれない。
## 2022年2月27日追記
コメントで情報をいただきました`.contents`を利用すれば子タグを残して文字列が取得できるそうです。
公式ドキュメント(日本語訳版)へのリンク⇒http://kondou.com/BS4/#contents-children
# 環境
* python : 3.10.1
* BeautifulSoup4 : 4.10.0
* Windows11# 経緯
https://github.com/msattova/trpgLOG2md
先日、[こちらの記事](https://qiita.com/msattova/items/8120b23f2470667af359)で宣伝したこのプログラムに「`
`を含む``タグの内側の文字列がなぜかちゃんと出力されない」問題が見つかりました。問題のコ
特定文字列を含む行のみを抽出しdf化/グラフ化
実験で得られるログデータについて、必要箇所のみを抽出し、グラフ化するまでを備忘録としてまとめる。
“`
import pandas as pd
import japanize_matplotlib #日本語文字化け回避path = ‘log.txt’
#テキストファイルの中身をリストとして取得
#ファイルを開き、readlines()で各行を要素とするリストを取得する
with open(path) as f:
lines = f.readlines()
#readlines()で取得できるリストは行末の改行文字\nを含んでいる。除去したい場合はリスト内包表記で各要素(各行)にstrip()メソッドを適用する。
lines_strip = [line.strip() for line in lines]
print(lines_strip)
#各行がリスト形式で表示される#各行を要素とするリストからリスト内包表記で条件を満たす行のみを抽出
#今回はTempを含む行を抽出
Temp = [line for line in lines_strip if ‘Temp’備忘録 wslからusbカメラにアクセス
## 環境構築
### wslカーネルのビルド
– 下記の通り
– [GitHub, PINTO0309, wsl2_linux_kernel_usbcam_enable_conf, https://github.com/PINTO0309/wsl2_linux_kernel_usbcam_enable_conf#2-usage](https://github.com/PINTO0309/wsl2_linux_kernel_usbcam_enable_conf#2-usage)## 実行(Powershell ⇒ wsl)
### PowerShell(管理者)
– 下記のコマンドで使用したいカメラの番号を取得(例:1-4)
“`bash
$ usbipd wsl list
“`
– 有効化
“`bash
$ usbipd wsl attach –busid 1-4
“`
– 無効化
“`bash
$ usbipd wsl detach –busid 1-4
“`
### wsl– usbカメラのデバイスファイルのパーミッションを変更
“`bash
$[python] kd木を使った最近傍探索
# 説明
k-最近傍法(k-NN)アルゴリズムの勉強をしている時に、最近傍点を探すのにすべての点に対して計算していく(線形探索と呼ばれる)ととても効率が悪いということを聞いた。
効率よく探索する方法の一つにkd木というデータ構造をつかうものがあるらしいので、それを自分で実装してみた。
そして実際どの程度はやいのか、線形探索とkd木、そしてsklearnのNearestNeighborsを比較した。参考:Kd-treeと最近傍探索 https://hope.c.fun.ac.jp/mod/resource/view.php?id=15284
# 実行環境
* Intel(R) Core(TM) i7-8700 6コア12スレッド
* メモリ16GB
* windows10 64bit
* 仮想8コア、物理4コア
* Python 3.8.11
* ANACONDA
* JupyterLab 3.1.7# コード
## モジュール
“`python:modules
import numpy as np
import matplotlib.pyplot as plt
impo関連する記事
OTHERカテゴリの最新記事
-
- 2023.09.22
今さら聞けないHTML 2023年09月22日
-
- 2023.09.22
オープンソース調べOSS 2023年09月22日
-
- 2023.09.22
WEBエンジニアが読んでおきたい技術書 2023年09月22日
-
- 2023.09.22
iOS関連のことを調べてみた2023年09月22日
-
- 2023.09.22
Python関連のことを調べてみた2023年09月22日
-
- 2023.09.22
Ruby関連のことを調べてみた2023年09月22日