Python関連のことを調べてみた2023年04月06日

Python関連のことを調べてみた2023年04月06日

androidでpython

# 概要
androidでpythonやってみた。

# 手順
uaerlandアプリをインストール
ubuntu18.04を起動
nano hello.py
“`
print(“hello”)

“`
python3 hello.py

以上。

元記事を表示

英語リスニング: youtube-transcript-apiとOxford Learner Dictionariesを用いて

## 本記事について

英語学習(リスニング)をする人向けのRepositoryを作りました.

– これを用いることで以下の利点があります.
– 簡単にYouTubeの対話や字幕 をlocalに保存できます.
– YouTubeの字幕をクリップボードにコピーし, 自動的に単語レベルが視認しやすいWebサイトを開くようにしたため,英語学習 効率を上げることが期待されます.

– github repository: https://github.com/makinzm/YouTube-Transcript

本記事では,これを作成する過程のアイデア出しの過程とモチベーションを説明します.

# 1. モチベーション

私はリスニングが苦手であるため, しばしばネイティブのYouTubeを見るように心がけていますが, 単語や文構造の点で挫折することが多いため,リスニングそのもののスキルは効率的に鍛えることができませんでした. そこで,リスニングに苦労する人向けのツールを作ろうと感じました.

# 2. なにがリスニングで重要か

リスニングに限らず,英語学習をす

元記事を表示

paiza.ioでpython その8

# 概要
paiza.ioでpythonやってみた。
オセロ見つけたので、やってみた。

# 参考にしたページ。

https://qiita.com/y-tetsu/items/a961a70cc431e7bb8664

# 実行結果

“`

– – – – – – – –
– – – – – – – –
– – – – – – – –
– – – o x – – –
– – – x o – – –
– – – – – – – –
– – – – – – – –
– – – – – – – –

– – – – – – – –
– – – – – – – –
– – – – o – – –
– – – o o – – –
– – – x o – – –
– – – – – – – –
– – – – – – – –
– – – – – – – –

– – – – – – – –
– – – – – – – –
– – – x o – – –
– – – x o – – –
– – – x o – – –
– – – – – – –

元記事を表示

paiza.ioでpython その7

# 概要
paiza.ioでpythonやってみた。
練習問題やってみた。

# 練習問題
俺言語仕様のインタープリタを実装せよ。
九九を実行せよ。

# 俺言語の仕様

 行番号、スペース、ステートメントの順
 代入文しか無い。
 数値は、0から255。
 行番号なしで、ダイレクト実行できる。
 行番号は、1から255。
 メモリは256バイト。
 ラインエディタあり。アペンド、インサート、ディル
 演算子は、+, -, /, *, %の5個。
 変数は、a,b,cの三個。

|コマンド| 意味|
|:–|:–|
|0|ソース表示|
|30|行30が消える|
|a=9|変数aに9を代入|
|?=$|乱数表示|
|#=1|行番号1から実行|
|?=”ok”|OK表示|
|#=120|120行へジャンプ|
|#=a<10*120|条件分岐、もし a<10 ならば 120行へジャンプ| |a=2+3*5|(2+3)*5で25が変数aへ代入。| |?=!|改行| #九九のソースコード ``` 10 a=1 20 b=1 30 ?=a*b 40 ?=" " 50 a=a+1 60

元記事を表示

【Python】横浜市の花粉飛散量予測モデル

# 0.目次
1.はじめに
2.開発環境
3.使用したデータ
4.予測モデル作成内容
 4-1.データの取得
 4-2.特徴量の追加
 4-3.訓練用データと検証用データ
 4-4.アルゴリズム
 4-5.評価
5.コード
 5-1.インポート、データのダウンロード
 5-2.データの前処理
 5-3.特徴量の追加
 5-4.特徴量の分析
 5-5.訓練データと検証用データに分割
 5-6.LightGBMで予測、評価
6.予測結果
7.おわりに
8.参考資料

# 1.はじめに
Aidemyのデータ分析講座の最終課題として毎春自分が悩まされている花粉の飛散量を予測するモデルを作成してみました。

# 2.開発環境
Windows 11 Home
Google Colaboratory
Python 3.9.16

