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

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

メモ

#### PyCharm
操作|ショートカット
–|–
名前の変更|Shift+F6
設定画面|Ctrl+Alt+s
コード選択範囲拡大|Ctrl+w

元記事を表示

Python 3.8 の導入 on Windows

# 最新版のダウンロード
Python3.8のBinary版の最新版を以下から探します。3.8.10: Monday, 2021-05-03 (final regular bugfix release with binary installers)がBinary版としては最新でした。

PEP 569 – Python 3.8 Release Schedule | peps.python.org

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/ed474bce-ea8a-26c8-0731-2fe1db878019.png)

Windows installer (64-bit)をダウンロードします。

https://www.python.org/downloads/release/python-3810/

![image.png](https://qiita-image-store.s3.ap-

元記事を表示

Raspbianにopencvを入れる方法

ラズパイのアップデートとアップグレードを行う。
「”’」

aaa

「”’」

元記事を表示

VSC経由でssh接続したLinuxマシン上でのvenv設定

似た記事は山ほどあると思うのですが、毎回調べるのが面倒で自分用にまとめました。

# 前提
– VSC経由でssh接続のLinuxマシン上での環境構築
– 公式のpython Extentionはインストール済み
– pyenvは設定済み

“`
$ pyenv versions
system
* 3.9.6
“`

# venv設定

venv作成
“`
cd [作業ディレクトリ]
python -m venv [任意のenv名]
“`
アクティベート
“`
cd [作業ディレクトリ]
source [任意のenv名]/bin/activate
“`

# VSCでの設定
[View]→[Command Palette]→[Python:Select Interpreter]
先ほど作ったenvを選択

# 上記のやり方でenvが出てこない場合
明示的にカーネルを追加する。
以下は、任意のenv名を”venv”とした場合の設定方法。他にvenvという名前の環境があると上書きしてしまうことに注意。
TERMINALで以下を実行
“`
(venv)$ ipyth

元記事を表示

Pythonでもeval/exec is evil

# はじめに

eval関数およびexec関数はPythonの組み込み関数で、詳細はさておき文字列をコードとして実行することができます。同様の関数はインタプリタ方式の言語に広く用意されており、私が知っている限りではJavaScriptやRubyに搭載されています。

しかし、この関数はほとんどの場合で利用すべきではありません。一般的に**eval is evil**といわれています。Pythonでも例外ではないはずです。

# 利用例その1

ユーザーから入力された文字列を加工してprint関数で表示する関数を考えます。

“`python
import sys
input = sys.stdin.readline().rstrip()

exec(f”””
def print_input():
print(f’★{input}★’)
“””)

print_input()
“`

“`
> python print_input.py
入力しました!
★入力しました!★
“`

evalを使用したこのコードは、**とても危険**です。たとえば、入力が以下のような文字列だ

元記事を表示

Python w/ kakasi でラップの歌詞を母音へ一発分解できるようになった!

pykakasiを利用して、ラップの歌詞を母音分解して、韻を確認できるようにしました!

https://cadmi-diary.net/%e8%a8%88%e7%ae%97%e6%a9%9f%e7%a7%91%e5%ad%a6/python-w-kakasi-%e3%81%a7%e3%83%a9%e3%83%83%e3%83%97%e3%81%ae%e6%ad%8c%e8%a9%9e%e3%82%92%e6%af%8d%e9%9f%b3%e3%81%b8%e4%b8%80%e7%99%ba%e5%88%86%e8%a7%a3%e3%81%97%e3%81%9f%ef%bc%81/

元記事を表示

[Python] PyAutoGUI 画像認識のクリック・待機処理を関数化

作ったプログラムの備忘録

# はじめに
* PyAutoGUIで画像認識させてクリックや待機処理をする際に、同じコードをコピペしまくるのはよくないので関数化
* どのレベルで関数化するかは好みによるかもしれないが、個人的に便利な引数での設定をメモとして記載
## 動作テスト環境
OS: Windows 10 Pro 64bit
言語: Python 3.9.13
ライブラリ:PyAutoGUI 0.9.53

# ソースコード
“`Python:
import pyautogui
“`
* インポート
## 待機
“`Python:
def wait_img(img):
for tryCount in range(300):
try:
if pyautogui.locateOnScreen(f’./img/{img}’, grayscale=True, confidence=.8):
break
except pyautogui.ImageNotFoundException:

元記事を表示

最強の言語モデル(LUKE)をファインチューニングしてQAタスクを解くモデルを作成してみた

こんにちにゃんです。
水色桜(みずいろさくら)です。
今回は現在(2023年1月)、世界最高精度を有している言語モデルであるLUKEをファインチューニングして、Question-Answeringタスク(SQuAD、狭義の質問応答)を行ってみようと思います。
作成したモデルは[こちらのサイト](https://huggingface.co/Mizuiro-sakura/luke-japanese-base-finetuned-QA)で公開していますので、もしよろしければ使ってみてください。
今回も初心者でもたった**2ステップ**(ステップ1:必要なライブラリのダウンロード、ステップ2:コードのコピペ)で簡単に使えるようにしてあります。
このモデルを使えばチャットボットなども作成することが可能です。

https://huggingface.co/Mizuiro-sakura/luke-japanese-base-finetuned-QA

# 環境
torch 1.12.1
transformers 4.24.0
Python 3.9.13
sentencepiece 0.1.97

元記事を表示

リニューアル後のEDINETからEDINETコードリストを取得する

## EDINET、EDINETコードリストについて

https://disclosure2.edinet-fsa.go.jp/WEEK0010.aspx

EDINET、EDINETコードリストについて、詳細は EDINET の[操作ガイド等](https://disclosure2dl.edinet-fsa.go.jp/guide/static/disclosure/WZEK0110.html)を参照してください。
本稿で扱う EDINETコードリストは上場企業の一覧などを簡単に取得できることから機械的な取得手段を解説する記事が Qiita 上含め、複数存在します。

https://qiita.com/9uant/items/d15f8b97a9b2b84671fd

## EDINET のサイトリニューアルとそれによって発生した問題

しかし、EDINET サイトは 2023 年 1 月 4 日に全面的にリニューアルされてしまいました。
旧EDINET はサイトの拡張子が jsp だったのが新EDINETでは aspx になったのでサーバーサイドは Java から C

元記事を表示

手のポーズで操作するコントローラを作ってみた

# はじめに
手のポーズを使って人が簡単にゲーム(gym環境)を操作できるコントローラを作成しました。保存したプレイデータは以下の**模倣学習**や**逆強化学習**に使用することができます。

![supervised_perspective.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624261/9aa01198-e0c4-8aec-3711-7fc67de1e51f.png)

# 完成したもの
本コントローラを使うと、手のポーズを使って複数の連続値をリアルタイムで入力することができます。
左が強化学習の環境、真ん中が認識結果、右が3次元座標上にプロットした手です。
![lunar.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624261/d492e155-ae08-d6a0-9893-25afe37a7892.gif)
![robogym.gif](https://qiita-image-store.s3

元記事を表示

【TwitterAPI】FF比が小さいフォロワーを自動でリムる【Ver.1.1.0】

### 詳細は[前記事](https://qiita.com/shuki/items/4ba5aaecb54b3d250af5)参照

# Ver.1.1.0 アップデート内容
– ホワイトリスト機能の追加
– CSVファイルを編集する必要がなくなった
– SettingsのUI改善
– 高速化

# 手順(最新版)
1. [Twitterのフォロワーリスト一括ダウンロード](https://mugen-tools.com/tools/twittergetallfollower.php) にて自分のフォロワー一覧をCSVファイルで取得。

2. 以下のPythonコードをローカル環境にて実行。
pandasをinstallしていない方は `pip install pandas` を事前に行ってください。
GitHubにもアップしてます → https://github.com/Asa-Shu/twitter-bot

~~~Python:unfollow_1.1.0.py
import tweepy
import time
import pandas as pd

# Settin

元記事を表示

【テックジム】ゼロからはじめるPython入門講座の感想

テックジムが無料で開催している、ゼロからはじめるPython入門講座をオンラインで受講してみました。たった2時間ですが、Pythonを使い、関数を書いてみるところまで網羅していて、非常に勉強になりました。Python初心者で、ProgateやPaizaしかやったことがない、私のような人がいれば是非挑戦してみてください。気づきがあるはずです。

ゼロからはじめるPython入門講座 0:サンプルソースを動かしてみる(テックジム チュートリアル)
ゼロからはじめるPython入門講座 1:インデントの説明(テックジム Py1-1))
ゼロからはじめるPython入門講座 2:条件分岐文を書いてみる(テックジム Py1-1解説、Py1-2)
ゼロからはじ

元記事を表示

tensorflowでGPUを使う設定(Anacondaを使用)

# はじめに

tensorflowでGPUを使用するためには、使用するtensorflowのバージョンに合わせてCUDAやcuDNNをインストールする必要がある。

以前にその設定をする記事も書いていた。

https://qiita.com/tatsuki1119/items/f56c4dfdcdfe55e8341e

しかし、[こちらの記事](https://qiita.com/ktokey/items/7ee9c112198a6b0b5709)を見てみると、Anacondaで仮想環境ごとにcudatoolkitとcudnnが付属したtensorflowをインストールして使用できるとのこと。

ということで実際に試してみた。

**※先に結論から言うと、めっちゃ簡単にGPU使って学習ができる。condaが天才すぎた。**

# CUDAとcuDNN付きのtensorflowのインストール方法

バージョン2.10のtensorflowをインストールする場合、

“`
conda install tensorflow=2.10.*=gpu_*
“`

と実行することで、CUDA

元記事を表示

[Python]ABC285 レポ

# 要約
2完(A, C)
PyPyはいいぞ

# 個人的解説
## A – Edge Checker 2
`b`に対して`a * 2 or a* 2 + 1`と合致するか調べた
よく考えれば`a // 2`でよかった?

“`py
a, b = list(map(int, input().split()))
if a*2 == b or a*2+1 == b:
print(“Yes”)
else:
print(“No”)
“`

## B – Longest Uncommon Prefix
問題文が読めない!むずい!けど実装してみたら案外簡単だったやつ。

“`py
n = int(input())
s = list(input()[:])

for i in range(1, n):
l = 0
for k in range(n-i):
if s[k] == s[k+i]:
break
l += 1

print(l)
“`

…が、これで**TLE**。

元記事を表示

Fletを試す(1) – PythonでFlutterアプリが作れるフレームワーク

# はじめに

PythonでWebアプリ、デスクトップアプリ、モバイルアプリを作れるフレームワーク「Flet」の情報が流れてきて、興味を持ったので試してみることにした。

公式サイトはこちら。
https://flet.dev/

詳しく解説してくれている記事はこちら。
https://qiita.com/NasuPanda/items/48849d7f925784d6b6a0

「Flet」は以下の点で良さそうに思いました。
– Pythonだけで全部作れる
– HTMLもJavascriptも不要
– アプリの見た目も良い
– 中身はFlutter
– 1ソースで、マルチOS、マルチ端末に対応できる
– 「Fly.io」でアプリの公開も可能

# 前提事項

– 「Flet」に関する詳細は省略
– インストール方法、実行方法、デプロイ方法なども省略
– 試した環境
– Windows10
– Python 3.10.8
– Flet 0.3.2

# 概要

公式サイトなどを参考に以下をやってみた。
– Fletで簡単な画面レイアウトを作成してみる
– 全

元記事を表示

[Python] Pythonでオブジェクト指向を完全理解してみる

### そもそもオブジェクト指向プログラミング(OOP)とは?

オブジェクト指向プログラミング(OOP)には、次のような特徴があります。

**1. オブジェクト指向**
オブジェクトベースのプログラミング言語であり、プロパティや振る舞いを持つオブジェクトを基にプログラムを構築します。
**2. 継承**
クラスが他のクラスからプロパティや振る舞いを継承することができます。
**3. ポリモーフィズム**
同じメソッドが異なる型のオブジェクトに対して適用され、それぞれのオブジェクトによって異なる実装を持つことを意味します。
**4. カプセル化**
オブジェクトのプロパティや振る舞いをカプセル化し、外部からの直接アクセスからオブジェクトの内部プロパティを保護することができます。
**5. 抽象化**
オブジェクトの実装の詳細をユーザーから切り離し、ユーザーはオブジェクトのパブリックインターフェースだけを知っていればよく、その実装を知る必要はないようにします。

### オブジェクトがプロパティと振る舞いを持つとは
オブジェクトが2つの異なる特性を持つということです。
プロパティは

元記事を表示

AtCoder Beginner Contest 285 A〜C問題をPythonで解いてみました

AtCoder Beginner Contest 285 A〜C問題をPythonで解いてみました

[ABC285(AtCoder Beginners Contest 285)](https://atcoder.jp/contests/abc285)
A〜C問題をPythonで解いてみました。

– コードは雑めです。ゆるしてー
– 競技プログラミングの勉強一切したこと無いので、テクニックは知らないよ。ごめんねー

## [A問題](https://atcoder.jp/contests/abc285/tasks/abc285_a)(diff=11)
[提出コード](https://atcoder.jp/contests/abc285/submissions/38051466)
“`python
a, b = map(int,input().split())

if b == a*2 or b == a*2+1:
print(‘Yes’)
else:
print(‘No’)
“`

– パッと見ちょっと難しいんでは?って思うかもしれませんが、「これがA問題ということは発

元記事を表示

3Dマウスは高いので自作する。【Blender】【ラズパイPico/Arduino】

# はじめに
近年、VR/ARを活かしたビジネスからYouTubeを始めとしたエンタメ方面まで3Dモデリングの需要が急激に高まっています。
家庭用3Dプリンタも低価格で購入でき、個人宅で可能なものづくりの幅もかなり広がりました。
[Blender](https://www.blender.org/)などフリーソフトですら機能が大変充実し、[Fusion360](https://www.autodesk.co.jp/products/fusion-360)などの高機能な3DCADソフトウェアも学生・非商用利用では無料で使える時代です。
これだけ一気に需要が高まり、入門のハードルが下がった時代ですので、個人で/趣味で3Dを勉強し始めた方も少なくないでしょう。

そんな3D製作において、視点操作は作業時間の多くを占めていると思います。
それもそのはずで、その理由として2Dのモニタ上で3Dのデータを正しく認識し制御するには、同時に操作できる視点の動きの自由度があまりにも低いことが挙げられます。
マウスとキーボードの組み合わせでは平行移動(2次元)・拡大縮小(1次元)・回転(3次元)の動作をそれ

元記事を表示

loss, val-loss が nan になり、交差エントロピー関数の log の引数に 1e-7 を足しても nan が直らなかった問題。

 私は、OpneAI の Whisper の fine tuning を使ってみている傍ら、

https://tensorflow.classcat.com/2022/06/27/keras-2-examples-audio-transformer-asr/

のページのプログラムを日本語の単語を予測するように改修して精度を上げられないか試しています。そんな中で、学習させると、loss と val-loss が nan になってしまいました。

 交差エントロピーとは、

“`python
def cross_entropy_error(y, t):
delta = 1e-7
return -np.sum(t * np.log(y + delta))
“`

です。y = 0 だと交差エントロピーが nan になるので、delta = 1e-7 を足してやれば nan はでなくなると、ネットには書いてあり、最初、それに従って対応しました。しかし、nan が直らない。

 結局、原因は、y 自体が nan になっていることでした。上記ペーでは、

“`python

元記事を表示

変数の値を含んだ文字列を作成したいときはf文字列を使うとよい

# やりたいこと
変数の値を含んだ文字列を作成したい

# 結論
f文字列を使用するとよい(Python3.6以上に限る)

# 方法1: +演算子を使用する
## ソースコード
“`python
name = ‘太郎’
text = ‘私の名前は ‘ + name + ‘ です’

print(text)
“`
## 出力
私の名前は 太郎 です

# 方法2: format()を使用する
## ソースコード
“`python
name = ‘太郎’
text = ‘私の名前は {} です’.format(name)

print(text)
“`
## 出力
私の名前は 太郎 です

# 方法3: f文字列を使用する
## ソースコード
“`python
name = ‘太郎’
text = f’私の名前は {name} です’

print(text)
“`
## 出力
私の名前は 太郎 です

# 参考
https://note.nkmk.me/python-f-strings/

元記事を表示

OTHERカテゴリの最新記事