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

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

スタックとキュー(LIFOとFIFO)【Algorithm-Data構造入門Ⅲ】

# LIFOとFIFOとは
## LIFO
**LIFO**(Last In, First Out)は、最後に追加された要素が最初に取り出されるデータ構造です。これは、例えば本棚に本を積み重ねるようなイメージです。新しい本を最後に追加し、必要なときには一番上の本から取り出します。

## FIFO
**FIFO**(First In, First Out)は、最初に追加された要素が最初に取り出されるデータ構造です。これは、例えば列に並ぶ人々や食料品のレジの待ち行列などのイメージです。最初に並んだ人や商品が最初に処理されるという原則です。

# スタックとキュー
## スタック
### スタックとは
スタックは、**LIFO**のデータ構造であり、新しい要素がスタックの一番上に追加され、最も新しい要素が最初に取り出されます。

### 自作関数を使用した例
“`python
class Stack:
def __init__(self):
self.items = []

# タックの先頭に要素を追加
def push(self, item):
self.items.a

元記事を表示

配列と連結リスト【Algorithm-Data構造入門Ⅱ】

## 配列
配列はデータを連続的に格納するデータ構造であり、インデックスを使用して要素にアクセスします。配列は任意の位置へのデータの読み書きが定数時間で行えますが、要素の追加や削除には全体の要素のシフトが必要であり、これによりO(n)の時間がかかります。

### Pythonでの配列操作例
“`python
# 配列の作成
arr = [1, 2, 3, 4, 5]

# 要素の追加
arr.append(6)

# 先頭に要素を追加(O(n)の時間がかかる)
arr.insert(0, 0)

# 先頭の要素を削除(O(n)の時間がかかる)
arr.pop(0)
“`

配列の操作メソッドについて詳しくはこちらをご覧下さい。

https://qiita.com/jay_42tokyo/items/56e01f01b39229bc5d5c

## 連結リスト
連結リストは、データとポインタを持つノードが連結しているデータ構造です。連結リストでは要素の追加や削除がO(1)の時間で行えますが、要素の探索にはポインタをたどる必要があり、これによりO(n)の時間がかかります。また、連結

元記事を表示

それ,numpy で書かない?–8–

## それ,numpy で書かない?–8–

ChatGPT 3.5 に書いてもらったプログラムが,リストおよびリスト内包表記を使うものだったので,書き換えをお願いした。

User
以下の julia プログラムをリファインしてください。
1. 実引数,仮引数には list ではなく,Numpy ndarray を使う。
1. 当然,関数内でも list および リスト内包表記は使わない。
1. ムダに長い変数名を使わない。10文字以内。

“`Python
def cross_product(v1, v2):
“””
Calculate the cross product of two vectors.
“””
x = v1[1] * v2[2] – v1[2] * v2[1]
y = v1[2] * v2[0] – v1[0] * v2[2]
z = v1[0] * v2[1] – v1[1] * v2[0]
return [x, y, z]