# 3.使用したデータ
**[環境庁花粉観測システム](http://kafun.taiki.go.jp/index.aspx)の花粉観測データ**
* 期間:2012年~2020年(2月~6月)
* 拠点:横浜市
* データ内容:1時間ごとの花粉飛散量、降雨量、気温

元記事を表示

【PyTorch】RBMを自動微分で実装する

# Restricted Boltzmann MachinesをPyTorchの自動微分で実装する
目次
・[意気込み](#意気込み)
・[RBMの概要](#rbmの概要)
 - [自由エネルギーによる勾配計算](#自由エネルギーによる勾配計算)
・[実装](#実装)
 - [モデルの定義](#モデルの定義)
 - [学習](#学習)
 - [結果](#結果)
・[おわり](#おわり)
・[おまけ(色々な導出)](#おまけ色々な導出)

# 意気込み
Restricted Boltzmann Machines (RBM)はみんな大好きな手法で、調べればコードは腐るほどヒットしますね。
ただ、どれも手計算で得られる勾配を足し引きしてパラメータの更新をしてます。

そうするとモデルを弄ったりする度、自分で勾配を計算し直さないといけません。
マジでかったるいです。

なので今回は自動微分を使ってRBMを実装します。

# RBMの概要
“`math
\begin{al

元記事を表示

PythonでMo’s Algorithmを書いたよ

## コード
“`Python
“””Mo’s Algorithm

・使い方
mo=Mo(A,queries): インスタンス生成
ans=mo.ans: 各クエリに対する答えが順番に入ってるリスト
MoStatusの中のTODOのところは、問題ごとに変える

参考URL(ありがとうございます!)
ei3333さんの記事【https://ei1333.hateblo.jp/entry/2017/09/11/211011】
Nyaanさんの記事【https://nyaannyaan.github.io/library/misc/mo.hpp.html】
“””

import math
from operator import itemgetter

class MoStatus():
def __init__(self, max_element):
self.cnt = [0] * (max_element + 1)
self.val = 0

def add(self, element):
self.cnt[ele

元記事を表示

【RaspberryPi+Python】pingを利用してAndroid機器の死活監視をする

# 概要
ラズベリーパイから監視対象(今回Android端末)へpingを送信してタイムアウトすれば障害発生、通れば正常という判定をします。
今回は5秒おきにpingを送信し、これが5回連続で失敗した場合は障害としてLINE NOTIFYに通知を送るようにします。

# 作成したきっかけ
とあるスマホゲームで自動操作をさせているときにたまにOSの再起動が発生して自動操作が止まってしまっていたため、そのときは携帯電話に通知がしたいなと思いました。
ラズベリーパイを選んだのは省電力で動作することやPythonがデフォルトで搭載されているのでこれが良いのかなという考えからです。

# 使った物品
– Raspberry Pi 3b

# 準備
– LINE NOTIFYのAPIアクセストークン発行
– Python用の必要なライブラリのインストール
“`
sudo pip install pings
sudo pip install requests
“`

# コード
“`ping_monitoring.py
import pings
import requests
import t

元記事を表示

【テンプレ保存】loggingによるログ出力機能【Python】

# はじめに
Pythonでバッチ処理の実装などする際に必ず最初に作るログ出力機能を毎回作るのが面倒なのでコピペできるようにテンプレートを作りました。

# 実装テンプレート
loggerの定義や削除はlog_settings.pyという別ファイルにまとめてutilsフォルダに入れ、そこから呼び出しています。
main関数の引数にloggerを設定し、logger自体は最初に外で定義することで別ファイルから呼び出す場合などにもログレベルを別々に設定することができます。
logファイル名に日付を使用しているため、get_loggerの引数に今日の日付を入れています。

~~~python:main.py
import sys

sys.path.append(“””ここにプロジェクトディレクトリのパス”””)

import datetime
import warnings

from utils.log_settings import get_logger, kill_logger

def main(date, logger):
logger.info(f”処理開始 日付:

元記事を表示

ChatGPTで学習させた人格に公式LINEの返答をさせてみた

# 今回の要望
今回この開発を行った経緯は、寿司屋の大将である愛宕大将さん@shotaatago(Twitter)が、自分のキャラクターを寿司屋の公式LINEの返答に組み込みたいという要望から始まりました。

現在公式LINEを用いて寿司屋の予約などの対応を行なっているが、そのラインの返答をより人間味があり、多様な回答パターンにすることで公式LINEに欠けていた面白さを増そうということになりました。

# 開発の流れ
今回使用するのは主に**OpenAI API**と**LINE Messaging API**です。
OpenAI API: 複雑な顧客からのメッセージにも対応でき、かつより人間味があり多様な回答パターンをAIが生成するため
LINE Messaging API: LINEで送られてきた返答をOpenAI APIに渡し、作成した返答をLINEに返すため

ChatGPTで学習させた人格に公式LINEの返答をさせるための3stepは
1.OpenAI APIを用いて人格を模倣した返答を生成できるようにする。
2.LINE公式アカウントで受信したメッセージをPythonで受け

元記事を表示

ChatGPTがEffective Pythonのプログラムを書けるか試してみた

## はじめに
ChatGPTはプログラミングに関して高い能力を発揮しているそうなので、自分もテストしてみました。

今回取り扱う書籍は以下のEffective Pythonです。

https://www.oreilly.co.jp/books/9784873119175/

Effective PythonはPython中級者から上級者が対象の書籍で、使いやすく理解しやすいテクニック(一部はかなりマニアック)が紹介されています。

この記事はChatGPTに敬意を示しつつも、今回は効率の良い実用的なPythonのプログラムを書くことができるかどうかを調べる目的で作成しています。

少しでも参考になれば幸いです!

## 関数のプログラム

### 2変数徐算する関数(項目20)
まず2変数を徐算する関数の作成を指示したら以下の関数が出力されました。

“`Python
def divide_numbers(num1, num2):
return num1 / num2
“`

この関数は、`num2=0`の時にエラーを吐くので例外処理が必須ですが、ChatGPTはdef

元記事を表示

楽天のマーケットスピード II RSSで市況情報リストを作る

楽天証券のマーケットスピードII RSSは、エクセルのセルにRSSの関数を入力することで株価などの市況情報を表示させることができます。

どれだけの銘柄があって、株価や、PBRがどれくらいで、購入金額がいくらになるのか気になったので、pythonで、エクセルにRSSの関数を自動で入力させて、全証券コードの株価などの市況情報リストを作ることにしました。

(注)プログラムの実行前に、マーケットスピードのログイン、エクセルでのRSSに接続を行っておく必要があります。

“`Python
#プログラム実行前に次の1と2が必要です

#1. マーケットスピードIIのログイン
#2. エクセルを起動 空白のブックを開く。RSS接続する。

#3. このプログラムを実行する
#4. 開いているエクセル画面を出し、プログラムが終了するまで待つ
#5. 終了したら、作成し保存したリストを確認する

import win32com.client
from openpyxl import Workbook

try:
xl = win32com.client.GetObject(Class=”

元記事を表示

【Python自分用メモ】例外処理まとめ

## はじめに
Pythonの例外処理について本で読んだ内容をまとめました。

## try文のいろいろな書き方

try節の中で例外が発生した場合、try節から抜けてexcept節に移る。
発生した例外に一致するexcept節の文を実行後にtry文の外側に移る。
“`python:try文(一つの例外処理)
try:
(例外が発生する可能性のある処理)
except 対象の例外:
(指定した例外が発生した場合に実行する処理)
“`

try文ではexcept節に複数の例外を指定可能。
“`python:try文(複数の例外を処理1)
try:
(例外が発生する可能性のある処理)
except 対象の例外A:
(例外Aが発生した場合に実行する処理)
except 対象の例外B:
(例外Bが発生した場合に実行する処理)
“`

“`python:try文(複数の例外を処理2)
try:
(例外が発生する可能性のある処理)
except (例外1, 例外2, …):
(対象の例外のいずれかが発生した場合に実行する処理)

元記事を表示

実験自動化(Lab Automation)のススメ -client software編-

前回記事
https://qiita.com/notori48/items/519eeced7a1d9e7ee735
では、実験自動化(Lab Automation)のための物理NW構成について書きました。
今回は、client softwareの書き方についてまとめます。
Pyhonのpyvisa,telnetlibを使用します。

最初に、pyvsiaを扱います。ここで共通事項についても説明します。

# PyVISA

PyVISAは、VISAを用いてCLIによる装置制御を行うためのライブラリです。
https://pyvisa.readthedocs.io/en/latest/

VISAをたたくことで、装置I/F(Ethernet,GPIB,RS232,USB…)によらず
同じmethodで制御スクリプトを記述できます。

例を見てみます。

“`python
import pyvisa
rm = pyvisa.ResourceManager()
rm.list_resources()
(‘ASRL1::INSTR’, ‘ASRL2::INSTR’, ‘GPIB0::1

元記事を表示

【exe化】Python環境構築無しでPythonスクリプトを実行する方法

## はじめに
会社であるアプリケーションを誰にでも使えるように配布するため、exe化することになりました。
今回は、公式のマニュアルと下記の記事を参考に、
– exe化の簡単な説明
– “Pyinstaller”を使用した実行方法

を記載いたしました。

参考
[Pyinstaller公式マニュアル](https://pyinstaller.org/en/stable/)
[(TECH PLAY)PythonのスクリプトをPyinstallerでexe化する方法](https://techplay.jp/column/1646)

## Pythonスクリプトのexe化
Python環境を構築をしなくてもプログラムを実行可能にするもの。

## 仕組み
Python アプリケーションとそのすべての依存関係を単一のパッケージにバンドルする。
## 注意点
– 64bit OS環境で作成したexeファイルは32bitOSで利用不可。
– Python 3.7 以降をサポート
– 作成したexeファイルは、他のOSで実行できない

## 手順
①Pyinstallerのインストール

元記事を表示

dockerでStableDiffusionを動かしてみる

# docker で StableDiffusion を動かしてみる
## 今回の目標
* StableDiffusion (ver.1.4)を動かす。

## 環境
* macbookpro M2 (CPU10コア、32GBメモリ、GPUは使用しない)
* ※dockerで環境を作って動かすので、CPUとメモリ以外は関係ない
* dev_containerで構築した仮想環境上で動かす
* dockerでも利用可能

## 目次
* とりあえず動かしたい人向け(gitリポジトリあり)
* 自分で環境を作る人用のまとめ
* 参考資料

## 手順
1. docker仮想環境を構築する (リポジトリをclone)
2. StableDiffusionをインストールする (リポジトリをclone)
3. dockerを立ち上げ、latent-diffusion-0.0.1 をpipでインストールする
4. 好きなモデルをダウンロード&配置する
5. 完成!

## とりあえず動かしたい人向け(gitリポジトリあり)
(1) docker仮想環境を構築する (リポジトリをclone)

*

元記事を表示

Windows x Pyenv 環境構築

# 環境
OS:Windows11 (10でも同じ手順でOKなはず)

# おおまか手順 (当記事はpipでのやり方)
1.Pythonインストール
2.pyenv-winインストール
3.環境変数の設定
4.pyenvでPythonをインストール
5.global(デフォルト)で使用するPython指定

# 各手順

### 1.Pythonインストール
入れていればスルー

入れていない方は下記手順を順に行う

以下ダウンロードサイト
https://www.python.org/downloads/

「Downloads」⇒ 「Windows」(対象OS選択)

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/906162/731f0120-d665-0450-3e78-2ab6f58162a3.png)

バージョンは3.9当たりが安心なのでそこらへん選択
(今回は,3.9.13をインストール)
![2.png](https://qiita-image-store.s3.ap-nort

元記事を表示

物性研スパコンohtakaで結晶構造探索を行う

# はじめに
物性研スパコンのohtakaでCrySPYとQuantum ESPRESSOを使って結晶構造探索を行う.
動作確認程度のチュートリアル.詳細は[ドキュメント](https://tomoki-yamashita.github.io/CrySPY_doc/index.html)を参照してほしい.

– Python: miniforge3を入れる
– CrySPY: version 1.0.0.PyPIからインストールする
– QE: ohtakaにデフォルトでインストールされているものを使う

# 準備
## Python
ohtakaにはpython3のいくつかのバージョンがプリインストールされているが,どれもpymatgenが動かないので使わない.自分でminiforgeを入れる
https://github.com/conda-forge/miniforge
Miniforge3-Linux-x86_64は問題なくインストールできる.

## CrySPY
PyPIからインストール
“` bash
pip3 install csp-cryspy
“`
必要なラ

元記事を表示

Pythonで解くAtCoder Beginners Selection

1日でぶわぁぁぁぁぁぁっと解きました.

## PracticeA – Welcome to AtCoder

・標準入力を受け取るにはinput()を使う

~~~python
a = int (input())
b, c = map (int, input().split())

s = input()

print(a + b + c, “”, s )
~~~

最後の行は
~~~python
print(“{} {}”.format(a+b+c, s))
~~~
と書くと紛らわしくない.

## ABC086A – Product

~~~python
a, b = map (int, input().split())
c = a * b

def result(c):
if c % 2 == 0:
return(“Even”)

else:
return(“Odd”)

print(result(c))
~~~

## ABC081A – Placing Marbles

・list(input()) で, 一桁ずつのリストを作ること

元記事を表示

Pythonで解く『アルゴリズムと数学 演習問題集』(自分用)

## 2.1 節|数の分類・文字式・2 進法

これはさすがに!
### 001 – Print 5+N
~~~python
n = int(input())
print(5 + n)
~~~

### 002 – Sum of 3 Integers
~~~python
a1, a2, a3 = map(int, input(). split())
print(a1 + a2 + a3)
~~~

### 003 – Sum of N Integers
配列の入力受け取りの仕方がテーマ.

~~~python
n = int(input())
a_list = list(map(int, input().split()))

print(sum(a_list))
~~~

### 004 – Product of 3 Integers
最後は積!

~~~python
a1, a2, a3 = map(int, input().split())
print(a1 * a2 * a3)
~~~

## 2.2 節|基本的な演算と記号
### 005 – Modulo 100

ここまで

元記事を表示

OTHERカテゴリの最新記事