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

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

超初心者が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にしてみました。
![スクリーンショット 2022-03-12 195705.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2581102/6bdf8e17-ce5d-84d7-f528-f8c6c54bcd68.png)
こうなると思います。
↓↓現在のプログラム全文↓↓
“`python
import sys
import tkin

元記事を表示

[python3] [第一回]PythonでGUIアプリを作る

[第一回]PythonでTkinterモジュールを使ってGUIアプリを作る!。
“`md
環境
・Python3.10 64bit
・Windows11
“`
# Tkinterの基本
“`python
import sys
import tkinter

tk = tkinter.Tk()
#中身のコード
tk.mainloop()
“`
実行するとこんな感じです。
![スクリーンショット 2022-03-06 193749.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2581102/e1f1633d-e747-76f0-344d-9ca7db3ee4d3.png)

注意
絶対にファイル名を[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/f3ac42b0963bcbfdf56bb446e9f40a33

pyenv内には、_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

中身としてはこんな感じ、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610285/b2c80155-c4a6-6846-4fda-d67354027a26.png)

モンスターも魔法もトラップも、全て同じ表に入力した。固有のものは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でセルの書式設定の分類を変更したい!ってなりました。

# 例

右クリックで出てくる
![2022-03-09_13h06_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217361/95b83352-86d4-35c2-7751-5de56df7b1ad.png)

ここのこれです

![2022-03-09_13h07_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217361/49c19836-270c-8783-c50d-02fe9c465cd8.png)

よくあるのが住所データが入ったCSVをExcelにインポートした時に、番地だけが入っていると○月○日となってしまうやつです。

![2022-03-09

元記事を表示

python3 thread

“`python
import time
import threading

def proc():
for i in range(0,5):
time.sleep(1)
print(“count”, i)

if __name__ == ‘__main__’:
th1 = threading.Thread(target=proc)
th2 = threading.Thread(target=proc)
th1.start()
th2.start()
“`

https://corgi-lab.com/programming/python/python3-multi-thread/

元記事を表示

OpenCVでレシート画像のロゴを探す(Template Matching)

# 目的
– ファミマのレシートを探したい
– OpenCVの理解
– なんか画像処理っぽいことしたい

OpenCVにTemplate Matching機能があると聞き、どんなもんだろうと思いお試ししてみました

# 環境
– Windows11 Home
– VSCode
– Python3.9
– pip
opencv-python 4.5.5.62
numpy 1.22.1

# 本編
## 参考文献
ありがとうございます。お世話になりました

https://dev.classmethod.jp/articles/search-images-in-an-image-with-opencv-python/

https://pystyle.info/opencv-template-matching/

https://www.mathpython.com/ja/opencv-image-size/

## プログラム
### 元の画像
いろいろなレシートを混ぜて取りました。
大きさの違うロゴを左上に貼り付けて、これも探せるといいな。

![20220308_

元記事を表示

初心者がimport torchではまった件

# 機械学習プログラミング初心者がPyTorchのインポートではまった。
pip install torch

を実行して

import torch

のコードを実行すると

NameError: name ‘_C’ is not defined

というエラーが出た。
調べてみるとCythonのインストールが必要らしい。

pip install Cython

をターミナルで実行した後もう一度コードを実行してみると。

いけた。

【参照】
https://github.com/pytorch/pytorch/issues/1633

元記事を表示

Python 基本構文メモ

忘れそうな構文を記載します。
## 参照サイト
[タプルとリストの違い、タプルの使いどころ](https://www.lifewithpython.com/2017/12/python-tuple-list-difference.html)

## 変数文字列展開
“`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)]
print

元記事を表示

【Pythonコード公開】留守でも安心!異常検知システムを自作してみた(後編)【機械学習】

この記事は、「留守でも安心!異常検知システムを自作してみた」の**後編**です。
留守中の侵入者を検知する異常検知システムを作っていきます。
**まだ前編を読んでない方は先に[前編](https://qiita.com/umapyoi/items/eba3842aeab19b62f3a6)をご覧ください。**

https://qiita.com/umapyoi/items/eba3842aeab19b62f3a6

**作成した異常検知システムのGUI:**
![Umapyoi異常検知アプリイメージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/bc7be765-2174-48b2-7ced-495737ab3f7e.png)

# システム作成手順(後編)
後編では、異常検知モデルの作成とGUIアプリを作成します。

## 異常検知モデルの作成
異常検知モデルの作成は、コーディング無しで簡単に異常検知モデルを作成できるプラットフォーム「[ADFI](https://adfi.jp/

元記事を表示

OTHERカテゴリの最新記事