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

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

Pythonの開発環境を用意(Windows)

自分のPCで**ローカル環境を構築**します。

## 1. Pythonのインストール
以下のリンクから、Pythonの公式サイトにアクセスし、セットアップファイルをダウンロード。

https://www.python.org/

ダウンロードしたセットアップファイルを起動し、Pythonをインストールします。

## 2. Pythonが使えるか確認
Pythonを用いるには「**コマンドプロンプト**」と呼ばれるツールを用います。

PCの画面左下などにある検索バーに「コマンドプロンプト」と入力してください。「コマンドプロンプト」というアプリケーションが表示されたら、ダブルクリックで開いてみましょう。

すると、黒い画面が表示されます。

“`
C:¥Users¥username>
“`

この画面では、コンピュータに対して様々な処理を行うことができます。
今回はPythonがインストールされているかどうかを確認してみましょう。以下のコマンドを入力して、「Enter」キーを押してください。

“`
C:¥Users¥username>python –version
`

元記事を表示

LangChainを用いて大量ファイルをロードするVectorDBを作ってみた(6)

# はじめに
前回は、Chroma、FAISS、QdrantのVectorDBを用いて、chainlitを適用して生成AIから結果を出してみました。今回はもう少し質問を重ねて、その結果とスコアを確認していきたいと思います。

https://qiita.com/ogi_kimura/items/d1d263ece0e23c7d7576

では、行ってみます。

# いろいろ質問してみる
3つのVectorDBを用いて、生成AIに質問を4つ投げてみます。

##### 1問目「組み合わせ処置およびその方法」の特許を申請した会社は?
3つとも、真っ先に「日立製作所」と答えています。
正解は「グラクソスミスクライン、インテレクチュアル、プロパティー、ディベロップメント、リミテッド」
ブブー!!🙅

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3784222/a9549022-289e-2b3f-c8f7-759d5711a636.png)

##### 2問目「遊技機」というタイトルの特許を

元記事を表示

DQ1の「ふっかつのじゅもん」の仕組みを全解説

この記事では、ドラクエ1のふっかつのじゅもんの仕組みを完全解説しています。
全て読めばプログラムを組んだりできるように、順を追って丁寧に説明しました。
需要があるかどうかは分かりませんが、参考になればうれしいです。

:::note warn
(注)本記事は、ドラクエ1のネタバレを含みます。
:::

▼YouTube動画できました!じっくり学習したい人はどうぞ!

Python を使ったサンプルプログラムも用意しています。より詳細に知りたい場合は参考にしてもらえればと思います。

