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

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

【Python】命名規則と変数名

PEP 8(Python Enhancement Proposal 8)はPythonのコードスタイルガイドで、読みやすく一貫性のあるコードを書くための指針を提供しています。以下に、主要な命名規則と良い変数名の付け方を説明します。
# 変数名と関数名
変数名と関数名は、小文字のみを使用し、単語間はアンダースコア(_)で区切ります。これをスネークケースと呼びます。
“`python
# 良い例
user_name = “Alice”
total_count = 42
calculate_average = lambda x, y: (x + y) / 2

# 悪い例
UserName = “Bob” # クラス名のような大文字始まりは避ける
totalCount = 100 # キャメルケースは避ける
“`
# 定数
定数は全て大文字で、単語間はアンダースコアで区切ります。
“`python
MAX_CONNECTIONS = 1000
DEFAULT_TIMEOUT = 30
PI = 3.14159
“`
# クラス名
クラス名はキャメルケース(各単語の先頭を大文字)を

元記事を表示

PythonとTkinterで作るカンバン方式タスク管理アプリ

## はじめに

本記事では、PythonとTkinterを使用して、完全自由移動可能なカンバン方式のタスク管理アプリケーションを作成する方法を解説します。このアプリケーションは、シンプルながら柔軟性の高いタスク管理ツールとして機能し、プログラミング初心者からある程度経験のある方まで、幅広い読者に役立つ内容となっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/f5731699-94b3-02e9-39f1-e412ae5444b0.png)

## 要件

アプリケーションの主な要件は以下の通りです:

1. カンバン方式のタスク管理(ToDo, Doing, Done の3列)
2. タスクの追加、編集、削除機能
3. タスク間の自由な移動(任意の列間で双方向に移動可能)
4. タスクの色変更機能
5. シンプルで直感的なユーザーインターフェース

“`plantuml
@startuml
left to right direction
actor “ユー

元記事を表示

pytestを使ったPythonテストの基本

# pytestを使ったPythonテストの基本

## はじめに

Pythonは、多くの開発者に愛用されているプログラミング言語であり、そのエコシステムにはテストを効率的に行うための強力なライブラリが豊富に揃っています。その中でも特に人気が高いのが`pytest`です。本記事では、`pytest`の基本的な使い方やその利便性について解説します。

`pytest`はシンプルでありながら強力なテストフレームワークで、単体テストから複雑な機能テストまで幅広く対応しています。インストールも簡単で、初めてのテストを書き始めるまでに必要なステップも少ないため、初心者から経験豊富な開発者まで多くのユーザーに支持されています。また、豊富なプラグインや拡張性により、プロジェクトの規模やニーズに応じて柔軟に対応できるのも大きな魅力です。

## pytestのインストールと環境設定

まずは`pytest`をインストールしましょう。以下のコマンドを実行するだけで簡単にインストールできます。

“`bash
pip install pytest
“`

### 仮想環境の設定

推奨される開発環境

元記事を表示

初心者の初心者のためのpython環境構築(仮想環境構築・バージョン管理) - 知識編 –

## pyhonの環境管理
### はじめに
pythonを使い始めるとき、どう初めて良いか悩んだことはないでしょうか?
初め多くの方はローカルでpythonを動かすことでしょう。しかし、そんなとき
**「このプログラムではpythonのバージョンとして動かない…..。」**
**「pythonのライブラリを綺麗に管理したいなー」**
と色々悩みが出てきます。
私も初めは全てローカルで動かしていたことから、あれこっちのコードは動くのに、こっちは動かない、原因はpythonのバージョン?じゃあどうすればいいんだー?と悩みました。仮想環境?バージョン管理?なんだそれという方に是非読んでいただきたいです。
そんな方々に見ていただけると嬉しいです!
本記事は**知識編**になりますので、実装編を見たい場合は、次の記事をご参照ください!

## pythonの環境管理にはなにがあるの?(仮想環境構築・バージョン管理)
pythonの環境管理には大きく3つ種類があります。
– venv
– pyenv
– pyenv-virtualenv

## 各環境管理の概要とメリットデメリット
**1.

元記事を表示

Azure AI Speechサービスを使ってテキストから音声を生成する方法

## 1. はじめに

音声録音は、特に長いテキストやスクリプトの場合、非常に手間がかかる作業ですよね。
しかし、最近ではAI音声技術の進化により、手軽に高品質な音声を生成することが可能になりました。
今回は、AzureのAI Speechサービスを利用して、テキストから音声ファイルを生成する方法について詳しく解説します。
こちらにも詳しく掲載してますので、ぜひご参考ください♪
https://note.com/kii_genai/n/nd2cbf809e197

### 音声録音の手間とAI音声の利用のメリット

従来、ナレーションや音声ガイドを制作するには、声優やナレーターによる録音が必要でした。これには、録音スタジオの手配や長時間の録音作業、さらには編集作業が伴います。こうした作業は非常に時間とコストがかかり、特に個人や小規模プロジェクトでは負担が大きいです。

一方、AI音声を利用することで、テキストを入力するだけで自動的に音声を生成できるため、時間とコストを大幅に削減できます。また、最新のAI音声技術は非常に自然な発声を実現しており、まるで人が話しているかのような高品質な

元記事を表示

猫耳とdiffusersで始めるStable Diffusion入門

この記事は有名な画像生成AIである[Stable Diffusion](https://ja.wikipedia.org/wiki/Stable_Diffusion)の使い方を説明する入門です。

画像生成AIに興味を持ったけどどうやって始めるからわからない人にとっておすすめです。簡単についていけるようにまず簡単な最低限のコードから例を見せてからどんどん説明を追加していきます。

# はじめに

## きっかけ

私はずっと前から生成AIに興味を持って2018年の時にDCGANに挑戦したこともあって、ここで記事も書いたのです。

https://qiita.com/phyblas/items/bcab394e1387f15f66ee

DCGANを使ったら絵が描けない私でもある程度新しい絵が作れるようになって嬉しいことです。

しかしあの時のDCGANでは満足できそうな画像が作れなくて限界を感じてしまいました。実用レベルはまだまだでした。

当時はあれで精一杯だったのですが、技術の発達は本当に速いものです。あれから時間が経って2022年になって漸くStable Diffusionが現

元記事を表示

画像をASCIIアートに変換!10行で作る魔法のPythonコード

こんにちは、みなさん!今日は、たった10行のPythonコードで画像をASCIIアートに変換する魔法をご紹介します。タイトルに興味もたれたかたは、このコードで遊んでみるのもいいでしょう・・!😎

## はじめに

「プログラミングって難しそう…」と思っている方、お待たせしました!今回ご紹介するコードは、初心者の方でも簡単に理解できて、しかも超クールな結果が得られます。

## コード

まずは、お待ちかねのコードをご覧ください。

“`python
from PIL import Image

