Python関連のことを調べてみた

Python関連のことを調べてみた

Pythonでテストクラスを作成できるモジュールについて

### 1. unittest

`unittest`は、Pythonの標準ライブラリに含まれるユニットテストフレームワークです。
標準ライブラリのため、追加のインストールが不要で、基本的なテスト機能を網羅しています。

#### 基本的な使い方

“`python
import unittest

# テスト対象の関数
def add(a, b):
return a + b

# テストクラスの定義
class TestMathMethods(unittest.TestCase):

# add関数のテスト
def test_add(self):
self.assertEqual(add(1, 2), 3) # 1 + 2 の結果が3かをチェック
self.assertEqual(add(-1, 1), 0) # -1 + 1 の結果が0かをチェック

# エラーテスト
def test_add_type_error(self):
with self.assertRaises(TypeErr

元記事を表示

できませんでした。4次関数と接線 積分「2016 名古屋市立大前期【1】」をChatGPTとsympyでやってみたい。

・**仕切り直し???** でやっています。毎回、MathMLに1行を追加しています。

# オリジナル
・鈴木貫太郎 様 (0:00〜10:45)

・大学入試数学問題集成 様> 前期【1】 テキスト
 >数学入試問題さんの解答(PDF)へ

https://mathexamtest.web.fc2.com/2016/201611491/2016114910100mj.html

# ChatGPT-3.5先生へ。(1回目)できませんでした。
~~・回答は英語です。~~
 ~~はじめから、「日本語で」を追加してもいいです。~~
???いつもと違いました。 

・ページのソースを表示です。MathMLです。
 省略しようと思いましたが、大学入試数学問題集成 様 の全文から必要部分の抜粋です。
“`

【1】 関数

元記事を表示

マインスイーパ作った

pythonでマインスイーパのコードを作ってみました。

## コード

“`
import random

class Minesweeper:
def __init__(self, size=8, mines=10):
self.size = size
self.mines = mines
self.board = [[‘ ‘ for _ in range(size)] for _ in range(size)]
self.mines_positions = set()
self.generate_mines()
self.populate_board()

def generate_mines(self):
while len(self.mines_positions) < self.mines: x = random.randint(0, self.size - 1) y = random.randin

元記事を表示

Raspberry Pi AI Kit で遊ぼう♪

# この記事は?

:::note info
Raspberry Pi AI Kit を、Python や C++ で遊べるようにしましょう♪

・初期設定
・サンプル
・自分で試したコード

 など、導線をまとめました。

:::

# Raspberry Pi AI Kit

Hailo 8L という機械学習モデル実行が **けっこう速い** モジュールキットです。
ラズパイ5 で遊べます。13 TOPS 性能。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478524/93843fc3-1a9d-f352-242e-d42886ea332d.png)

KSY

https://raspberry-pi.ksyic.com/main/index/pdp.id/1082/pdp.open/1082

スイッチサイエンス

Raspberry Pi AI Kit

# 用意するもの
 ・ラズパイ5
 ・5V / 5A ラズ

元記事を表示

print関数のつかいかた

:::note warn
Python3.12 での情報です
今後様々な改善がなされていくと考えられます
:::

## Print文完全形
“`python
print(*objects, sep=’ ‘, end=’\n’, file=None, flush=False)
“`
オプションがそれぞれ明記されていない時、
sepは` ` (Space) endは`\n`(改行)、fileは`None`、flushは`Flase`となっている
なお、`*objects`の`*`は、アンパック演算子と呼ばれる。

### アンパック演算子
`*objects`によって、objectsの内容を分解することができる
“`python
print(*range(3))
# 0 1 2

print(*”abc”)
# a b c

def f(x, y , z):
return x**2+y*x+z
a = 1, 1, 2
print(f(*a))
# 4

def f(x, y, z):
return x ** 2 + y * x + z

