- 1. 抽選ツール③
- 2. AND+OR Python3編
- 3. 抽選ツール開発②
- 4. 【Python】math関数を使った切り上げ・切り捨て・偶数丸め(≒四捨五入)の除算
- 5. お題抽選ツール①
- 6. 大文字判定 Python3編
- 7. 気象庁の緊急地震速報を受け取ってDiscordに通知する
- 8. 第5回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!
- 9. [Python][Julia]Project euler7 (プロジェクトオイラー7)
- 10. [Python][Julia]Project euler6 (プロジェクトオイラー6)
- 11. [Python][Julia]Project euler5 (プロジェクトオイラー5)
- 12. 第4回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!
- 13. RealSenseで点群を取得する方法
- 14. pip install pyrealsense2で対応するバージョンがないと言われた時の対処法
- 15. 第3回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!
- 16. 第2回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!
- 17. RealSenseからIMUの情報を取得する方法
- 18. 電気代を通知するLINEBotの開発【Part.1】
- 19. RealSense入門: カラーとデプス映像の取得方法
- 20. プロジェクトごとのPython仮想環境を構築する(Windows, Mac)
抽選ツール③
***抽選結果***をエクセルに書き出し、自動でエクセルを開くように、**抽選ツール**を改良しました。
“`python3
####################################################
### お題抽選ツール
#####################################################ランダムモジュールを呼び出す
import random
import openpyxl
import subprocess#配列を定義する
array1 = []
array2 = []
#人数変数
N = 0
#エクセルファイルのファイル名変数
out_file = “prezen1.xlsx”
wb = openpyxl.load_workbook(out_file)
#書き込むワークシートを定義する
ws = wb[‘select’]
#行数の定義
start_row = 3#正の整数が入力されるまで繰り返す
while True:
try:
N = int(input(“登録人数を指定し
AND+OR Python3編
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__bool_boss
空気を読まないで問題だけ見て考えた答案(汗)
“`py
X,Y,Z = map(int,input().split())
if Z >= 10:
print(‘YES’)
else:
if X >= 10 and Y >= 10:
print(‘YES’)
else:
print(‘NO’)“`
いや実際問題見たらまず先にZが10以上かどうかを調べないといけないってことじゃんかって思うのだけど、
ORの役割をちょっと考えると
たとえば、AがTrueだったら、BがFalseでもTrueでもOrでつながると全体としてTrueになるんですよね。
さらにPythonだと、andのほうがorよりも優先される性質があるそうです。
だからこれを利用すると、3つ同時に書けちゃうという。もはや優先順位をつける括弧もいりません。
私もなるほどと思いました。“`py
抽選ツール開発②
***抽選ツール***を改良して、名前とお題を結びつけるようにしました。
“`python3
####################################################
### お題抽選ツール
#####################################################ランダムモジュールを呼び出す
import random
#配列を定義する
array1 = []
array2 = []
#人数変数
N = 0
#正の整数が入力されるまで繰り返す
while True:
try:
N = int(input(“登録人数を指定してください\n”))
if N <= 0: raise ValueError("error!") else: break except ValueError as e: print("文字列、小数、負の整数、0を入力しないでください") print("正の整数を入力してください") #配列に名前を登録する for
【Python】math関数を使った切り上げ・切り捨て・偶数丸め(≒四捨五入)の除算
# 概要
Python3では、設計上、整数同士の除算でも結果が浮動小数点数として返されることになっています。本記事では`math`を使ったサンプルコード、実数除算と整数除算、情報落ちなどについて解説します。# 除算では割り切れる場合でもfloat型になる
公式ドキュメントでも以下のように記載されています。
> 除算 (/) は常に浮動小数点数を返します。 // 演算子は 整数除算 を行い、整数値を返します; 剰余は、% で求めます。:
引用元:[3.1.1. 数¶](https://docs.python.org/ja/3/tutorial/introduction.html#numbers)以下ではわかりやすい例もあります。
>3 / 3 のように割り切れる場合でも、答えは整数の 1 ではなく、小数点以下が `0`のfloat型になります。
1.0
引用元:[整数と実数: ゼロからのPython入門講座](https://www.python.jp/train/type_and_func/float.html)Pythonでは(というか他の言語でも一緒と思われる?)
お題抽選ツール①
***お題抽選ツール***
お正月ということでお題抽選ツールを開発しています。
今回は入力と配列をランダムに並べる部分を実装しました
“`Python3
####################################################
### お題抽選ツール
#####################################################ランダムモジュールを呼び出す
import random
#配列を定義する
array1 = []
array2 = []
#人数変数
N = 0
#正の整数が入力されるまで繰り返す
while True:
try:
N = int(input(“登録人数を指定してください\n”))
if N <= 0: raise ValueError("error!") else: break except ValueError as e: print("文字列、小数、負の整数、0を入力しないでください") print("正の整
大文字判定 Python3編
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__bool_step2
これは解法が2つある
ひとつはそれぞれの言語で大文字判定メソッドがあればそれが使える
pythonの場合は`isupper()`(小文字は`islower()`)“`py
if str(input()).isupper() == True:
print(‘YES’)
else:
print(‘NO’)“`
(2024.01.04修正)
上記のような==TRUEというような書き方はPythonの書き方ではだめだそうです。
私もオリジナルのガイドを読んで初めて知りました。。。
なので修正しておきます。“`py
if str(input()).isupper():
print(‘YES’)
else:
print(‘NO’)“`
もう1つはUnicordの番号を調べる方法
これは`ord()`を使う
つまり、大文字の”A”と”Z”の間になければOKってことですね
気象庁の緊急地震速報を受け取ってDiscordに通知する
# はじめに
緊急地震速報をDiscordに通知するBotはかなり見かけますが、いろんなサーバーで使われてるだけあって遅延がありますよね…
あ、自分で動かせばいいんじゃね?
# ということで…
緊急地震速報を通知するものを作っていきます。
他サーバーに送信する予定が無いのであればWebhookで大丈夫そう。
# 処理の流れ
1. 緊急地震速報を配信するTCPサーバーから緊急地震速報を受信
2. Pythonで人間が読みやすいように処理
3. Discordに送信
# プログラム
webhook_urlを変更してから動かして下さい。
“`python
import time
import socket
import requests
import math
import base64
import json
import gzip
import threading
import xml.etree.ElementTree as ET
from datetime import datetime, timezonenolog_types = [“PING”, “PONG”, “
第5回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!
# 第5回
今回は、資料を元に回答するwebアプリを作成しました。
参考URL:https://blog.streamlit.io/langchain-tutorial-4-build-an-ask-the-doc-app/
GitHub:https://github.com/s1932072/LangChain-tutorial-4“`Python:main
import streamlit as st
from langchain.llms import OpenAI
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.chains import RetrievalQA
from langchain.embeddings import HuggingFaceEmbeddings
import osos.environ[“TOKENIZERS_PARALLELISM”] = “false”
cla
[Python][Julia]Project euler7 (プロジェクトオイラー7)
#### Project euler Ploblem 7 (プロジェクトオイラー7)
[10001st Prime](https://projecteuler.net/problem=7)備忘のために残しておく。
## 問題
#### 問題文 (意訳)
素数をはじめから順に6個並べると、2,3,5,7,11,13。6番目の素数は13だとわかる。
10001番目の素数は?#### 原文
By listing the first six prime numbers: 2, 3, 5, 7, 11 and 13 , we can see that the 6th prime is 13 .What is the 10001st prime number?
## 解答
#### 答え
104743####解答の方針
エラトステネスのふるいを使って10001個より大きい素数のリストを作成し、10001番目の素数をリストから取り出す。#### Pythonのコード
“`Python:Python Ploblem7
def eratosthenes(n
[Python][Julia]Project euler6 (プロジェクトオイラー6)
#### Project euler Ploblem 6 (プロジェクトオイラー6)
[Sum Square Difference](https://projecteuler.net/problem=6)備忘のために残しておく。
この問題は、手計算可能でコードを書く必要がなかった。
(一応、コードは載せている)## 問題
#### 問題文 (意訳)
100までの自然数の和の2乗と自然数の2乗の和の差を求めよ#### 原文
The sum of the squares of the first ten natural numbers is,
“`math
\begin{align}
1^2 + 2^2 + … + 10^2 = 385
\end{align}“`
The square of the sum of the first ten natural numbers is,“`math
\begin{align}
(1 + 2 + … + 10)^2 = 55^2 = 3025
\end{align}
“`
Hence the difference
[Python][Julia]Project euler5 (プロジェクトオイラー5)
#### Project euler Ploblem 5 (プロジェクトオイラー5)
[Smallest Multiple](https://projecteuler.net/problem=5)備忘のために残しておく。
## 問題
#### 問題文 (意訳)
1~20の全ての数字で割り切れる最小の数は?
(1〜20の最小公倍数は?)原文
2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20 ?## 解答
答え232792560最小公倍数を計算するだけ
#### Pythonのコード
“`Python:Python Ploblem5
# SymPyモジュールで最大公約数、最小公倍数を計算する
impo
第4回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!
# 第3回
今回は要約アプリを実際に使ってみました。
参照URL:https://blog.streamlit.io/langchain-tutorial-3-build-a-text-summarization-app/
GitHub:https://github.com/s1932072/LangChain-tutorial-3/tree/main
“`Python:main.py
import streamlit as st
from langchain import OpenAI
from langchain.docstore.document import Document
from langchain.text_splitter import CharacterTextSplitter
from langchain.chains.summarize import load_summarize_chaindef generate_response(txt):
# Instantiate the LLM model
llm = OpenAI(base_u
RealSenseで点群を取得する方法
Intel RealSenseは、深度センサーを使って3Dスキャンを行い、周囲の環境を3Dで捉えることができます。点群取得は、物理的な物から点を捉え、その3D表現を作成する物です。本記事では、Intel RealSenseを使用して点群を取得する方法を取り扱っていきます。
## 1: 必要な物
RealSenseデバイス: RealSenseデバイス(例えば、D415、D435など)が必要です。
RealSense SDK 2.0:動作確認用に [Intelの公式サイト](https://www.intelrealsense.com/sdk-2/)からRealSense SDK 2.0をインストールしてください。(なくてもOK)
Python: Pythonがインストールされていることを確認してください。
pyrealsense2: Python用RealSenseライブラリをインストールしてください。
“`
pip install pyrealsense2
“`
numpy: numpyインストールしてください。
“`
pip install numpy
“`
numpy:
pip install pyrealsense2で対応するバージョンがないと言われた時の対処法
pythonでのRealSense開発環境を整えようとpip install pyrealsense2を実行した際に以下のようなエラーが出る場合があります。
“`
ERROR: Could not find a version that satisfies the requirement pyrealsense2 (from versions: none)
“`
このようなエラーの意味はpythonのバージョンに対応するライブラリが存在せずインストールができないという意味となります。そのためまずは、以下のPythonのバージョン確認コマンドでPythonのバージョンの確認を行ってください。
“`
python –version
“`
実行するとPythonのバージョンを確認することがで来ます。
次に[pypi](https://pypi.org/project/pyrealsense2/#files)のパッケージ検索でpyrealsense2のライブラリを調べます。Built Distributionsという項目にあるpyrealsense2のライブラリを確認します。名前の真
第3回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!
# 第3回
# テンプレートの実装
前回、ユーザーからの入力内容について、返答を行うLLMwebアプリを作成した。
参考URL:https://blog.streamlit.io/langchain-tutorial-2-build-a-blog-outline-generator-app-in-25-lines-of-code/
プログラムの変更点はOpenAI APIではなくLocalLLMに繋いでいる点。
今回は”テンプレート”を用いてみたい。
これはテンプレートによって質問内容の大筋を決めてしまえる。今回は使用したプログラムをいかに示す
“`Python:main.py
import streamlit as st
from langchain.llms import OpenAI
from langchain import PromptTemplatest.set_page_config(page_title=”🦜🔗Blog Outline Generator APP”)
st.title(“🦜🔗Blog Outline Generator APP”)de
第2回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!
# 第2回! 簡単な実装編
# 初めの一歩
ここではLM StudioでローカルLLMサーバーを立て、そこにアクセスすることで動く簡単なChatBotを作成しました。
プログラムの内容はほぼ以下のURLと同じです。
https://blog.streamlit.io/langchain-tutorial-1-build-an-llm-powered-app-in-18-lines-of-code/変わった点はOpenAI APIを使用せず、ローカルLLMに繋いだ点のみです。
プログラムはGitHubにもあげました。
https://github.com/s1932072/LangChain-tutorial-1-Build-an-LLM-powered-app-in-18-lines-of-code“`Python:main.py
import streamlit as st
from langchain.llms import OpenAIst.title(‘🦜🔗 Quickstart App’)
def generate_response(input_t
RealSenseからIMUの情報を取得する方法
Intel RealSenseの一部には、内蔵されたIMUがあり、これを使用して加速度とジャイロスコープ(物体の角度、角速度、各加速度)のデータを取得することができます。本記事では、Pythonを使用してRealSenseからIMUの情報を取得する方法について取り扱っていきます。
↓実行結果
![スクリーンショット 2023-12-31 182106.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632959/94b09926-4526-6df0-22b2-bd00cc140d95.png)必要なもの
対応しているRealSenseデバイス: 例えばD435iなど、IMUが内蔵されているモデル。
RealSense SDK 2.0: 動作確認用に[Intelの公式サイト](https://www.intelrealsense.com/sdk-2/)からRealSense SDK 2.0をインストールしてください。(なくてもOK)
Python: Pythonがインストールされていることを確認してく
電気代を通知するLINEBotの開発【Part.1】
# 電気使用量を通知してくれるLINEbotを作ってみる
## 経緯
2023年8月、諸事情で引っ越しするにあたり、
[Octopas energy](https://octopusenergy.co.jp/friend/pure-duck-140)という電力会社に変更しました。
電気代支払いのためマイページにアクセスしたところ、開発者用APIを公開してくれていることを発見しました。
オクトパスエナジーの利用者の大半はこのことを気にも留めていないとおもいますが、
折角公式に提供してくれているので使ってみようと思います。## 概要
今回は電気使用量(電気代)を通知してくれるLINEbotを作成したいと思います。
近頃、電気代の高騰で家計にダメージを受けているので、可視化することで少しでも節約を意識できるようするため
(と言うのはあくまで建前で単に面白そうだから作ってみたいだけ…)## 開発環境
“`
Python: 3.8
Flask: 2.2.5
GraphQL: 3.4.1
line-bot-sdk: 3.1.0
“`
## やりたいこと
1.
RealSense入門: カラーとデプス映像の取得方法
Intel RealSenseは、デブスカメラの1つです。カラーカメラの映像とデプスカメラの映像を取得でき、これにより、3Dスキャンや物体検出などのタスクを実行できます。本記事は、Pythonを使用してRealSenseからカラーカメラとデプスカメラの映像を取得していきます。
必要な物
RealSense: Intel RealSenseカメラ(例:D415、D435)を用意してください。
RealSense SDK 2.0:動作確認用に [Intelの公式サイト](https://www.intelrealsense.com/sdk-2/)からRealSense SDK 2.0をインストールしてください。(なくてもOK)
Python: Pythonがインストールされていることを確認してください。
pyrealsense2: Python用RealSenseライブラリをインストールしてください。
“`
pip install pyrealsense2
“`
## 1: ライブラリのインポート
“`pyhon
import pyrealsense2 as rs
import n
プロジェクトごとのPython仮想環境を構築する(Windows, Mac)
プロジェクトごとのバージョンとパッケージの切り替えはvenvを使います。
## Windows
1. インストーラーを使って希望のバージョンをインストールする
https://pythonlinks.python.jp/ja/index.html
何が入っているかわからない場合は、「プログラムの追加と削除」を見たらわかります。
Windowsストアからもインストールできますが、ややこしいのであったら消しましょう。パスが通っている場合は `where python` で確認ができます。
※PowerShellの場合は `where.exe python`2. Windowsはpythonランチャーでバージョン切替可能
“`bash
#デフォルト
py -V
#バージョン指定
py -3.10 -V
#pyのpip
py -m pip -V
“`3. venvで仮想環境を作る
プロジェクトフォルダを作りその中で仮想環境作成
“`bash
# バージョン指定なし
py -m venv .venv
# バージョン指定する場合
py -3.10 -m venv .ve