def line_plane_intersection(line_po

元記事を表示

Pythonの基本⑥【タプル型のメソッド】

# タプルとは

Pythonのタプル(tuple)型は、複数の要素を順序付きで格納するためのデータ構造です。

タプルはリストとは異なり、**イミュータブル**(変更不可)な性質を持ちます。すなわち、**要素の追加や削除はできません**。

この記事では、Pythonにおけるよく使われるタプル型の操作メソッドについて紹介します。

## メソッド一覧
一覧とは言え、基本的に使用するメソッドは2つだけです。

`count()`: 指定した値と一致する要素の数を返します。
“`python
my_tuple = (1, 2, 2, 3, 3, 3)
count = my_tuple.count(3)
print(count) # Output: 3
“`

`index()`: 指定した値の最初の出現位置のインデックスを返します。
“`python
my_tuple = (1, 2, 3, 4, 5)
index = my_tuple.index(3)
print(index) # Output: 2
“`

## タプル型の使い道
1. データの保持
タプルはイミュータブ

元記事を表示

VOICEVOX API (エンジン)にHTTPリクエストをするための手引書

## はじめに

VOICEVOXを使った音声合成を、エディターを使わずにHTTPリクエストを用いて行うための手引書です。
以下の章立てで解説をしていきます。

1. VOICEVOXのHTTPサーバー機能について
2. サーバーに投げるクエリの内容とその投げ方
3. wavファイルの保存の仕方
4. (おまけ) VOICEVOXエンジンAPIドキュメントの読み方とAPIの使い方
5. (おまけ)エディターを起動せずにエンジンを起動する方法
6. (おまけ)HTTPリクエストを使わずに音声を合成するVOICEVOX COREの紹介
7. 音声合成のPythonサンプルコード

## 1. VOICEVOXのHTTPサーバー機能について

VOICEVOXにはGUIを使う他にも音声を合成する方法があり、その1つがHTTPリクエストを使用する方法です。
VOICEVOXは大まかに分割するとエディターとエンジンとコアという3つのモジュールが組み合わさってできています。エディターはVOICEVOXアプリケーションのGUI部分、エンジンはHTTPサーバー(音声合成のリクエストなどを受け取

元記事を表示

VoiceVox を ROS2 で使用する

 VoiceVox を ROS2 で使用できるパッケージ **VOICEVOX_ROS2** を作成しましたので、本パッケージの使用方法を紹介します。
# VOICEVOX_ROS2
 VOICEVOX_ROS2 は ROS2 humble で動作する音声合成パッケージです。ロボットからずんだもんや四国めたんなどの音声合成ボイスを発話できます。ソースコードとドキュメントは以下のリンクから参照してください。

– https://github.com/GAI-313/voicevox_ros2/tree/humble

## インストール
 インストール前に ROS ワークスペースを事前に作成してください。
“`bash
mkdir colcon_ws/src
“`
 `src` ディレクトリに本パッケージをダウンロードします。
“`bash
cd colcon_ws/src
git clone https://github.com/GAI-313/voicevox_ros2/tree/humble
“`
 ダウンロー

元記事を表示

【Python】SQLファイルから特定のカラムのデータ以外の全データを取得する方法

# 概要
SQLファイルから、特定のカラムのデータ以外のすべてを取得する必要性が生じましたので、Pythonプログラムで実装しました。

### 前提
例えば以下のようなSQLがあるとします。

“`sample.sql
INSERT INTO `fruit` (fruit_cd, fruit_name, price, quantity) VALUES
(1, ‘バナナ’, 200, 10) ,
(2, ‘りんご’, 500, 5) ,
(3, ‘みかん’, 300, 8) ,
(4, ‘パイナップル’, 1000, 3) ,
(5, ‘ぶどう’, 400, 6) ,
(6, ‘いちご’, 600, 4) ,
(7, ‘メロン’, 1500, 2) ,
(8, ‘スイカ’, 800, 7) ,
(9, ‘キウイ’, 300, 9) ,
(10, ‘マンゴー’, 1000, 3) ;
“`

この時、上記の`price`以外の値を除いたすべてを行(レコード)を取得したい場合、どうすればいいか?
サンプルコードを紹介します。

# サンプルコード

“`py
import re

元記事を表示

エンジニアリング・マネージャーの仕事を経験してモノの見え方が変わった話

こんにちは。[わいけい](https://twitter.com/yk_llm_gpt)です。

最近エンジニアとしてマネージング寄りの業務をすることが増えてきました。
今回の記事では、その中で自分の考え方がどう変わってきたかをメモしておきます。

私の場合は、まずフリーランスエンジニアとしてこの業界に入ってきました。
それもあって、今までは基本的にあくまで「良いコードを書く」ことが仕事であり目標でした。

以前からいわゆる上流工程にも全く興味関心がなかった訳ではありません。
しかし、これまで私が経験したのは

– システムの要件定義(ビジネス的な視点も含む)は社員が行う
– フリーランスは(やったとしても)技術的な設計のみ担当する

という切り分けの現場が多かったんですよね。
そんな背景もあり、マネージング層以上の上流に携わる機会があまりありませんでした。

そして、そもそもマネージャーという役割に必ずしもいいイメージだけを持っている訳ではありませんでした。
マネージングと聞くと **「業務の中で自分がコード書く時間が削られるのでは?」** という漠然とした不安がありました。

元記事を表示

python 正規表現 meado,url 参考

こんな感じという事で、お願い致します。
どんな感じかというと・・・
“`text
PowerShell 7.4.1
PS C:\xampp\htdocs\my_python> & ‘c:\Python\python.exe’ ‘c:\Users\tatty\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher’ ‘62992’ ‘–‘ ‘C:\xampp\htdocs\my_python\py_seiki.py’
s= aaa@xxx.com xxx.yyy@localhost bbb@yyy.net B.1_0-0.bb@xy.z.com ccc@zzz.org
t= [‘aaa@xxx.com’, ‘B.1_0-0.bb@xy.z.com’]
tt= [‘xxx.yyy@localhost’]
t= [‘aaa@xxx.com’, ‘B.1_0-0.bb@xy.z.com’, ‘xxx.yyy@localhost’

元記事を表示

人気プログラミング10位の三項演算子?を調べてみた! #ぼくの大発見日記

# はじめに

ナイトウ([@engineer_naito](https://twitter.com/engineer_naito))と申します。

Pythonの好きなところ。
1つ挙げろと言われたらぼくは三項演算子と答えるでしょう。

ぼくはPythonの三項演算子の書き方がとても気に入っています。
Python以外の三項演算子の書き方を調べて、Pythonの三項演算子くらい好きな書き方がないか探していきます。

※以下の記事よりランキングを引用させていただきます。

https://prtimes.jp/main/html/rd/p/000000312.000049221.html

:::note warn
今回はいろんなプログラミング言語の三項演算子を調べてまとめることが目的の記事です。
ぼくは言語の優劣についての思想などは持っておりません。
引用している言語ランキングについても特に感情や思想は持っておりません。
:::

# 三項演算子 とは

三項演算子を使うと、if文else文を1行で書くことができます。
条件演算子と呼ばれることもあるようです。

英語ではterna

元記事を表示

Django(Django Rest framework)学習記録 ~models.py編~

# 初めに
django(Pythonも学び中)を学んでいるので、メモ代わりに学んだことをまとめていきます。
まずはmodels.pyについてまとめていきます。Pythonについても学んでいるので、Pythonの構文など気になったところも取り上げていきます。
まだまだ、情報系自体について学び始めたところなので、間違っているところもありますが、よろしくお願いします。

# models.pyとは
アプリケーションとデータベースを連携させる仕組み。データベースの検索、取得、追加、削除などの操作が可能。

# 実際にコードを見て気になったところを取り上げていく
アカウント登録等のAPIを作成したときに参考にしたコードを使用する。
参考元は[こちら](https://zenn.dev/iccyan/articles/66e0245c854137)。
“`
from django.db import models

class User(models.Model):
user_id = models.CharField(max_length=20, unique=True)
p

元記事を表示

Obsidiainの壁紙を、自分の好きな画像にしたい!

# Obsidanに背景画像を足したい。
皆さんがはメモを取るのにどんなツールを利用していますか?
これまで私は、メモ、リマインダー、カレンダーをそれぞれMacの純正を使ってきました。

しかし、これらを1つのツールにまとめられるということでObsidianを活用しました。

プログラムも書けるし、markdownも使えるし便利です!
使い方の説明は他の方の記事とか見てください

# この記事で出来るようになること
1、Obsidianの編集ページと閲覧ページ、さらに全体に背景画像を設置できる!
これで、無機質な壁紙とはおさらば!

# できないこと
現状、PCでしか壁紙の設置はできません。
既存のプラグイン(https://github.com/samuelsong70/obsidian-dynamic-background)
を活用すれば、PC,モバイル両方に壁紙を設置できます。(私が作成したプラグインではありません)
しかし今回は、CSSを使って自分で壁紙を設置します。
このほうが細かい設定もできるし、プライベートな画像を壁紙にするのにプラグインを使うのは気が引ける人におすすめで

元記事を表示

ChatGPT との会話(偏差値を求めるプログラムについて)

ChatGPT 3.5 と暇つぶしの会話をしてみました。

User
以下のプログラムの性能・品質を評価してください。

“`Python
import numpy as np

def calculate_deviation_scores(scores):
average_score = np.average(scores) # 平均値を計算
standard_deviation = np.std(scores) # 標準偏差を計算
deviation_scores = [] # 偏差値を格納するためのリスト

# 各学生の偏差値を計算
for score in scores:
deviation_score = 50 + 10 * (score – average_score) / standard_deviation
deviation_scores.append(deviation_score)

return deviation_scores

# 模擬データ
scores = [92,

元記事を表示

EOFの意味は?

なぜecs[EOF]がある?

https://allabout.co.jp/gm/gc/471930/

なぜ、「;」を採用している?

元記事を表示

Pythonの基本⑤【dict型のメソッド】

dict型(辞書型)の操作を行うためのメソッドを備忘録的にまとめてみました。

## よく使うメソッド一覧
`keys()`: 辞書のキーのリストを返します。
“`python
my_dict = {‘a’: 1, ‘b’: 2, ‘c’: 3}
keys = my_dict.keys()
print(keys) # Output: dict_keys([‘a’, ‘b’, ‘c’])
“`

`values()`: 辞書の値のリストを返します。
“`python
my_dict = {‘a’: 1, ‘b’: 2, ‘c’: 3}
values = my_dict.values()
print(values) # Output: dict_values([1, 2, 3])
“`

`items()`: 辞書のキーと値のペアをタプルで含むリストを返します。
“`python
my_dict = {‘a’: 1, ‘b’: 2, ‘c’: 3}
items = my_dict.items()
print(items) # Output: dict_items([(‘a’

元記事を表示

Numpy 使うなら,ちゃんと使おう

どうも,人工無脳はやたら長い変数名と,一時変数と,無駄なプログラミングを推してくるみたいですけど。

それに,結果をリストにして返すなんてもってのほか。

numpy を使うなら,ちゃんとベクトル計算をしましょう。

まさか,一文字当たりいくらという請負仕事なんでしょうか。

“`python
import numpy as np

def calculate_deviation_scores(scores):
average_score = np.average(scores) # 平均値を計算
standard_deviation = np.std(scores) # 標準偏差を計算
deviation_scores = [] # 偏差値を格納するためのリスト

# 各学生の偏差値を計算
for score in scores:
deviation_score = 50 + 10 * (score – average_score) / standard_deviation
deviation_score

元記事を表示

General Purpose Assembler ‘axx’

GENERAL PURPOSE ASSEMBLER ‘axx.py’
axx.pyはアセンブラを一般化したジェネラル・パーパス・アセンブラです。
拙作のexpression.pyモジュールを使っています。

https://qiita.com/fygar256/items/982c17dc473107d02027

・使い方
axx.py 8048.axx [ sample.asm ]のように使います。
axxは第1引数から、アセンブラのパターンデータを読み込み、パターンデータに基づき第2引数のソースファイルをアセンブルします。
第2引数を省略したら、標準入力からソースを入力します。

・パターンデータの解説
パターンデータは、
‘command’ ‘operands’ ‘error_pattern’ ‘object_list’
のように並んでいて、commandをスペースにして省略すると直前のcommandが採用されます。
・大文字・小文字の別、変数
commandは大文字で書いてください。operandsの定数文字も大文字にしてください。
アセンブルラインからは、大文字でも

元記事を表示

マイナンバー(個人番号)の検査用数字の確認方法

マイナンバー(個人版号)は、12桁の数字で、下1桁は検査用数字です。
それは、次で定められています。
[総務省令第八十五号](https://www.soumu.go.jp/main_content/000327387.pdf)
PDF の 4,5ページです。

![p01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/063401e5-2129-c526-3174-d7673c7ee3b3.png)

![p02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/982792b6-2d3b-9149-7aa2-1a107a37f6fb.png)

## プログラム Python3

“`py:check_digit.py
#! /usr/bin/python
#
# check_digit.py
#
# Feb/23/2024
import sys
#
# ————–

元記事を表示

マージソート

https://paiza.jp/works/mondai/sort_efficient/sort_efficient__merge

“`py
# アルゴリズムが正しく実装されていることを確認するために導入するカウンタ変数、ソート処理には関係がないことに注意
# 番兵は番兵(sentinel:センチネル!)は、プログラミングにおいて配列の最後に設置される特別な要素のことを指す。
# この要素は、通常の値と異なる値を持ち、配列の最後尾に置かれることが多い。
#left,rightの数値ってどこで決める?

count = 0

def merge(A, left, mid, right)
“””
部分データ列 A[left] ~ A[mid-1], A[mid] ~ A[right-1] はそれぞれ整列済み
2つの部分データ列をマージし、A[left] ~ A[right-1] を整列済みにする
“””
# 2つの部分データ列のサイズ
nl = mid-left
nr = right-mid

# 部分データ列をコピー
for

元記事を表示

Pythonで合成関数を実装する

## 動機
コードを書いているとよく
“`python
list(filter(map(…)))
“`
みたいな関数が連続したものに出会います。
大抵コードは左上から読んでいくので, こうしたものもlist->filter->mapの順で読みたくなりますが, 実際は逆なので混乱しやすいです。
“`bash
cut hoge.tsv | uniq | sort
“`
こんな感じでシェルスクリプトのように書けたら見やすいかなと思ったりします。
## 実装
“`python
class CompositableFunction:
def __init__(self, function):
self.function = function

def __call__(self, *args, **kwargs): # ()を後ろにつけたときに呼ばれる.
return self.function(*args, **kwargs)

def __or__(self, other): # |演算子

元記事を表示

OTHERカテゴリの最新記事