- 1. Welcome to AtCoder
- 1.0.1. 競プロ初めましての方へ~Paiza,Pythonを例として
- 1.0.2. 【Python】pytest-mockでユニットテストをモック化する
- 1.0.3. [python3] [第二回]PythonでGUIアプリを作る
- 1.0.4. [python3] [第一回]PythonでGUIアプリを作る
- 1.0.5. [パーフェクトPython]Scrapyで詰まったところまとめ
- 1.0.6. sudoなしでUbuntuにPython3.7インストール
- 1.0.7. 遊戯王カードを分析してみたかった。
- 1.0.8. 【パーフェクトPython】イメージ(pypng) packageを使用できるまでの手順
- 1.0.9. Python: シリアルコード的なランダム文字列を発行する
- 1.0.10. 【パーフェクトPython】12章・asyncioの項目でエラーが警告への対処法
- 1.0.11. Python アノテーションとは?
- 1.0.12. 連番画像を動画にするためのプログラム
- 1.0.13. splitlines() 使用してみた
- 1.0.14. xlwingsでExcelのセルの書式設定の表示形式の分類を文字列に変更したい
- 1.0.15. python3 thread
- 1.0.16. OpenCVでレシート画像のロゴを探す(Template Matching)
- 1.0.17. 初心者がimport torchではまった件
- 1.0.18. Python 基本構文メモ
- 1.0.19. 【Pythonコード公開】留守でも安心!異常検知システムを自作してみた(後編)【機械学習】
超初心者がAtcoder ProblemsのC問題を151回から160回までをpythonで解いてみた
解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!
Welcome to AtCoder
https://atcoder.jp/contests/abc151/tasks/abc151_c
“`python:practice.py
n,m = map(int, input().split())
ac = [False]*n
wa = [0]*n
for i in range(m):
q, r = input().split()
q = int(q)
if r == “WA” and (not ac[q-1]):
wa[q-1] += 1
elif r == “AC”:
ac[q-1] = True
numAc = 0
numWa = 0
for i in range(n):
if ac[i]:
numAc += 1
numWa += wa[i]
print(nu
競プロ初めましての方へ~Paiza,Pythonを例として
# はじめに
この記事は、いわゆる競プロにこれから取り組もうと考えている方に向けた記事です。筆者自身、当初は特有の考え方に戸惑ったため、競プロに初めましての方がスムーズに学習を開始できることに役立てられると幸いです。また、読者のレベル感の想定は、ある言語(特にPython)の入門を一通り何かで学んだことがあり、for文やif文、配列、変数、データ型等の基礎を知っている方が対象です。# 競プロとは
そもそも競プロとは何らかの指定された問題を、計算機の力を利用したプログラミングで解こうとするものです。
・繰り返しや条件分岐などのアルゴリズム的な発想が鍛えられる
・配列などのデータ構造を活用する
・入力、処理、出力の仕様に合わせて実装するこれらの理解を深めることができます。いずれもプログラミングの根幹の考え方であり、非常に良い学びになると思います。日本で有名なサービスとしてはPaizaやAtcoderなどがあり、いずれもオンライン実行環境でゲーム感覚で楽しみながら取り組めます。また、良い成績を取れれば、就職活動で箔がつくことがありスムーズに選考に進める切符になります。さらに、エンジニ
【Python】pytest-mockでユニットテストをモック化する
## はじめに
ユニットテストでは処理に時間がかかったり、外部にアクセスする処理をモックで代替することがあります。 pytestでも “`pytest-mock“` というモジュールでユニットテストをモック化することができます。
## モックとは
オブジェクトの動作を再現するためのオブジェクトです。
例えばselect文の実行結果によって処理が分岐する場合、モックを使えばsqlを実行せずに結果だけを参照することができます。これにより、テストの準備・実行コストを下げる効果が期待されます。
## モックを利用すべき場面
1. テストの準備にコストがかかる
例:
– データinsertが必要な処理
– サーバ上のファイルを利用する処理
– 外部APIを呼び出す処理もちろん、データアクセスやファイル処理そのものを行うメソッドのテストは実際にDBやファイルを実行しなければなりません。しかしユニットテストにおいて、それらの処理の呼び出し元では改めて実処理を行う必要はありません。(DBアクセスやファイル処理の振る舞いは担保しているため)
モックで置き換えてよいでしょう。モッ
[python3] [第二回]PythonでGUIアプリを作る
[第一回]PythonでTkinterモジュールを使ってGUIアプリを作る!。
前回→https://qiita.com/ad2009/items/3bcd42ccf2b63978079b
“`md
環境
・Python3.10 64bit
・Windows11
“`
今回は、ウインドウのサイズ変更や、テキストの表示をやっていきます。
# ウインドウのサイズ変更
ウインドウのサイズを変更するには、第一回の[Tkinterの基本]に加えて、
“`python
tk.geometry(“横x縦”)
“`
今回は試しに、500x500にしてみました。

こうなると思います。
↓↓現在のプログラム全文↓↓
“`python
import sys
import tkin
[python3] [第一回]PythonでGUIアプリを作る
[第一回]PythonでTkinterモジュールを使ってGUIアプリを作る!。
“`md
環境
・Python3.10 64bit
・Windows11
“`
# Tkinterの基本
“`python
import sys
import tkintertk = tkinter.Tk()
#中身のコード
tk.mainloop()
“`
実行するとこんな感じです。