:::note info
サンプルプログラム(Google Colaboratory)
[ドラクエ1 ステータス→じゅもん ](https://colab.research.google.com/drive/1EhM2As0eWuGw-EfjVgBFidhKvQp3vWnm?usp=sharing)
[ ドラクエ1 じゅもん→ステータス ](https://colab.research.google.com/drive/1T84BOO1lyjp7

元記事を表示

週報2 今週の備忘録

– 今週は個人の開発関連のメモ更新がなかった。仕事のコードしか書いてなかったようだ。

# python
## tkinter
### フォントサイズ調整関連(styleとか)
– [Python3 Tkinter フォント設定 #Python3 – Qiita](https://qiita.com/ab-boy_ringo/items/cdd45230d90024b05b09)
– [tkinter超入門【第43回 ttk~Style】 | ITよろず雑記帳](https://mulberrytassel.com/tkinter-start-43/)
– [python 3.x – tkinter ttk style Layout not found – Stack Overflow](https://stackoverflow.com/questions/61547265/tkinter-ttk-style-layout-not-found)
– [python – How can i change the font on ttk.Entry – Stack Overflow](h

元記事を表示

Herokuでデプロイしようとしたら500エラー(Internal Server Error)が出た

# 500エラー出てしまった
[こちら](https://qiita.com/maooz4426/items/afe851f2f1d93ab8baeb)の記事でしようとしていた、Herokuでデプロイを行おうとしたら

![スクリーンショット 2024-05-24 23.37.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766230/b27090b6-d782-e778-71c5-0390e4f7b9cc.png)

と500エラーが出てしまいました。

# 原因
デプロイはできていたので、デプロイした際の設定かなと思い調べてみたら環境変数を設定していなかったのが原因でした…
下の画像を設定したらうまくいきました。
![スクリーンショット 2024-05-24 23.49.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766230/2bfdddbc-d673-8bcf-702b-81031cca11

元記事を表示

Value of writing super simple functions

I write python code at work to make my life easier.
I help implement Asset Management Analytics calculation system.
Asset Managers rely on many analytics such as duration, yield to make informed investment decisions.
The system my company sells to other Asset Managers can calculate such analytics.
When new users buy our system, we have to run analytics on their holdings.
This involves running perl script, which is a wrapper around core analytics program written in C++.
My job is to construct com

元記事を表示

中学入試レベル平面図形「意外と難しい角度問題(youtube)」をsympyとFreeCADでやってみたい。

・問題文は2次元ですが、3次元FreeCADのマクロで、XY平面上に作図しました。
・今回私は、FreeCADの操作で寸法線が書けるようになりました。(自慢しています。)

# オリジナル
(0:00〜5:26)

# sympyで(オリジナル 様の方法で)
・??? 勉強中

# sympyで
>sympy docより
https://docs.sympy.org/latest/modules/geometry/lines.html#sympy.geometry.line.LinearEntity.angle_between
“`python
from sympy import *
s=1
A,B,C,D=map(Point,[(0,s*2),(0,0),(s*2,0),(s*2,s*2)])
E,F,G =map(Point,[(s,s*2),(0,s),(s*3,0)] )
# H
I =Line(C,E).intersection(Line(F,G))[0]
# J
print(“#”

元記事を表示

競プロ 入力の受け取り方法まとめ【Python】

## 基本の関数
### input()関数
**input()** は1行を文字列として読み込む関数である。
以下のように「1 2 3」と入力したとき、文字列 ’1 2 3’ と読み込む。
“`Python:
# 1 2 3

a = input()
print(a)

# 1 2 3
“`

## 空白区切りの文字 n 個の入力を n 個の変数に格納する
**split()** 関数を用いて、入力された文字列を空白区切りを基準に分割する。
以下のように「1 2 3」と入力したとき、各変数に各入力値を格納する。
“`Python:
# 1 2 3

a, b, c = input().split()
print(a)
print(b)
print(c)

# 1
# 2
# 3
“`

## 空白区切りで文字列のリストを取得する
**a = input().split()** と記述したとき、入力された文字列は空白区切りで分割されてリスト a の要素として格納される。
“`Python:
# 1 2 3

a = input().split()
print(a)

#

元記事を表示

Jupyter NotebookがVSCodeで開かれてしまう

# はじめに
こんにちは、ユーゴです。今回は、Jupyter Notebookを使用していた時に起きた課題について紹介します。
私はすぐに原因に気づけましたが、沼にハマっている人の助けになれれば嬉しいです。

# 課題
ターミナルから、以下のコマンドを実行

“`bash
jupyter notebook
“`

すると、jupyterがvscodeで開かれる

![jupyterがvscodeで開かれる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/7de42688-65e9-f8bc-b16e-a30e9405a6a0.png)

# 原因
どれでもいいですが、htmlファイルの情報を見ると、「このアプリケーションで開く」がVSCode選択されているのが分かります。
![原因.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/f2789118-a011-5f57-9ec2-ba6d

元記事を表示

Streamlit 1.35.0の新機能紹介

## Streamlitとは

StreamlitはPython向けのWebアプリケーションフレームワークです。

https://streamlit.io/

Streamlitを使うとフロントエンドの知識ゼロでもデータを可視化するためのWebアプリケーションを簡単に作れます。以下のような機能が特徴。
– 変数を地の文に書くだけで、GUIに出力される(**マジックコマンド**)
– `st.radio`や`st.text_input`のようなWidget APIを呼び出すだけで、GUIコンポーネントが生成される

## Streamlitの最新バージョン

Streamlitの最新バージョンは[Changelog](https://docs.streamlit.io/library/changelog)で確認できます。
2024/1/31時点で最新バージョンは1.35.0です。

https://docs.streamlit.io/library/changelog

1.35.0では次がHighlightsとしてアナウンスされています。

– チャートのSele

元記事を表示

『Pythonで学習させたモデルのCコード化』ができない男は全員タマ無し。弱いって

# はじめに
諸事情により、Pythonで学習させたモデルのCコード化をする必要が出てきたので、まとめる。

とりあえずこのページでは、以下で紹介したLSTMモデルをCコード化するときの過程を紹介する。

https://qiita.com/yamo1116/items/4b8544ac76f69dbd7f99

# 前準備
Pythonで学習したモデルをCコード化する場合は、
事前にkeras2cというライブラリをインストールしておく必要がある。

keras2cは、Pythonの他のライブラリと違って、「pip install ~」のノリで取得する感じではないらしい。

インストールしたい場合は、以下のコマンドをコマンドラインで入力しましょう。

“`
git clone https://github.com/f0uriest/keras2c
“`
“`
cd keras2c
“`
“`
pip install -r requirements.txt
“`
↑のコマンドを実行すると、カレントディレクトリに「keras2c」というフォルダが作成されます。この中にkera

元記事を表示

Jupyter Notebook を関数化するライブラリを作成しました

## はじめに

Jupyter Notebook で作成した一連の処理を関数化できるライブラリ[`nbtof`](https://github.com/Nodaka/nbtof/tree/main)を作成しました. `#@~` マークを Notebook の各セルに記述するとNotebook の処理に対応した関数が取得できます. 例えば, 以下の **sample.ipynb** を関数化する時は

**sample.ipynb**

“`python
#@param
a = 1
b = 1
“`
“`python
c = a + b
“`
“`python
#@ignore
print(a, b, c)
“`
“`python
#@return
c
“`

下記を実行することで関数化された **sample.py** を取得することができます.

“`python
import nbtof

nbtof.nbtof_generate(
notebook_name=’sample.ipynb’,
func_py_name=’sample.py’,

元記事を表示

VSCodeでファイル検索がもっと便利になるかもしれないツール

VSCodeで「ctrl + F」でファイル検索するとき、
エクスプローラ上でフォルダ展開していないと、
検索したいファイルがどこにあるかわからなくて困った…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2261995/0b46f155-1e39-e344-80e6-b632ef133618.png)

そんなときは、この「すごいツール!」(小並感)を用いてファイル検索をおこなうと、目的のファイルがどこにあるかを調べることができる。

これが「すごいツール!」のソースコード.
“`python
“””VSCodeでファイル検索を行う用の検索するモジュール”””
import glob
import os
import sys

from termcolor import colored

def search_file(path: str, target_file_name: str) -> tuple:
“””
Get the path name of t

元記事を表示

PythonのDockerfileをセキュアにするためのベストプラクティス

# はじめに

PythonのDockerfileを作成する際、ネット上で適切な情報が見つからず、試行錯誤することがあります。そこで、ここでまとめてみます。

# 完成品
“`Dockerfile
# 開発用ステージ
FROM python:3.11-bullseye AS developer

ENV PYTHONUNBUFFERED=1
WORKDIR /app

RUN apt-get update \
&& apt-get install -y –no-install-recommends \
bash=5.1-2+deb11u1 \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/*

COPY requirements.txt ./
RUN pip install –no-cache-dir -r requirements.txt

COPY . .

# ビルド用ステージ
FROM python:3.11-bullseye AS builder
WORKDIR /app

COPY

元記事を表示

比較演算子 in と not in の使い方【Python】

## 比較演算子 in と not in を用いて、ある要素が含まれるかどうかを判定する
### 基本的な使い方
以下のような形で記述する。
![Python 画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3780127/3119899f-db31-bab2-c4a8-3a3842dd9476.png)
in 演算子と not 演算子では in 演算子が優先されるため、not 要素 in 集合 と記述する際に、括弧は必要でない。

要素 a , 集合 B とする。
a が B に含まれるとき、a in B は True 、a not in B は False を返す。
a が B に含まれ**ない**とき、a in B は False 、 a not in B は True を返す。
### if 文での使い方
bool値(True / False)を返す比較演算子なので、if の後にそのまま記述できる。
“`Python:
list = [0, 1, 2, 3]
i = 2
if i

元記事を表示

Databricks にて共有アクセス モードを利用した場合の Pandas から Spark データフレームへの変換エラー:CANNOT_ACCEPT_OBJECT_IN_TYPE

## 概要

Databricks にて共有アクセス(shared access mode)モードを利用して、 int64 のカラムをもつ Pandas を double 型のスキーマを指定して Spark データフレームに変換すると下記のようなエラーとなるようです。本エラーは今後の Databricks の機能アップデートにより解消されるかもしれませんが、備忘録として残しておきます。対応方法としては、Pandas にて int64 を double に変換する方法とシングルユーザーアクセスモードを利用する方法があります。

> PySparkTypeError: [CANNOT_ACCEPT_OBJECT_IN_TYPE] `DoubleType()` can not accept object `1` in type `int`.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/74852664-73c1-e02b-fd24-d2201e1bb801.png)

## エ

元記事を表示

ろうとるがPythonを扱う、、(その23:ScapyでDNSフィルタリング)

# ScapyでDNSフィルタリング
Scapyでネットワークブリッジを構築し、ブリッジ内でDNSフィルタリングを実施してみた。

## ネットワーク
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/6244f8c8-6482-c880-dfe4-ede718b51a72.png)
ubuntu上にScapyによるネットワークブリッジを設け、そこでDNSフィルタリングを行う。ClientからはRouterをとおしてインターネットへアクセスする。(なお、ClientはRouter上で動作しているDHCPサーバーからIPアドレスを取得する。)

## DNSフィルタリング
フィルタリングとして、特定ドメインをブロックするもの。いわゆるブラックリストを作成し、Webアクセスなどが行えないよう制御する。

## ソースコード
### ブラックリスト
”blacklist.txt”というファイルにアクセスを許可しないドメインを記載する。なお、”.”(ピリオド)ではじまる場合、ワイルドカ

元記事を表示

pySerial :シリアル通信で受信データの前半部分が欠落するのでやってみたこと

#### 不具合:シリアル通信で受信データの前半部分が欠落する。

例:
”abcdefghijklmn” + 終了文字 というデータを受信したいが
“klmn” + 終了文字 しか受信できない。

なお、送受信の基本処理はpySimpleGUIで作った画面のボタンを押すことで制御し、受信処理はスレッドで回している。

“` serial.py
import PySimpleGUI as sg
import serial
import time
import threading

Ser = None #シリアルポート

def open_port(s_port):
ser = serial.Serial()
ser.baudrate = 9600
ser.timeout = 0 # 読み取りタイムアウトの時間 0:即座にタイムアウト
ser.parity = serial.PARITY_NONE
ser.bytesize = serial.EIGHTBITS
ser.stopbits = serial.STOPBITS_O

元記事を表示

文字列で与えられた数列を数字に分解する問題をpythonで解く

## 問題
– 1, 2, …, 99が並び替えられた数列$s$が以下のような形式で与えられたとき,コンマ区切りで数列を出力せよ.
– 例
– 入力
“`
194844479992885193431281672755538710981664457433843176692585632179368224916037252154184211658086419457126285078707285638157343020599675354922614657775295148733139079401662636483232968398997
“`
– 期待される出力
“`
19,48,44,47,99,92,88,51,93,43,12,81,67,27,55,53,87,10,98,1,66,4,45,74,33,84,31,76,69,2,58,56,32,17,9,36,82,24,91,60,37,25,21,54,18,42,11,65,80,86,41,94,5,71,26,28

元記事を表示

ラジオの録音、してる? radiko python ffmpeg

# はじめに

#### ラジオは生で聴いて楽しむもの

なんですが、、、

#### あの伝説の回をもう一度聴きたい!

なんてこと、よくありますよね〜

え、ない?私はありますよ。

そんな人にとっておきのサービスがあります。

#### そう、[オールナイトニッポンJAM](https://annjam.jp/ “神サービス”)です。

オールナイトニッポン限定なんですが、神サービスここに爆誕って感じですね。

**でもTBSラジオにも、TOKYOFMにも、RadioBerryにも、FMFUJIにも、後になって聞きたい番組たくさんあります。** 趣味全開ですが、、、

## ラジオを自分で録音すればいいじゃないか!!!

単純なことですね。

昔の人は、アナログラジオから直接録音する方法を熟知しているみたいです。

しかし私はアナログラジオなんて中学生のときに親からラジオ英会話を強制されたときから触っていません。

Radiko一筋なのです。

**だから、Radikoの音源をダウンロードして録音をしようではないか!**

となったわけです。

ネットサーフィンをすると、どうや

元記事を表示

OTHERカテゴリの最新記事