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

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

FlaskとHTMLでシンプルな小学生向け算数クイズアプリを作成する方法

## はじめに
この記事では、FlaskとHTMLを使用してシンプルなクイズアプリを作成する方法を紹介します。このアプリケーションでは、サーバーサイドでFlaskを利用して問題を生成し、クライアントサイドではHTMLとJavaScriptを使って問題を表示し、ユーザーからの回答を受け付けます。クイズの問題は算数の基本的な計算問題をランダムに生成し、ユーザーが選択肢をクリックして回答できるインターフェースを提供します。さらに、ユーザーがクイズを提出すると、正答率を計算して結果を表示します。

このアプリを作成することで、Flaskの基本的な使い方や、HTML、CSS、JavaScriptの連携方法を学ぶことができます。以下に、ディレクトリ構成やプログラムの詳細な説明を示しますので、ぜひ参考にしてみてください。

### ディレクトリ構成

まず、アプリケーションのディレクトリ構成は以下のようになります。

“`
quiz_app/
├── app.py
├── static/
│ └── style.css
└── templates/
└── index.html

元記事を表示

Python開発者がブロックチェーン普及の鍵を握る

![python.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3780429/41cc4b1f-c096-3cc8-98a3-944314b26e6f.png)

ニッチな言語を知らなくても、暗号技術の専門スキルを持っていなくてもOK。Pythonさえあれば。
by ジョン・ウッズ、アルゴランド財団CTO

デリバティブ・アナリストから応用暗号学者まで、私はキャリアを通じて多くの帽子をかぶってきたが、心の底ではソフトウェア・エンジニアだ。もともとコーディングが好きで、「開発者」を自認する他の多くの人たちと同じように、Java、Swift、C、Rustなど、お決まりのプログラミング言語を複数知っている。そのため、私の中の暗号学者がビットコインやモネロのようなアイデアを追いかけて分散型コンピューティングに夢中になったとき、私の中の開発者はブロックチェーンが必要とする新しいプログラミング言語の習得に挑戦した。この経験を通して、まったく新しいプログラミング言語を学ぶ必要性という大きなハード

元記事を表示

Pythonのfor文で分かりにくかった所

# 始めに
例えば1から10までの値を出力したい場合を考える.
pythonでは以下のfor文を利用する事でも実装が可能である.
~~~
for i in range(初期値,条件式,変化式)
~~~

# 本題

~~~:実行内容
for i in range(1,10,1):
print(i)
~~~

~~~:実行結果
1
2
3
4
5
6
7
8
9
~~~
実行結果からこのforループではiの値が1から10未満まで,1刻みで増加している事が分かる.

~~~:実行内容
for i in range(1,11,1):
print(i)
~~~

~~~:実行結果
1
2
3
4
5
6
7
8
9
10
~~~
条件式を10+1にすると欲しい結果が得られた.

# その他
初期値,変化式は省略が可能である.
その場合,初期値0,変化式は+1となる.
~~~:実行内容
for i in range(10):
print(i)
~~~

~~~:実行結果
0
1
2
3
4
5
6
7
8
9
~~~

# まとめ
~~~
for i in range(

元記事を表示

まだ間に合う、夏休みの宿題の読書感想文の作り方

まだ間に合う、夏休みの宿題の読書感想文を

大規模言語モデルのgeminiに作ってもらう。
最近のLLMは、トークン数が大きくなり200万トークンまで入れられます。
つまり、資料は丸ごと追加学習しまえばいいわけで、
前段のRAGっぽいものは最小限で済みます。
人力・確1・絶対当たるRAGです。

また、そのまま一度webapiにして、自分で使う資料毎のエンドポイントを用意してしまえば、ネット経由で何処からでも利用できますし、更にサーバーレスで建てれば維持費もほぼ無料で
メッチャ、お得ですね。
家電の取説や、学校の教科書なんかも全部追加学習してあげると便利です。

材料
 1,gemini API
 2,資料:夏目漱石著、吾輩は猫である(著作権フリー、約20万トークン)
 3,webapi、サーバーレス

はい、こちらに既にで出来ています。
あとは、追加学習済みのLLMさんに 読書感想文を書いてもらえば完成です。

https://asia-northeast1-bono-bono.cloudfunctions.net/llm001_v01?name=資料のタイトルを表示する、著者の

元記事を表示

統計局から労働力調査レポート一覧を取得する

統計局は下記のページで労働力調査に関するレポートを毎月掲載しています。
この記事では統計局の労働力調査レポートを全て取得するpythonコードを記載します。

https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&toukei=00200531&tstat=000000110001&cycle=1&tclass1=000001040276&tclass2=000001040277&tclass3val=0

### 1. ステップ1: メインページの内容を取得
まず、対象とするメインページの内容を取得し、BeautifulSoupを使ってHTMLを解析します。このステップでは、全ての月ごとのリンクを取得します。
“`python
import requests
from bs4 import BeautifulSoup

