Python3関連のことを調べてみた2022年03月06日

Python3関連のことを調べてみた2022年03月06日
目次

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 time

def 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を使っている人も多いと思います。
![スクリーンショット 2022-03-04 10.14.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/998564/d578497f-0fda-aea5-ce2d-11a550d609ae.png)

Jupyter Notebookを使っていて、うまくファイルを読み込めない時ありませんか?(やり方知らないだけですが・・w)
ドラッグアンドドロップで同じパスに入れられたらいいのに。。。と思い、Google Colaboratoryに変更しました。

2ヶ月ほどGoogle Colabで快適ライフを送っていたのですが、先日ある問題に直面してしまいました。。。!
![スクリーンショット 2022-03-04 10.23.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

【機械学習】最新論文の異常検知手法をMVTecデータセットの実験結果で比較してみた&各手法のPythonコードも紹介【異常検知】

現在、世界最先端の画像の異常検知手法の性能は、どのくらいなのでしょうか?
2021年度に国際会議に採択された論文の最新手法を調査してみました!(Pythonのプログラムコードも見つけたので、リンクを貼っておきます。)

論文の実験結果に記載されている[MVTecデータセット](https://www.mvtec.com/company/research/datasets/mvtec-ad)のAUC値で各手法を比較してみたいと思います。

**MVTecデータセットの画像例:**
![データセット画像例.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/3f5198a6-8ab6-9b0d-1a98-e389f52353dd.png)

# 手法の概要紹介
## [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経由でセル情報をやりとりするのはかなり重たくなってしまいます。

そこでリストのリスト(俗に言う多次元リスト)にして操作するということをよくしてます。

# 例

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217361/9c8d3ed7-2738-68f2-6921-a12c8ccc1947.png)

こんな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のようにすることが可能です。

![sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2521499/1bbd6d68-e490-c441-96ee-982226dd8d9c.png)
(文章は拙作[『誰が為の歴史改変』](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.

![スクリーンショット 2022-02-28 19.01.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/785665/988cf3d6-9e7e-e84c-5525-3e4122edcb33.png)

元記事を表示

OTHERカテゴリの最新記事