注意
絶対にファイル名を[tkinter.py]にしないでください。エラーで動かなくなります。
# ウインドウのタイトルを変更
さっきのコードの[#中身のコード]と書いてある部分に
“`python
tk.title(“title”)
“`
と書き足して
[パーフェクトPython]Scrapyで詰まったところまとめ
## 背景
パーフェクトPythonをやっていた時に、エラーが発生したところを忘備録も兼ねて、まとめていきます。
今回は、17章のScrapyです。## 環境情報
PC : Macbook Pro – Apple M1 – macOS Montery
環境 : pyenv 2.2.4
Python : 3.8.12## 内容
Scrapyを用いて、スクレイピングをしてみようというセクション。
本通りにすると、以下のエラーが発生した。“`
ModuleNotFoundError: No module named ‘_lzma’
“`lzmaモジュールがないよとのこと。
Google先生に確認したところ、以下の回答を得る。– brewを使って、xz libraryをダウロードする。
– pyenvにて、再度Pythonをインストールする【参考記事】
https://gist.github.com/iandanforth/f3ac42b0963bcbfdf56bb446e9f40a33pyenv内には、_lzmaが存在していないようである。
そのため、以下のコ
sudoなしでUbuntuにPython3.7インストール
管理者権限がない環境でPython3.7(+jupyter)をインストールするのに意外と苦労したので、自分用にメモを残しておきます.
OS: Ubuntu18.04LS
(メモ 2022.3.13 lzmaという標準ライブラリが入っていないのでこれも手動で入れるべきかもしれない)
# その1
$HOME/local/python/にインストールすると仮定しています.makeのjオプションはCPUのコア数に応じて変えると良いです.
“`terminal
wget http://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
tar -zxvf Python-3.7.0.tar.gz
cd Python-3.7.0
mkdir ~/local/python
./configure –prefix=$HOME/local/python –enable-optimizations
make -j 10
make altinstall
“`
これだと
ModuleNotFoundError: No module named ‘_ctype
遊戯王カードを分析してみたかった。
# データセット作成
## 取得元
データセットを公式サイトのデータから作成。
ブルーアイズの場合
https://www.db.yugioh-card.com/yugiohdb/card_search.action?ope=2&cid=4007## データセットの中身
cardid
カード名
ふりがな
CardName
属性
レベル
ペンデュラムスケール
ペンデュラム効果
種族
種類
攻撃力
守備力
効果
規制
最古リリース
最新リリース
収録回数
url中身としてはこんな感じ、
モンスターも魔法もトラップも、全て同じ表に入力した。固有のものはNaNが入力されている。
魔法カードの場合は、攻撃力とかがNanと表示。# カードの枚数確認
2022/3/10 時点のデータです。
## データ件数
“`python
len(d
【パーフェクトPython】イメージ(pypng) packageを使用できるまでの手順
## 背景
第18章のマルチメディアトピックにおいて、pypng packageの活用を紹介していますが、事前にインストールが必要な項目があるので、それを整理していく。
なお、Python3.5以上でないとpypngは利用できない。## 環境情報
PC : Macbook Pro – Apple M1 – macOS Montery
環境 : pyenv 2.2.4
Python : 3.8.12## 手順
以下の手順を踏んで必要なファイルを作成していく。“`
mkdir [フォルダ名]
cd [フォルダ名]
pip install pypng
# セットアップツールを作成するために、以下の2つのファイルを作成する。空ファイルでOK。ディレクトリは、同じところで問題ありません。touch pyproject.toml
touch setup.cfg# 以下のコマンドを実行して、build/UNKNOWN.egg-infoフォルダが作成される
pip install .# png.pyファイルを作成して、pngをimportできるようにする。
curl -LO
Python: シリアルコード的なランダム文字列を発行する
“`python
def make_serial_code(n: int = 16) -> str:
# I と O は 0,1と混同するので外す
randlst = [random.choice(“ABCDEFGHJKLMNPQRSTUVWXYZ0123456789”) for _ in range(n)]
return “”.join(randlst)print(make_serial_code())
# 4E0G4XZLMFFSEB44
“`
【パーフェクトPython】12章・asyncioの項目でエラーが警告への対処法
パーフェクトPythonの12章・asyncioの項目でエラーが警告が発生
### 基本情報
環境 : Python3.10
PC : MacBook Pro
Editor : Visual Studio Code### 警告内容
“`
DeprecationWarning: There is no current event loop
loop = asyncio.get_event_loop()
“`Python3.10では、get_event_loop()を呼ぶと警告を発生する模様。
get_event_loop()ではなく、get_running_loopが推奨されている。【参照】
– https://github.com/pytest-dev/pytest-asyncio/issues/212
– https://docs.python.org/3.10/library/asyncio-eventloop.html#asyncio.get_event_loopパーフェクトPythonは、Python Version3.8ベースで書かれているので、
Python アノテーションとは?
# 概要
1: アノテーションとは?
2: 使い方## 1: アノテーションとは?
アノテーションとは、関数の戻り値の型(Decimal, string, int など)が何で返ってくるか示した注釈のようなもの。
使用することで、コーディングした人がどの型を想定してコーディングしたかを読み手に示すことができる。※前提:pythonでは、型を指定することは不要
## 2: 使い方
* 通常の関数
“`
def function (arg1, arg2, ..) :
・・・・
“`* アノテーション使用した関数
“`
def function (arg1, arg2, ..) -> “戻り値の型名”:
・・・・
“`↓
例)
“`
def calc (number_1, number_2) -> int:
return number_1 + number_2
“`
連番画像を動画にするためのプログラム
# 連番画像を動画にするためのプログラム
自分のPCではシーケンサーからの出力をaviとして得るとなんかきもかったので,連番画像として出力したのち,いい感じのものだったら動画に変換した.
実行例は,“`
$ python3 conv.py d1 1800
“`自分の場合シーンごとにシーケンサと名前を変えていたのでこんな感じに
入力としてほしい画像の名前は,imgファイルにある`ren_d1.0001.jpg`….`ren_d1.1799.jpg`のような感じ
出力される動画は`movies_aft`フォルダ内に`ren_d1.mp4`のように保存される
お好みで変えてもらえればいいと思います“`
├ conv.py
├ img/
│ ├ ren_d1.0001.jpg
│ │ ・
│ │ ・
│ │ ・
│ └ ren_d1.1799.jpg
└ movies_aft/
└ ren_d1.mp4 →これが作られる
“`“`conv.py
import cv2
import numpy as np
import ti
splitlines() 使用してみた
# 概要
1: splitlines() とは?
2: 使い方※ 文字列の除去に関して使用する機会があったので、備忘録として記載
( 正規表現やスライスを使いこなせるようになると、もっと表現の幅が広がりそうなので少しづつ学んでいきたい。)# 検証環境
OS:18.04.5 LTS
Python:3.6.9## 1: splitlines() とは?
splitlines()は、文字列を改行コードで分割したい時に利用します。
splitlines()を使うことで改行コードで分割されリストに格納されて戻ってきます。## 2:splitlines() 使い方
* 文字列内に空白が入っていた場合、除去する。
“`python
# splitlines()を使用word = “リトルグリーンメン\nだっふぃ~\nドナルド\nミッキー”
word = word.splitlines()
print(word)# 結果
[‘リトルグリーンメン’, ‘だっふぃ~’, ‘ドナルド’, ‘ミッキー’]
“`
xlwingsでExcelのセルの書式設定の表示形式の分類を文字列に変更したい
PythonでExcelを操作もしくはExcelからPythonを呼び出すときにxlwingsさんを使っています。
https://www.xlwings.org/
xlwingsでセルの書式設定の分類を変更したい!ってなりました。
# 例
右クリックで出てくる
ここのこれです

よくあるのが住所データが入ったCSVをExcelにインポートした時に、番地だけが入っていると○月○日となってしまうやつです。
## 変数文字列展開
“`python
text = “ピザ”
print(f”今日は{text}を食べました”)
“`
“`:結果
今日はピザを食べました
“`## 基本のfor文
“`python
magics = [‘alice’, ‘mike’, ‘konbu’]
for magic in magics:
print(magic)
“`
“`:結果
alice
mike
konbu
“`
## for文のリストに関数
“`python
for value in range(1, 3):
print(value)
“`
“`:結果
1
2
“`
# for文での配列一括追加
“`python
squares = [value**2 for value in range(1, 11)]
【Pythonコード公開】留守でも安心!異常検知システムを自作してみた(後編)【機械学習】
この記事は、「留守でも安心!異常検知システムを自作してみた」の**後編**です。
留守中の侵入者を検知する異常検知システムを作っていきます。
**まだ前編を読んでない方は先に[前編](https://qiita.com/umapyoi/items/eba3842aeab19b62f3a6)をご覧ください。**https://qiita.com/umapyoi/items/eba3842aeab19b62f3a6
**作成した異常検知システムのGUI:**
# システム作成手順(後編)
後編では、異常検知モデルの作成とGUIアプリを作成します。## 異常検知モデルの作成
異常検知モデルの作成は、コーディング無しで簡単に異常検知モデルを作成できるプラットフォーム「[ADFI](https://adfi.jp/