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

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

【Python】for-else構文の使い方

## はじめに
Pythonには、他のプログラミング言語にはないfor-else構文があります。
本記事では、for-else構文の基本的な使い方と具体例を紹介します。

## 1. for-else構文とは?
for-else構文は、Python特有のループ構文です。
通常のforループに加えて、elseブロックを追加することで、ループが正常に完了した場合にのみ実行されるコードを指定することができます。

## 2. for-else構文の基本的な使い方
for-else構文の基本形は以下の通りです。

“`python
for item in iterable:
# ループ内の処理
else:
# ループが正常に完了した場合の処理
“`

forループが正常に完了するとelseブロックが実行されます。
break文でループが途中で終了した場合、elseブロックは実行されません。
## 3. for-else構文の具体例

##### 例1:ループ内で特定の条件が満たされた場合
以下の例では、リスト内に特定の値が存在するかをチェックし、見つかった場合にbreakで

元記事を表示

【Python】基本!PEP8を意識して書いてみた!

# 本日の内容
今日の記事はPythonを使用する上で基礎的な情報を記載していきます。
実際に勉強会でも使用する内容になります。
下記に記載しているコードはコードスタイル「PEP8」を意識して記載しています。
PEP8については以下のサイトをご覧ください。

https://peps.python.org/pep-0008/

## 変数と四則演算
コードは以下になります。
“`python
# 変数
num = 1
print(type(num)) #

moji = “こんにちは”
print(type(moji)) #

num_1 = 1.1
print(type(num_1)) #

flg = True
print(type(flg)) #
num_lst = [1, 2, 3, 4, 5]
print(type(num_lst)) #

num_tuple = (1, 2, 3, 4)
print(type(num

元記事を表示

これから始める Semantic Kernel【2024年7月版】

# はじめに

Semantic Kernel は GPT などの AI モデルの呼び出しと C# や Java, Python のコードを統合して使用することができる Microsoft 製のオープンソース SDK です。2023年4月にプレビューを開始し、12月には Version 1.0.1 として正式リリースされました。そして7ヶ月が経過した2024年7月の現時点で Version 1.15.x がリリースされていることからもわかる通り、非常に早いペースで機能追加・改善が進んでいます。

Semantic Kernel が目指す方向性は当初から何も変わっていませんが、正式リリースからまだ1年も経っていないにも関わらず2024年2,3月頃から概念が大きく変わってしまいました。MS Learn もその新しい概念に合わせるように少しずつ更新されていましたが、2024年6月末頃、ようやく完全に対応したバージョンとなりました。そのため、「Semantic Kernel」で Web 検索して表示されるブログなどの情報と、 MS Learn で説明している内容が異なってしまっており混乱の元と

元記事を表示

JUMAN++をPythonでDocker内で動かす

## はじめに
[Media of Langue](https://www.media-of-langue.org/)を開発する過程でJUMAN++をDocker内で動かしたくなったのでメモ。
ちなみにJUMAN++はバージョン2系列の方が早いのでこちらを使っていきます。

## Dockerfile
今回使ったDockerfileをもとにしているので適時変更してください。
(srcディレクトリがないとエラーが出ます)
“`Dockerfile
FROM nvidia/cuda:11.6.2-base-ubuntu20.04
ARG SRCDIR=/src
RUN export LC_ALL=C.UTF-8
RUN export LANG=C.UTF-8
RUN apt-get update -y && \
apt-get upgrade -y && \
apt-get install -y \
locales \
locales-all \
g++ \
wget \
clang \
cmake \
xz-uti

元記事を表示

ビジネスを変える!AI技術で実現する業務効率化の最前線 (2)

## はじめに

近年、人工知能(AI)技術の急速な進歩により、ビジネスの世界は大きな変革期を迎えています。本記事では、AI技術を活用した業務効率化の最新トレンドと、その実践的な応用例について探ります。

以下の記事がコンセプトの記事になってます。概要、概念的に興味がある方は、こちらの記事を参照してください。

https://qiita.com/Tadataka_Takahashi/items/2adbbdeb90852d1e33b2

この記事を具体的に実現する技術要素についてフォーカスして書いた記事になっています。

## 1. 自然言語処理(NLP)による文書管理の革新

### 1.1 概要
自然言語処理技術の発展により、大量の文書やメールを効率的に処理・分類することが可能になりました。

### 1.2 応用例
– **自動文書分類**: 機械学習アルゴリズムを用いて、入力された文書を適切なカテゴリーに自動分類。
– **情報抽出**: 契約書や報告書から重要な情報を自動的に抽出し、データベース化。