def image_to_ascii(image_path, width=50, chars=’ .:-=+*#%@’):
img = Image.open(image_path).convert(‘L’)
img = img.resize((width, int(img.height * width / img.width / 2)))
pixels = img.getdata()
return ”.join(chars[min(int(p / 25),

元記事を表示

Tkinterを用いたドラッグ&ドロップ機能の実装 – 基本から応用まで

## はじめに

こんにちは!今回は、PythonのGUIライブラリであるTkinterを使って、ドラッグ&ドロップ機能を実装する方法をご紹介します。基本的な実装から始めて、より実践的な応用例まで見ていきましょう。

## 1. 基本的な実装

まずは、単一のドラッグ可能な長方形を作成する基本的な実装から始めます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/edd44619-0686-5274-0dff-48f64ba9ba13.png)

“`python
import tkinter as tk

class DraggableRectangle:
def __init__(self, canvas, x, y, width, height, color):
self.canvas = canvas
self.item = canvas.create_rectangle(x, y, x+width, y+height,

元記事を表示

大津の2値化のプログラム

今回は前回記載した大津の2値化をPythonでプログラム作成します。

# Pythonでのプログラミング
“`python
import cv2
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib

# 画像を読み込む(ここでは適切なパスを指定してください)
image = cv2.imread(‘hoge.jpg’, cv2.IMREAD_GRAYSCALE)

# 大津の二値化を適用する
_, binary_image = cv2.threshold(image, 0, 255, cv2.THRESH_OTSU)

# ヒストグラムを計算
hist_original = cv2.calcHist([image], [0], None, [256], [0, 256])
hist_binary = cv2.calcHist([binary_image], [0], None, [256], [0, 256])

# ヒストグラムを表示
plt.figure(figsize=(

元記事を表示

Python初心者の備忘録 #15 ~機械学習入門編01~

# はじめに
今回私は最近はやりのchatGPTに興味を持ち、深層学習について学んでみたいと思い立ちました!
深層学習といえばPythonということなので、最終的にはPythonを使って深層学習ができるとこまでコツコツと学習していくことにしました。
ただ、勉強するだけではなく少しでもアウトプットをしようということで、備忘録として学習した内容をまとめていこうと思います。
この記事が少しでも誰かの糧になることを願っております!
**※投稿主の環境はWindowsなのでMacの方は多少違う部分が出てくると思いますが、ご了承ください。**
最初の記事:[Python初心者の備忘録 #01](https://qiita.com/Yushin-Tati/items/961dc47d6163f944f7e9)
前の記事:[Python初心者の備忘録 #14 ~統計学入門編04~](https://qiita.com/Yushin-Tati/items/8aeb2c190e3494dd6b78)
次の記事:まだ

本記事からは機械学習の入門的なことについてまとめていこうと思います。
今回は

元記事を表示

PsychoPyで線を描く / 色について

psychopy.visual.Line

https://psychopy.org/api/visual/line.html#psychopy.visual.line.Line

from psychopy import visual

myWin = visual.Window([400,300], monitor=”testMonitor”, units=”deg”)

line = visual.Line(
myWin,
start=(-0.5, -0.5),
end=(0.5, 0.5),
lineWidth=5,
lineColorSpace=’rgb255′,
lineColor=(0,255,0)
)

for i in range(300):
line.draw()
myWin.flip()

引数がいっぱいある。全部の引数を省略しても、デフォルト値で何かしらの線を書いてれる。引数の大

元記事を表示

train-images-idx3-ubyte.gz が403エラーでダウンロードできない件

## 問題点
OCRのトレーニングファイルを探していたら、以下のサイトへの誘導が多いのだが、ダウンロードリンクをクリックすると、403エラーになってしまい、ダウンロードが出来ない。

http://yann.lecun.com/exdb/mnist/

イメージ:

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249830/a11d5584-b7b5-e848-8604-3c69724972c7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249830/97f8dc20-8332-61c6-b3cf-8ab9620e8800.png)

## 解決策
Gitからダウンロードできました!
※要ログイン

https://github.com/golbin/TensorFlow-MNIST/tree/master/mnist/data

ファイル:
t10k-imag

元記事を表示

df sort 2 values

“`python
df = df.sort_values([‘a’, ‘b’], ascending=[True, False])
“`

元記事を表示

Pythonで指定した文字数のパスワードを生成するプログラムを作ってみた

### 前置き
以前random関数を使って、Password Generatorを作成した。今日はsecrets, 機密を扱うために安全な乱数を生成して、パスワードを作成するプログラムコードを紹介したい。
引用元:https://docs.python.org/ja/3/library/secrets.html#module-secrets

パスワードは一般的に英大小文字+数字+記号で10桁以上が安全だといわれています。
引用元:https://www.lrm.jp/security_magazine/secure_password/

まずは、記号、英文字、数字を含めた12文字のパスワードを生成してみる。
### プログラムコード
“` python
import secrets
import string

def generate_password(length=12):
alphabet = string.ascii_letters + string.digits + string.punctuation
secure_password = ”.join

元記事を表示

py2wasm+WasmerでPython製WebAssemblyを動かす

# py2wasm+WasmerでPython製WebAssemblyを動かす

## 概要

[py2wasm](https://github.com/wasmerio/py2wasm)によって、PythonコードをWebAssemblyへコンパイルできるようになりました。

本記事では、PythonコードをWebAssembly(wasm)モジュールに変換し、Wasmerを用いて実行する方法を解説します。

## お断り

サンプルコードは[こちら](https://github.com/maruzmaruz/py2wasm-sample)

私の本職は組み込みエンジニア。Pythonは嗜む程度、WebAssemblyどころかWebアプリも初心者です。
またQiitaは初投稿です。
至らぬ点があればコメントいただけると助かります。

記事の半分くらいはGoogle Geminiが書きました。

## py2wasmのインストール

“`bash
pip install py2wasm
“`

## Pythonコードの実装

サンプルとして、コマンド実行時引数、標準入力、ファイ

元記事を表示

pythonでDecimal型をintとfloatに変換する

# はじめに
DynamoDBに登録したデータをLambdaで取得して返却しようとしたときに
“Object of type ‘Decimal’ is not JSON serializable”とエラーが出てしまいました。
Dynamo側から取得したデータを見ると数値がDecimal型になっており、Decimal型はjson.dumpsできないみたいです。
今回は整数で表現できるものは整数、実数値は実数値に変換したかったのでそのように処理を追加しました。

# 本題
下記が対象のコードです。
対象のデータを一度整数に変換して変換前のデータと比較して一致した場合、つまり小数点以下が0の場合はint、違う場合はfloatに変換して返却するようにしました。

“`python:main.py
import json
import boto3
from decimal import Decimal

def lambda_handler(event, context):
try:
def decimal_transform(obj):
if

元記事を表示

Python_Googleアラート_240629

### ターミナルアプリ「Windows Terminal」v1.20.11781.0 ほか – ダイジェストニュース – 窓の杜
「Windows Terminal」v1.20.11781.0 など、6月28日のダイジェストニュースで14件のソフトウェア更新情報が掲載されました。Microsoftが開発するターミナルアプリ「Windows Terminal Preview」v1.21.1772.0、プログラミング言語「Python」v3.13.0 beta 3、macOS向けテキストエディター「Zed」v0.142.2-preなど、様々なソフトウェアの最新バージョンがリリースされています。
#### https://forest.watch.impress.co.jp/docs/digest/1604281.html

### JetBrains、ブラウザ拡張機能としても利用できるAIライティングサポートツール「Grazie」 | TECH+(テックプラス)
JetBrainsは、AIを活用したライティングサポートツール「Grazie」をリリースしました。ブラウザ拡張機能として

元記事を表示

Render.comにchromaDBと使ったプロダクトをデプロイするときにError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0と出る

## 背景
langchainとFastAPIを使ったアプリを作成し、Dockerでデプロイしようとしたときにエラーが出た。

## エラー本文
Render.comに作ったアプリをデプロイするとこんなエラーが出た。
“`
Error: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0
“`
どうやらChromadbにはsqlite3のバージョンが3.35.0以上のものが必要らしい。
調べてみるとRenderで使えるsqliteのバージョンは3.27.2らしい。
こりゃ古くてエラー出るわけだ。

## 解決策
sqliteのバージョンが古いならchromadbのバージョンを下げればいいじゃない。
ということで、sqliteのバージョンが3.27.2で使えるchromadbのバージョンを探す。
と、こんな質問板が海外にあった。
https://community.render.com/t/your-system-has-an-unsupported-version

元記事を表示

asyncio で JS の非同期と同じことをする

Python の [asyncio](https://docs.python.org/ja/3/library/asyncio.html) が分からないので、とりあえず JavaScript で簡単な非同期プログラムを作って、それと同じことを asyncio でやってみようと思いました。

# 前提知識

JavaScript の非同期処理 (async, await, Promise) は分かっている前提です。
まだ良く分かっていない方にはこちらの記事をお勧めします。ただしコールバックやアロー関数を理解していることが前提になります。

⇒ [【図解】1から学ぶ JavaScript の 非同期処理](https://qiita.com/ryosuketter/items/dd467f827c1b93a74d76)

Python については、関数の書き方が分かっていれば大丈夫です。

# 概要

以下の順番でプログラムを作ります。
各実装の JS 版と Python 版を見比べたい場合は 1->4, 2->5, 3->6 の順に読んでください。

1. [JS で非同期関数を

元記事を表示

Avroの中身をサクッと確認したい

[## Apache Avroとは

システム間でデータをやりとりすることを目的としてデータをシリアライズするフォーマットです。
以下のような特徴があります。

– ネストした構造を定義できるなど、スキーマの柔軟性が高いです
– バイナリでエンコーディングされます[^1]
– 行志向です
– 圧縮をサポートしています

[^1]: デバッグを目的としたJSONでのエンコーディングもサポートされているとのこと

Apache Icebergのメタデータの一部がAvroファイルで出力されるため、その内容をサクッと確認する方法を調べてみました。

## Apache Avroの仕様

Apache AvroのWebサイトで確認できます。

https://avro.apache.org/docs/

https://avro.apache.org/docs/1.11.1/specification/

## 方法1:Avroを表示するWebサービスを利用する

いくつか存在するようです。
ググって出てくるものだと、[TablepadのAvro Viewer](https:

元記事を表示

OTHERカテゴリの最新記事