# メインページのURL
main_url = ‘https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&to

元記事を表示

GitHubにリリースを公開すると、Pyinstallerで生成した実行ファイルを”Assets”にアップロードするようにする

# 環境
* Python 3.12.4
* Poetry 1.8.3
* pyinstaller 6.10.0

# 背景
Pythonで作成したツールを、Windows用の実行ファイルとして提供したいです。
GitHubでリリースページを公開したら、Pyintallerで生成した実行ファイルをReleaseページへアップロードするようにしました。

自分用のメモとして、必要な設定ファイルを記事に残しておきます。

# Python関係のファイル

“`
$ tree
.
├── pyproject.toml
├── sample
│ ├── __init__.py
│ ├── __main__.py
│ ├── data
│ │ └── logging.yaml
│ └── utils.py
“`

“`toml:pyproject.toml
[tool.poetry]
name = “sample”
version = “0.1.0”
description = “”
authors = [“yuji38kwmt”]

[tool.poetry.

元記事を表示

生年月日から年齢を計算する方法を各プログラミング言語で書いてみた

# はじめに

プログラミングでよくあるタスクの一つに、生年月日から年齢を計算することがあります。今回は、各プログラミング言語でこのタスクを1行で実装してみました。どの言語でも、標準ライブラリを活用すれば簡単に計算できます。

## Python
“`python
age = (datetime.datetime.now() – datetime.datetime(1984, 8, 21)).days // 365
“`
Pythonでは、`datetime`モジュールを使い、現在の日付と生年月日との差を日数で計算し、年数に換算しています。

## JavaScript
“`javascript
const age = Math.floor((new Date() – new Date(‘1984-08-21’)) / (365.25 * 24 * 60 * 60 * 1000));
“`
JavaScriptでは、`Date`オブジェクトを利用して、生年月日と現在の日付の差をミリ秒で計算し、年数に換算しています。

## Ruby
“`ruby
age = ((Time.

元記事を表示

pyinstallerコマンドに指定したスクリプトファイルの`__file__`には、パッケージ名が含まれない

# 環境
* Ubuntu 22.04
* Python 3.12.4
* Poetry 1.8.3
* pyinstaller 6.10.0

# やりたいこと
以下のプロジェクトで、Pythonファイルから`resources/foo.txt`を参照したいです。

“`
$ tree
.
├── pyproject.toml
├── sample
│   ├── __init__.py
│   ├── __main__.py
│   ├── resources
│   │   └── foo.txt
│   └── utils.py
“`

以下のようなコードで、`resources/foo.txt`が存在するかどうかの結果を出力するようにしました。

“`python:__main__.py
from pathlib import Path

from sample.utils import foo_txt_exists as foo_txt_exists_in_utils

print(f”{__file__=} in ‘__main__.py”)

def foo_

元記事を表示

pythonで作成したfigをpngでクリップボードへ移したい

# はじめに

例えばJupyter上でmatplotlibを使ってグラフを作成し、それを別の場所に貼り付けるのが面倒だと思ったことはないでしょうか?いちいち保存してコピーするのは無駄な気がしますし、右クリックでコピーしてもなんだか画質が合わず調整も難しい。 **作成したグラフをいい感じにクリップボードへ送ることができれば、このストレスを低減できるのではないか!** そんなプログラムを試作した結果を記します。

以下、簡単な実行環境の紹介です。(そんなに依存性はないはず。)
* Windows 11
* Python 3.7
* PowerShell 5.1

# どうやるか

とはいえ、これぐらいのことであれば誰かやっている人がいるだろうと思い調べてみました。まず良さそうだと思ったのは[こちらの記事](https://qiita.com/flip-flop/items/89cd4c52309d1d0641d6 “スクリーンショットをクリップボードに保存”)で紹介されている方法です。BMPでクリップボードに送る都合上、透過部分はうまくコピーできず、Jupyter側とdpiを調整しないと

元記事を表示

オープンソース機械学習関数

[teradataml Open-Source Machine Learning Functions – テラデータ オープンソース機械学習関数](https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-Package-for-Python-User-Guide/teradataml-Open-Source-Machine-Learning-Functions) [2024/08/21時点]の翻訳です。

:::note information
各機能の詳細な説明に関しては、段階的にリンクを追加していきますので、リンクから詳細ページを参照してご利用下さい。
:::

## オープンソース機械学習関数とは?
Scikit-learn.png

元記事を表示

3相全波整流回路と高調波について

# はじめに
ダイオードやサイリスタを用いた他励式の3相全波整流回路やインバータ(6パルス式)では、直流側で6n次の高調波が生成され、交流側では6n±1次の高調波が生成されると言われている。そこで、今回は、ダイオードを用いた整流回路において、交流側と直流側で発生しうる波形をフーリエ変換することにより、含まれる高調波について分析することを目的とする。

# 交流側
## 波形

交流側の波形は6パルスなので以下のようになると考えられる。
“` python 3zen_AC.py
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math

n=100
t_max=1
#t=np.linspace(0,t_max,n)

X=[]
t=[]
f=1
T=1/f
m=int(t_max/T)
for i in range(m):
# T_1=t[i]%T
# print(T_1)
T_2= i*T
for k in range(6):
T_1= k

元記事を表示

2,3体問題と数値解析

# はじめに
複数の惑星が存在した場合、その惑星が万有引力によりどのような軌跡を描くのかを調査する問題を多体問題という。一般的に3体問題以上の系は厳密に数式を用いて運動方程式を解くことができない。そこで、今回は2体問題や3体問題についてpythonを用いた差分法で運動方程式を解くことにより、適切な計算量以内の範囲でシミュレーションをすることを目的とする。

# アルゴリズム
加速度と変位の関係式である運動方程式から変位を求めるために、以下のようなアルゴリズムを用いる。

## 速度と変位
微小区間($t=t$から$t=t+\Delta t$)に粒子の加速度$\textbf{a}$が与えられたとき
速度と変位は以下のように表すことができる。これは、微分の定義から来ている。

“`math
\textbf{v}(t+\Delta t)=\textbf{v}(t)+\textbf{a}(t)\Delta t
“`

“`math
\textbf{x}(t+\Delta t)=\textbf{x}(t)+\textbf{v}(t)\Delta t
“`
これを$t=0$から$t=t$ま

元記事を表示

PythonのBokehを使ったデータ可視化のチュートリアル初心者向け

## Bokehでのインタラクティブな可視化を学ぶ

### 第1章: Bokehの概要
**説明**: Bokehは、Pythonを使用してインタラクティブなグラフや視覚化を作成するためのライブラリです。HTMLとJavaScriptを使用してプロットをレンダリングするため、Webベースのアプリケーションに適しています。Bokehは、散布図、線グラフ、棒グラフ、ヒートマップなど、多くのプロットタイプをサポートしています。

**サンプルコード**:
“`python
from bokeh.plotting import figure, show, output_file

# Output to static HTML file
output_file(“basic_plot.html”)

# Create a new plot with a title and axis labels
p = figure(title=”Simple Line Plot”, x_axis_label=’x’, y_axis_label=’y’)

# Add a line renderer wi

元記事を表示

雲が生成され雨が降るゲーム。

![スクリーンショット 2024-08-21 060338.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/75333ad8-9a3f-b7ae-55a4-45375d1d02d4.png)

![スクリーンショット 2024-08-21 060416.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/0adabe19-14f9-f296-759a-365ca6ad58d8.png)

### パーティクルが徐々に上昇し、一定の高度に達すると重力で落下します。つまり、雲が生成されて雨が降るシミュレーションです。

“`python
import os
import webbrowser
from http.server import SimpleHTTPRequestHandler, HTTPServer
import threading

# HTMLコードを生成
html_cont

元記事を表示

CUDAスレッド並列起動のエンジニアリング。50個のAIモデルをGPU並列同時高速トレーニング。

![bc1d5adf-92a3-4889-b336-29dc2c3cffb1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/b5e921ed-8ff6-3c32-0903-86b159986776.png)

タイトル: 「スレッドプールの魔法とGPUの力」

東京のビル群が夜の帳に包まれるころ、恵比寿の一室にこもるプログラマーの佐藤直樹は、焦燥と期待が入り混じった表情でスクリーンを見つめていた。彼のデスクには複数のモニターが並び、ニューラルネットワークのトレーニングが進行中のグラフやログが映し出されている。

佐藤は機械学習の分野に情熱を注ぐ一流のエンジニアである。最近、彼はモデルのトレーニング速度を劇的に向上させる方法を模索していた。彼の目標は、複数のニューラルネットワークモデルを並列にトレーニングし、処理時間を大幅に短縮することだった。彼はGPUの力を最大限に引き出すために、複雑なカーネルコードやメッシュグリッドの配列操作に挑戦していたが、その道は決して平坦ではなかった

元記事を表示

MARISA Trie 非公式 Python バインディングを作ってみた

[MARISA Trie](https://github.com/s-yata/marisa-trie) 公式の SWIG による Python バインディングが最新の Python バージョンでビルドできなくなっていたので、非公式にラッピングしてみました。

ソースコードはオリジナルのまま、`pip` による管理、Python 3.10 以降でのビルドをできるようにしました。

https://github.com/juno-rmks/marisa-bindings

`marisa-trie` は既に存在し、`marisa-swig` だと将来的に SWIG 以外を利用できなくなるので `maria-bindings` という名称にしました。

[README](https://github.com/juno-rmks/marisa-bindings/blob/main/README.md) には PyPI からインストールできると書いていますが、0.0.0-aplpha バージョンのため、GitHub からのインストールにしか対応していません。

“`console
% pip

元記事を表示

基本情報技術者試験のPythonコード

“`
def linear_search(arr, target):
“””線形探索: 配列を最初から順にチェック”””
for i in range(len(arr)):
if arr[i] == target:
return i # 要素が見つかった場合、そのインデックスを返す
return -1 # 要素が見つからなかった場合、-1を返す

def binary_search(arr, target):
“””2部探索: ソートされた配列に対して二分探索を実行”””
left, right = 0, len(arr) – 1
while left <= right: mid = (left + right) // 2 if arr[mid] == target: return mid # 要素が見つかった場合、そのインデックスを返す elif arr[mid] < target: left

元記事を表示

IBM Cloud上のSendGrid(メール配信サービス)を使用して、Pythonからメールを送信する

## はじめに

‐ **達成したいこと**
VPC内のサーバーからメールを送信することです。短期間の利用を想定しているため、手軽に利用できるサービスが理想です。

‐ **SendGridを使用してメール送信を実現**

IBM Cloudのメニューには「Email Delivery」というサービスがあります。これは、サードパーティ製品のSendGridに基づいています。IBM Cloudのカタログページには、5分で使い始められるといった手軽さについての説明もあります。

環境はこのように構成します。料金を節約するため、VPCサーバーはローカルPCでシミュレーションして、Pythonコードを実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2075462/9ee63fa9-66c6-0083-2854-00028ea7c29b.png)

## 実現方法 _ SendGridサービスの設定

**設定の流れ**
1. IBM Cloud Portal: SendGri

元記事を表示

PythonのKivyアプリをexe化する方法

# はじめに
PyInstallerを使用して、PythonのKivyアプリをexe化する方法を示す。

# 目次
1. [環境](#環境)
1. [フォルダ構成](#フォルダ構成)
1. [手順](#手順)
1. [参考文献](#参考文献)

# 環境

PyInstallerの最新版6.8.0では、exeファイルを終了すると、一時フォルダの削除できないワーニングが発生したため、
バージョン指定で5.13.2を使用する。

– Windows11
– Python 3.11.6
– pip 24.0
– Kivy 2.2.1
– PyInstaller 5.13.2
– PowerShell

# フォルダ構成
test
├── main.py # スクリプト
├── main.kv # kivyファイル
├── kivy_venv/Lib/site-packages # 仮想環境にインストールしたモジュール
├── main.spec # PyInstallerの設定ファイル
├── dist/main.exe # 作成するexeファイル
└── build/ # exeファイルに

元記事を表示

量子コンピュータと量子通信2章 解答例【2.1, 2.2, 2.3, 2.4, 2.5】

# 記事の内容
[量子コンピュータと量子通信 I-量子力学とコンピュータ科学-](https://www.amazon.co.jp/%E9%87%8F%E5%AD%90%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%A8%E9%87%8F%E5%AD%90%E9%80%9A%E4%BF%A1%E3%80%881%E3%80%89%E9%87%8F%E5%AD%90%E5%8A%9B%E5%AD%A6%E3%81%A8%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E7%A7%91%E5%AD%A6-%E9%87%8F%E5%AD%90%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%A8%E9%87%8F%E5%AD%90%E9%80%9A%E4%BF%A1-1-%E3%83%9F%E3%82%AB%E3%82%A8%E3%83%AB-%E3%83%8B%E3%83%BC%E3%8

元記事を表示

OTHERカテゴリの最新記事