### 1.3 実装のヒント
“`python
from sklear

元記事を表示

【Python】PythonでPDFファイルの図表番号の整合をチェックする

## はじめに

 以前投稿した記事では、Pythonを用いてPowerPointファイルのスライドの図番号を自動取得、自動取得した図番号に対してその図番号が他のスライドから参照されているか自動でチェックをする方法についてご紹介しました。

[【続き】【PowerPoint】PythonでPowerPointファイルの図表番号の整合をチェックする(XML自動化)](https://qiita.com/ebi3kani3/items/6c1e6607870a13de8896)

 今回はPowerPointファイルではなくPDFファイルに対して図表番号の整合をチェックする方法ついてご紹介します。

### この記事でわかる・できること

– PDFファイルから図番号を自動で取得する方法がわかります
– 図番号の参照の整合性を自動でチェックする方法がわかります

### この記事の対象者

– PythonでPDFファイルを操作したい人
– 資料点検業務を効率化したいと思っている人

### 動作環境・使用するツールや言語

– OS バージョン
– Windows11 23H

元記事を表示

統計学メモ

“`
import numpy as np
from scipy import stats

# 表示桁数の指定(オプション)
np.set_printoptions(precision=3)

# データの準備
fish_data = np.array([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])

# 合計の計算
total_sum = np.sum(fish_data)
print(f”合計: {total_sum}”)

# サンプルサイズの計算
sample_size = len(fish_data)
print(f”サンプルサイズ: {sample_size}”)

# 平均値の計算
mean_value = np.mean(fish_data)
print(f”平均値: {mean_value}”)

# 標本分散の計算
sample_variance = np.var(fish_data, ddof=0)
print(f”標本分散: {sample_variance}”)

# 不偏分散の計算
unbiased_variance = n

元記事を表示

画像の類似度を高速計算 imagehash

画像の類似度を計算します。

“`python
from PIL import Image
import imagehash
import time

hash = imagehash.average_hash(Image.open(‘man1.jpg’),hash_size=16)
otherhash = imagehash.average_hash(Image.open(‘man2.jpg’),hash_size=16)
print(hash – otherhash) # hamming distance
“`
>>51

例えば、
この基準画像と

この画像では、

元記事を表示

YAMLでHTMLを書いてみる

## 概要