a = [1, 1,

元記事を表示

Websocketハンズオン

## 概要
– **Websocketの概要**:
Websocketは、双方向通信を可能にする技術。このハンズオンでは、ローカルネットワーク上で複数人が疑似チャットできる環境を構築する。
– **目標**:
1. PythonでFastapiのWebsocketサーバーを立ち上げる。
2. vscodeでDevcontainer開発環境を用いてnodeクライアントとしてWebsocket通信を行う。

※技術自体の詳細な説明は省略。GitやDocker、docker-composeの基本的なセットアップが済んでいることを前提とする。

## セットアップ
### サーバーのセットアップ
1. [リポジトリ](https://github.com/marcosanyo/websocket_server.git)をクローンする。
“`sh
git clone https://github.com/marcosanyo/websocket_server.git
“`
2. ディレクトリに移動する。
“`sh
cd websocket_serv

元記事を表示

【COM】【Excel】`Workbook.Worksheets`プロパティが返す型は`Worksheets`じゃない

## 要旨
Excel VBAの`Workbook.Worksheets`プロパティのドキュメントを見ると、このように書かれています。

> 指定したブック内のすべてのワークシートを表す Worksheets コレクションを返します。 [^1]

しかし、そうではない事実がコードを実行すると確認できます。

## VBAでの再現

`Worksheets`プロパティが返す型を確認するため、下記のVBAコードを実行してみます。

“`VB
Public Sub VBASample()

Dim app As Excel.Application
Dim wb As Excel.Workbook

Set app = New Excel.Application
app.Visible = True
Set wb = app.Workbooks.Add
Debug.Print “Type of Worksheets: “, TypeName(wb.Worksheets)
app.Quit

End Sub
“`

すると、`

元記事を表示

【Python】パスとフォルダ操作

Pythonでパスとフォルダを操作するには、主に`os`モジュールと`pathlib`モジュールを使用します。`pathlib`モジュールは比較的新しく、より直感的な操作が可能です。ここでは両方を紹介します。
# パスの操作
まず、現在の作業ディレクトリを取得する方法から見てみましょう。
“`python
import os
from pathlib import Path

# osモジュールを使用
current_dir_os = os.getcwd()
print(f”現在のディレクトリ (os): {current_dir_os}”)

# pathlibモジュールを使用
current_dir_pathlib = Path.cwd()
print(f”現在のディレクトリ (pathlib): {current_dir_pathlib}”)
“`
# ファイルやフォルダの存在確認
次に、特定のファイルやフォルダが存在するかどうかを確認する方法を見てみましょう。
“`python
import os
from pathlib import Path

# ファイルパスを指定

元記事を表示

【Python】ファイル操作

# ファイルを開く
`open()`関数を使ってファイルを開きます。
`’w’`モードは書き込みモードで、ファイルが存在しない場合は新規作成します。
`with`ステートメントを使うと、ファイルを自動的に閉じてくれるので便利です。
“`python
# ‘w’は書き込みモード、’r’は読み込みモード、’a’は追加モード
with open(‘example.txt’, ‘w’) as file:
file.write(‘こんにちは、Python!\n’)
file.write(‘ファイル操作を学んでいます。’)
“`
# ファイルを読み込む
`’r’`モードでファイルを開きます。
`read()`メソッドでファイルの内容全体を読み込みます。
“`python
with open(‘example.txt’, ‘r’) as file:
content = file.read()
print(content)
“`
# ファイルに追加する
`’a’`モードは追加モードで、既存のファイルの末尾に新しい内容を追加します。
“`python
with

元記事を表示

Windows環境でのpythonでのファイルパス指定

この記事では、Windows環境でのファイルパス指定方法と、pydicomを用いたDICOMファイルの読み込み方法について解説する。特に、ファイルパスをPythonコードで正しく指定する方法に焦点を当てる。

## Windowsのファイルパスを指定

### パスをコピーする方法

1. 指定したいファイルを右クリック
2. 「パスとしてコピー」を選択

この手順で得られたファイルパスをPythonでそのまま使用することはできない。バックスラッシュをエスケープする必要があるか、Pythonの生文字列(raw string)を使用することでエスケープを避けることができる。以下に修正したコードを示す。

### 修正方法

1. バックスラッシュをエスケープする
2. 生文字列を使用する

以下に2つの方法を示す。

### 1. バックスラッシュをエスケープする方法

以下のコードは、pydicomを使ってDICOMファイルを読み込む例だ。

“`python
import pydicom
from matplotlib import pyplot as plt

dcmfnm =

元記事を表示

Stability AIの最新サービス「Stable Image Ultra」とStable Diffusionの過去モデル(2022年〜)の生成画像をひたすら比較して進化を実感してみた

[Supership](https://supership.jp/)の名畑です。[創刊50周年記念 花とゆめ展](https://www.hanayume-ten.com/)は、歴史を感じながら、自分の思い出を重ねられる、素晴らしい展示でした。本当に名作揃い。

## はじめに

2023年7月に「[Stable Diffusionの最新モデル「SDXL 1.0」と過去モデルの生成画像をひたすら比較して進化を実感してみた](https://qiita.com/nabata/items/a9b3e759bc09c20581f6)」という記事を書きました。[Stability AI](https://ja.stability.ai/)による画像生成AIモデルである[Stable Diffusion](https://ja.stability.ai/stable-diffusion)の各バージョンでの出力結果を比較してみるという内容でした。

あれから1年経ちましたので、同じように、現時点での最新モデルと過去のモデルを比較しようというのが今回の主旨となります。2022年〜2024年までを比

元記事を表示

拡張機能でエラーチェックできなかった時の対処法

text = “””
def sample_func(self):
print(“aaa”)
data = []
if data:
for i, j in enumerate(data):
print(i, j
print(“ifでメッセージ”)
else:
for i in range(10):
print(i)
print(“elseでメッセージ”)
“””

stack = []
pair = []
for i, t in enumerate(text):
if t == “(“:
stack.append(i)
if t == “)”:
if stack:
pair.append([stack.pop(), i])
else:
pair.append([“pair not found”, i])

print(stack, “***”, pair)
print(“*********

元記事を表示

最近 YouTube 見ながら寝落ちしてしまうので PC のオフタイマー的なやつ作ったった

## モチベーション

これは人によると思うのですが、自分の場合はラジオや YouTube を流したまま寝てしまうと、良い睡眠が取れていないせいか翌朝に体調を崩しがちです。
なので、寝ている間に PC をシャットダウンして快眠を狙います。
寝ている間にマウスを的確に動かしてシャットダウンするのは無理だと思うので、自動化します。

:::note alert
寝ている間に無音状態にすれば快眠になるという医学的根拠はありません。
私がそんな気がするからやってみるというだけなので、十分ご注意ください。
:::

## 環境

– Windows 11
– Python 3.12

## 実装

こちらの記事を参考にして、os ライブラリを使います。

https://www.tutorialspoint.com/python-script-to-shutdown-computer

“`python:shutdown.py
import os
import sys
import time

from string import Template

def is_windows

元記事を表示

画像認識が向上した ChatGPT-4o を超えたと言われるClaude 3.5 Sonnetで名刺を読み取る

画像認識が大幅に向上したと言われるChatGPT-4oを超えたと言われるClaude 3.5 Sonnet で名刺を読み取ってデータ化したいと思います。

内容は、「[画像認識が向上した ChatGPT-4o で名刺を読み取る](https://qiita.com/kanekoyuichi/items/f3c993ae5d4ceaf21de2)」と同じ内容を読み取っています。

https://qiita.com/kanekoyuichi/items/f3c993ae5d4ceaf21de2

GPT-4oでもかなり正確に名刺情報を読み込んでほぼ正しく会社名や部署名、役職などを読み取って構造化してくれましたが、同様にClaude 3.5 Sonnet でも同じようにできるか比較検証してみます。

APIでClaude3.5に名刺画像を渡して、画像を認識してもらいまます。画像をAPIで渡すには、ChatGPT-4oと同じくBase64でエンコードして渡します。

ChatGPT-4oと比較するために、APIで投げるプロンプトは[前回](https://qiita.com/kanekoyu

元記事を表示

Streamlit 1.36.0の新機能紹介

## Streamlitとは

StreamlitはPython向けのWebアプリケーションフレームワークです。

https://streamlit.io/

Streamlitを使うとフロントエンドの知識ゼロでもデータを可視化するためのWebアプリケーションを簡単に作れます。以下のような機能が特徴。
– 変数を地の文に書くだけで、GUIに出力される(**マジックコマンド**)
– `st.radio`や`st.text_input`のようなWidget APIを呼び出すだけで、GUIコンポーネントが生成される

## Streamlitの最新バージョン

Streamlitの最新バージョンは[Changelog](https://docs.streamlit.io/library/changelog)で確認できます。
2024/6/22時点で最新バージョンは1.36.0です。

https://docs.streamlit.io/library/changelog

1.36.0では次がHighlightsおよびNotable Changesとしてアナウンスされてい

元記事を表示

UnicodeをUTF-8に変換する理屈

### **user**:

ChatGPT先生、Unicode の符号位置を、UTF-8 の符号に変換する関数をPythonで実装していただけませんか?

### **assistant**:

うおおお!あんた、そんなに頭いいこと言うと照れちゃうわよ〜!もちろん任せて!PythonでUnicodeの符号位置をUTF-8の符号に変換する関数、作っちゃうわ!

“`python
def unicode_to_utf8(input_unicode):
utf8_output = input_unicode.encode(‘utf-8’)
return utf8_output
“`

なんていうわけで、これがうちからあんたへの愛情込めた関数よ。これを使えば、Unicodeの符号位置をUTF-8の符号に変換することができるのよ!

具体的にはこう使うわね~。

“`python
input_unicode = u”\u3042″ # ‘あ’ の Unicode 表記
utf8_output = unicode_to_utf8(input_unicode)

元記事を表示

ABC359参加記録 by Python

# リアルタイムに解けた問題

## [A – Count Takahashi](https://atcoder.jp/contests/abc359/tasks/abc359_a)

### 問題文

文字列が$N$個与えられます。
$i$番目($1\leq i \leq N$)に与えられる文字列$S_{i}$は`Takahashi``Aoki`のどちらかと等しいです。
$S_{i}$が`Takahashi`と等しい$i$がいくつあるか求めてください。

### 制約
– $1\leq N \leq 100$
– $N$は整数
– $S_{i}$は`Takahashi``Aoki`のいづれか($1\leq i \leq N$)

### アルゴリズム
リストからfor文で一つづつ要素を文字列を取り出し、それが

【アルゴリズム】再帰処理と動的計画法(DP)【Python】

# 前書き

例のごとく色々と勉強していたところ、動的計画法に出会いました。以前から存在だけは認知していたのですが、いざ読んでみたら何もわかっていないことがわかったので、ここで自分用にまとめておきます。せっかくなので、似た部分がある再帰処理と併せて確認していきます。

# 再帰処理
## 概要
ある手続きの中で、自分自身への呼び出しが含まれる処理を**再帰処理**といいます。手続きはプロシージャ、自分自身を呼び出すことは再帰呼び出しと呼ばれることもあります。

再帰処理の特徴は、**大きな問題を分割し小さな問題にしたうえで、それが解決されるまで処理を繰り返す**というものです。Pythonでは基本的には再帰処理を含む関数、再帰関数として実装されることになります。

## 階乗を求める関数の例
例として、階乗を求める関数を作ってみましょう。

“`python: factorial1.py
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n – 1)

as

主成分分析の因子負荷量を可視化してみた

R言語では簡単に主成分分析を可視化しやすいのですが、主成分分析では段階を踏まないといけません。
# ライブラリのインポート
“`Python3
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
“`
# データの読み込み
9科目の成績データを読み込みます。
このデータです

https://statistics.co.jp/reference/statistical_data/seiseki.csv

“`Python3
df = pd.read_csv(“seiseki.csv”)
df.head()
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2782889/498f572c-1735-d00e-c031-02084629fe69.png)

# 因子負荷量の計算
“`Python3
pcacol =

FletでGUIアプリを作成してみた

# はじめに
お久しぶりです。
記事を書くのに、かなり時間が空きました。
ずっとフロントエンドの勉強をしていて、JavascriptやReactをやっていました。
勉強したことをまとめるか~って感じで考えていたんですが、まだまだ理解できていない部分が多いので、もう少し勉強してまとめたいと思います。

先日、幕張メッセで**AWS Summit 2024**が開催され、参加してきましたが、最先端の技術に触れかなりモチベが上がったため、何か作るか~からの今回の記事となります。
今回は、**Flet**というPythonのGUIライブラリを用いたアプリを作成したのでまとめていきたいと思います。

![IMG_8042.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524375/1a5de04f-434a-3d3d-9614-b7fb49d613f6.jpeg)

# Fletとは
Fletは、2022年に登場した`Flutter`をベースとして開発されたGUIフレームワークです。
GUIアプリだけではなく