タイトルからして「お前は何を言ってるんだ」って感じですが、HTMLに変換できるデータ構造をYAMLの仕様の範囲内で記述して[Haml](https://haml.info/)や[Pug](https://pugjs.org/)みたいなことができないかと考えてみました。

## 仕組み

JSON界隈には[JSONML](http://www.jsonml.org/)というXMLをJSONで表現する方法があります。厳密には違いますが、XMLを表現できるのならHTMLも表現できるのではないか、また、YAMLはJSONの(ほぼ)スーパーセットであり、JSONで表現できるならYAMLでも表現できるので、JSONMLをYAMLの仕様で書いてHTMLに変換できたら見やすく書けるんじゃないかという気がしたので試してみた感じです。

## JSONMLの仕様

JSONMLの仕様をざっくりと説明すると、以下のような感じです。

– 要素はリスト形式で表す
– リストの1つ目は必ずタグ名を表す文字列であり、省略不可。
– リストの2つ目は属性を表すオブジェクトである、ただしこれは省略可能。

元記事を表示

pythonでmpeg4ファイルを文字起こし

# はじめに
LINEって、音声でも投稿できて、投稿すると音声再生ボタンが出ます。そこからダウンロードもできて、ダウンロードするとMPEG4ファイルです。
音声にしか出せない情報(声色とか)があるとか、発信者は楽というメリットがある一方、同じ時間を共有しないといけないとか、あとで読み返すのが大変とか、一方的に話すので会話が曖昧になるというデメリットもあると思います。

まぁそういうメリデメある状態ではあるけど、文字起こしするという方法もあるよねということで、やってみました。

## ソース
https://github.com/yo16/recognize_audio_file

※ “もじおこし”を変換すると”文字興し”になってたから、気にせず使ってたけど、少なくとも今は”文字起こし”が主流のようなので、この記事では”文字起こし”で。ソース内に”文字興し”が入ってますが、あまりお気になさらず。

## 使っているもの
– [FFmpeg](https://www.ffmpeg.org/)
– [SpeechRecognition · PyPI](https://pypi.org/pr

元記事を表示

ABC363回答メモ

# 0.はじめに
 下降の一途をたどるレートですが、まぁ実力的に
 こんなもんかと思い、心を入れ替えてC問題までを
 確実に解くように進めていこうと思いました。
 
 今回は、C問題までしか結局解けませんでしたが
 レートは+6と若干持ち直しました。

# 1.A – Piling Up
 Nを1ずつ増やしていき、100、200,300のいずれかをはじめに超えたタイミングが
 答えとなります。
 100,200,300を格納したリストを作り、先頭からNと比較し
 Nがそれぞれの数以下の時、その和人の差分を出力して終了。としました。

 https://atcoder.jp/contests/abc363/submissions/55769699

# 2.B – Japanese Cursed Doll
 呪いの日本人形がモチーフの問題・・・?
 の割にはあっさりと問題は語られていました。
 それぞれの人が、後何ミリ髪が伸びれば
 Tに達するか(あるいはすでに足しているか)を
 別リストに持ち、昇順ソート後
 そのリストの先頭からP番目の値を出力して終了としました。
 
 解説を読

元記事を表示

Matplotlibの基礎

# Matplotlibを使うための前準備

注)ここではjupyter Notebookを使っております。
matplotlibを使うためにまずはインストールしよう!

“`
#MatplotlibとNumpyの読み込み
import matplotlib as mpl
import numpy as np

#別名で実行できるようにする
import matplotlib.pyplot as plt
import numpy.random as random

#Jupyter Notebook上でグラフを表示させるために必要なマジックコマンド
%matplotlib inline
“`
 「import matplotlib as mpl」は、PythonのMatplotlibライブラリを mpl という名前でインポートする文法です。これにより、Matplotlibの機能にアクセスする際 「mpl」 を接頭辞として使用することができます。
 「import matplotlib.pyplot as plt」 は、PythonのMatplotlibライブラリから pyplot

元記事を表示

JUMAN++で可能性のある形態素解析パターンをPythonで複数取り出す

## 環境を作る
過去に記事を書いているのでそちらを参考に環境を構築してください。
https://qiita.com/TakayoshiK/items/2fed43b2ed4e6433ab1b

## 今回の背景
普通にJUMAN++を呼び出して実行すると形態素解析の結果を得ることができます。
しかし、形態素解析のパターンは複数考えられ、考えられるパターンを知りたいというシーンもあるかと思います。
[Media of Langue](https://www.media-of-langue.org/)のデータを作成する過程で私もこの複数パターンを取り出したいと考え調べたのでメモとして残します。

## JUMAN++を詳細モードで準備する
JUMAN++を詳細モードで準備します。
ここではs-5で上位5個のパターンを取得するように指定しています。
タイムアウトを防ぎたいため念の為タイムアウトの時間も伸ばしています。
“`python
from pyknp import Juman
jumanpp_detail = Juman(timeout=300, jumanpp=True, op

元記事を表示

【続き】【PowerPoint】PythonでPowerPointファイルの図表番号の整合をチェックする(XML自動化)

## はじめに

 PowerPointで資料を作成した後に、図番号の整合が取れているかチェックしたい時がありますよね。
前回までの記事では、Pythonを用いてPowerPointファイルのスライドの図番号を自動取得、自動取得した図番号に対してその図番号が他のスライドから参照されているか自動でチェックをする方法についてご紹介しました。

 なお、処理対象のPowerPointファイルはあらかじめXML形式に変換しておく必要がありました。
今回はPythonでPowerPointファイルをXML形式に変換する機能も追加したので、そちらについてご紹介します。

[【PowerPoint】PythonでPowerPointファイルの図表番号の整合をチェックする](https://qiita.com/ebi3kani3/items/afc86ba5f8fcc85b8eac)

### この記事でわかる・できること

– PowerPointファイルから図番号を自動で取得する方法がわかります
– 図番号の参照の整合性を自動でチェックする方法がわかります
– PythonでPowerP

元記事を表示

TaniumとDeep Instinctの連携方法

TaniumとDeep Instinctの連携方法について説明します。以下は一般的な手順ですが、特定の環境やバージョンによっては異なる場合がありますので、公式ドキュメントを参照するか、サポートに問い合わせることをお勧めします。

**1. 準備**
Taniumのセットアップ: Taniumサーバーとエージェントが正しくインストールされていることを確認します。
Deep Instinctのセットアップ: Deep Instinctサーバーとエージェントが正しくインストールされていることを確認します。

**2. APIの有効化**
Tanium APIの有効化: Tanium Serverの管理コンソールでAPIを有効化します。
Deep Instinct APIの有効化: Deep Instinct管理コンソールでAPIを有効化します。

**3. 認証情報の取得**
Tanium: APIキーや必要な認証情報を取得します。
Deep Instinct: APIキーや必要な認証情報を取得します。

**4. スクリプトの作成**
以下のようなPythonスクリプトを作成して、Tani

元記事を表示

paiza Dランク問題で振り返るプログラミング学習について~paiza×Qiita×経験談~

## はじめに
この記事では、paiza×Qiitaの記事投稿キャンペーンの一環として、筆者が初めてpaiza Dランク問題を解いた頃(2021年4月)を振り返り、自分なりのプログラミング学習方法についてまとめます。

筆者がプログラミングに興味を持つきっかけとなったのはpaizaであり、その3ヶ月後(2021年6月)にQiitaの執筆を始め、色々と試行錯誤していた記憶があります。そのため、本記事は **paizaとQiitaを通じて初めてプログラミングに挑戦した経験(paiza×Qiita×経験談)** を元にしています。

この記事は、Dランクではじめてpaizaのプログラミング問題を解こうとしている方を対象としています。

## 解答例
まずは、Dランク問題の解答例を紹介します。言語はPython 3を使用します。

### N倍の文字列
“`python
n = int(input())
print(“*” * n)
“`

### Eメールアドレス
“`python
local = input()
domain = input()
email_address = f”{

元記事を表示

Python 機能編①

# Python 機能編①
Pythonで使用する機能について解説します。

### 目次
1. マルチプロセッシング(Multiprocessing)
2. パイプ(Pipe)
3. シグナル(Signal)
4. バリア(Barrier)
5. セマフォ(Semaphore)
6. デーモンスレッド(Daemon Thread)
7. ノンブロッキングI/O(Non-blocking I/O)
8. ストリーム処理(Stream Processing)
9. 継続(Continuation)
10. 依存性注入(Dependency Injection)

**1. マルチプロセッシング(Multiprocessing)**
文字列は、テキストデータを格納するためのデータ型です。シングルクォートかダブルクォートで囲んで表します。
“`python:Multiprocessing.py
from multiprocessing import Process

def print_square(num):
print(f”Square: {num * num}”)

def

元記事を表示

【指摘求む】Rasberry pi pico w + モータードライバーを使って回路を組みましたがモーターが回りません…

## はじめに

Rasberry pi pico w を利用してプラレールをラジコン化している記事を見かけて自分もやってみたい!と思い各種部品を購入しました。ブレッドボード上で回路を組んでみたのですがモーターが全く動きません… :sob:

## 困っていること
モーターが回らない原因は何でしょうか…? もし確認すべき点などありましたら教えていただけると助かります :bow:

## 部品

* Rasberry pi pico w
* [モータードライバー TB6612FNG](https://www.amazon.co.jp/TB6612FNG%E6%90%AD%E8%BC%89-%E3%83%87%E3%83%A5%E3%82%A2%E3%83%AB%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90-%E3%83%94%E3%83%B3%E3%83%98%E3%83%83%E3%83%80%E4%BB%98%E3%81%8D-%E5%AE%9F%E8%A3%85%E6%B8

元記事を表示

Python アルゴリズム編

# Python アルゴリズム編
Pythonで使用するアルゴリズムについて解説します。

### 目次
1. グラフ(Graph)
2. ツリー(Tree)
3. リスト(List)
4. キュー(Queue)
5. スタック(Stack)
6. ソートアルゴリズム(Sorting Algorithms)
7. トライ(Trie)
8. 動的計画法(Dynamic Programming)
9. バックトラッキング(Backtracking)
10. アルゴリズム設計技法(Algorithm Design Techniques)

**1. グラフ(Graph)**
グラフは、ノード(頂点)とそれらを結ぶエッジ(辺)からなるデータ構造です。
“`python:Graph.py
# 隣接リストによるグラフの表現
graph = {
‘A’: [‘B’, ‘C’],
‘B’: [‘A’, ‘D’, ‘E’],
‘C’: [‘A’, ‘F’],
‘D’: [‘B’],
‘E’: [‘B’, ‘F’],
‘F’: [‘C’, ‘E’]
}

元記事を表示

マルコフ連鎖でしかのこのこのここしたんたん

こんな動画があったのでPythonで実際にマルコフ連鎖してみる。

# ソースコード
“`python:shikanokonokonokokoshitantan.py
import random

# 遷移
transitions = {
‘し’: [‘か’, ‘た’],
‘か’: [‘の’],
‘の’: [‘こ’],
‘こ’: [‘の’, ‘こ’, ‘し’],
‘た’: [‘ん’],
‘ん’: [‘ ‘, ‘た’],
}

# 重み
weights = {
‘し’: [0.5, 0.5],
‘こ’: [0.5, 0.25, 0.25],
‘ん’: [0.5, 0.5],
}

# 初期状態
state = ‘し’
result = [state]

# 空白が出たら終了
while True:
next_state = random.choices(
transitions[state],
weights = w

元記事を表示

OTHERカテゴリの最新記事