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

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

PythonのパッケージのアップデートをしようとしたらPIPが古いと相手にしてもらえなかった話

「見たことがないエラーはqiitaのネタになる」とは
古くから伝わる格言らしいです。嘘だけど。

cronで動かしているpythonのスクリプトがエラーを吐くようになり、
直そうとしたところ目にしたエラーです。

# やろうとしたこと
エラーの一部がhttpsに関係するところだったので、
もしかしたらパッケージのアップデートでお茶を濁せるんじゃないか、
なんて考えまして、とりあえず入ってるパッケージのリストを出力しようとしたところ、
次のようなエラーが出ました

“`
$ sudo pip3 list -o
Exception:
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py”, line 143, in main
status = self.run(options, args)
File “/usr/lib/python3/dist-packages/pip/_internal/commands/list

元記事を表示

s3にJSON読み書きを行うaws lambda に docker imageを cdkでデプロイしたメモ

[前回](https://qiita.com/hibohiboo/items/85b192ec15572c3dbffd)は代替ベースイメージからの作成を試した。
今回は、公式イメージを使ってS3へつないでファイルの読み書きを行うことをテストする。
[ソース](https://github.com/hibohiboo/aws-cdk-v2/tree/master/python-lambda-project)

## ディレクトリイメージ
“`
.
├─cdk
│ ├── bin
│ │ └── python-docker-lambda-s3.ts
│ ├── lib
│ │ └── python-docker-lambda-s3-stack.ts
│ └ package.json
└─python-lambda-project
├── s3Data
│ └── test.json
└─ s3
├── Dockerfile
├── lambda_function.py # lambdaで実行したいコード
└── requirem

元記事を表示

Pythonで「変数の定義と値の代入」の動作を確認してみた

# 概要

Pythonで「変数の定義と値の代入」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/python/var/index1.html

# 実装

以下のファイルを作成しました。
“`sample.py
old = 24
str = “Hello”
colorlist = [“red”, “blue”, “yerllow”]
num = 10
print(num)
address2019 = “Tokyo”
print(address2019)
年齢=25
print(年齢)
str = “Hello”
STR = “Python”
print(str, STR)
name = “Yamada”
name = “Tarou”
personal = “Yamada”
personal = 24
personal = “Yamada”
print(personal)
personal = “Tarou”
print(personal)
personal = 24
print(personal)
num = 10
pr

元記事を表示

Python Tkinterとラズパイで自分専用のダッシュボードアプリを作ってみる #1 やりたいこと整理

# 概要
机の上に
・デジタル時計
・室温湿度計
・カレンダー
が並んでおり、どうせなら一つのフォトフレーム的なディスプレイにまとめて、+アルファで天気予報、ニュース、も表示させたいと思い作成に望みました。

この記事はそのメモやまとめです。
すでに設定済みの項目がいくつかある。
試行錯誤しながらやったので、手順として不要かもしれない。**あくまでメモ用。**

# 実装したい内容とか整理
ざっくりしたものですと

https://qiita.com/Kazuya_Murakami/items/03c218f80377280f5b9f

この方のものに近いです。
画面を大きくして表示させる情報を増やしたイメージです。

pythonではTkinterというライブラリを利用すればこういったダッシュボード的なものを作成できるようですので、これを利用したいと思います。

また、以下のような機能を実装したいと思っています。
・室内の気温と湿度を測定し表示
・12時間分の天気予報を表示
・7日分の週間天気予報を表示
・カレンダーの表示
・現在の時刻の表示
・日本の主要ニュース10件のタイトルと要

元記事を表示

室内温度の予測モデル構築

# はじめに
実際に自分で集めたデータを用いて、機械学習の予測モデル構築をしたい。
自室の温度の予測モデルを構築することにしました。
その、データ取得からモデル作成、評価までの道のりを書きました。

この記事は、以下の記事と関係しています。

https://qiita.com/taiki-kuraishi/items/7739cffc79611d27045c

# 予測内容
– 説明変数
– 新潟県の気温(℃)
– 新潟県の湿度(%)
– 新潟県の降水量(mm)
– 新潟県の日射量(MJ/㎡)
– 新潟県の風速(m/s)
– 新潟県の気圧(hPa)

– 目的変数
– 室内温度(switchBot 温湿度計によって計測される室内の温度(℃))

# データの準備
– 気象庁のHPか新潟県のら気象データのダウンロード
– url : https://www.data.jma.go.jp/gmd/risk/obsdl/
– 地点 : 新潟県
– 期間 : 2023 年 10 月 10 日 ~ 2023 年 1

元記事を表示

sympy の primerange と sieve.primerange の違い

# はじめに

`sympy.ntheory.generate.primerange` と `sympy.ntheory.generate.sieve.primerange` はどちらも指定する範囲内の素数を列挙してくれる。

“`python
>>> from sympy.ntheory.generate import sieve, primerange
>>> list(primerange(3, 20))
[3, 5, 7, 11, 13, 17, 19]
>>> list(sieve.primerange(3, 20))
[3, 5, 7, 11, 13, 17, 19]
“`

ただし、
* `sieve`はメモリを確保する
* `sieve`は最大値が決まっている
* `primerange`は`sieve`を利用する

という違いがある。

# `sieve`はメモリを確保する

sieve(篩)という名前から予測できると思うが、`sieve`の裏にはエラトステネスの篩が実装されている。なので、例えば、

“`python
sieve.primerange(1000

元記事を表示

twilloでchat-GPTと電話で会話する

## chat-GPTと会話する
コールセンターでの活用に向けて、電話で会話してみたいと思いコードを書いてみた。
### 事前に必要なアカウント
2. chat-GPT(API🔑)
2. twillo
2. ngrok

“`python:main.py
from flask import Flask, request, redirect
from twilio.twiml.voice_response import VoiceResponse
import twilio.twiml
import time
import requests
from twilio.twiml.voice_response import Gather, VoiceResponse, Say
import openai
import json

OPENAI_API_KEY = “”
app = Flask(__name__)

def question(comment):
headers = {
“Content-Type”: “application/json”,

元記事を表示

エラトステネスの篩で素数を出力するpythonプログラム

エラトステネスの篩で素数を出力するpythonプログラムです。
`chmod +x sieve.py`
`./sieve.py `として実行してください。
“`sieve.py
#!/usr/bin/python3
import sys

def sieve(n):
tab=[_ for _ in range(2,n+1)][::-1]
l=[]
while (tab):
l+=[v:=tab.pop()]
tab=[_ for _ in tab if _ % v ]
return l

if __name__ == “__main__”:
if (len(sys.argv)!=2):
print(“Invalid argument.”)
print(f”Usage: {sys.argv[0]} “)
exit()
else:
n=int(sys.argv[1])
primes=sieve(n)
print (f”{primes}\nN

元記事を表示

ABC330回答メモ

# 0.はじめに
 B問題すら難しい感じのコンテストで、苦戦しました。
 どうにかABDを正解したものの若干レートを落として
 -9でした。

 E問題はもう少し頑張ればACもらえそうですが
 解説を丸々参考にして解いているのでここのメモは残さないでおきます・・。

# 1.A – Counting Passes
 さすがにA問題は単純な問題で
 リストを頭から見て、Lを超えている数を数える
 だけの簡単なお仕事でした。

 https://atcoder.jp/contests/abc330/submissions/47892558

# 2.B – Minimize Abs 1
 正直問題の意味が全く分からず、例題をみて、
 リストの値が、L以下ならL、R以下ならR、それ以外はリストの値
 ではないかと、直感的に思い実装したところ
 正解でした。

 https://atcoder.jp/contests/abc330/submissions/47903056

# 3.C – Minimize Abs 2
 コンテスト時は、XをDの平方根から1ずつ減らしていき
 それに合うY

元記事を表示

Djangoでshell_plusコマンドを実行する手順

# はじめに
Djangoで開発中に`python manage.py shell`などでインタープリタを開くことが出来ますが、さらに拡張された`shell_plus`というコマンドを最近知ったので情報をまとめておきます。

# shell_plusでできること
プロジェクト内の各モデルやDjangoでよく利用される関数をimportした状態でshellを開始することができます。
実際にshell_plusを実行すると`Django`内のモデルや関数のインポートが自動で実行されていることがターミナル上でも確認できます。
“`shell
(practical-django) akis@ipf:/mnt/c/Users/saki0/dev/practical-django/djangosnippets$ python manage.py shell_plus
# Shell Plus Model Imports
from django.contrib.admin.models import LogEntry
from django.contrib.auth.models import G

元記事を表示

python,mediapipe,tkinterを用いて悪い姿勢になったらデクストップ通知するアプリ_part2

メモ書き程度にしか記載していないためご了承下さい。
再度編集いたしますので、イメージだけでも掴んでいただきたいです。

今回も作成したアプリは、座った姿勢を改善することを目的としてしています。
mediapipeを用いることで、PC内蔵カメラから座った姿勢での鼻の座標を取得することができます。
そして、鼻の座標が連続で閾値(最初の3回の平均値)を超えた場合に
「姿勢が悪くなっています」とデスクトップ通知します。

以下は通知のイメージです。
![デスクトップ通知.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3559550/f7bc665d-21e4-1ea0-9c3f-99db6ffafc43.png)

以下はTkinterで作成したデザインになります。
![qiita_UI.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3559550/cf4e8a97-4f22-fd3c-59b2-41ebfec2c31a.png

元記事を表示

無料版Google Colabで、Kaggleの大容量データを扱う方法

# やりたいこと
– 無料版Google Colabで、Kaggleコンペの60GBのデータを扱いたい

# 参考にしたサイト
. Google Colab上からKaggleのデータセットに直接アクセスする方法
https://slash-z.com/google-colab-mount-kaggle-competition-dataset/#toc2

# 途中で失敗した内容

①KaggleDatasets().get_gcs_path() で時間切れ
→2回目を実行したらうまくいった。

②gcsfuseコマンドのインストールで502エラー発生
→下記回避策
“`python
# 下記が502エラーでうまくいかない
!apt-get -y -q install gcsfuse

# 回避策
!apt-get update -y
!apt-get install -y fuse
!curl -L -O “https://github.com/GoogleCloudPlatform/gcsfuse/releases/download/v1.2.0/gcsfuse_1.2.0_a

元記事を表示

Python初心者が「2人でじゃんけんする」を書いた② while文の練習

前回の投稿の続きとして、じゃんけんの手を入力する部分を修正する準備です。

“`python
you = int(input(‘じゃんけんします。あなたの手は?\n0:グー 1:チョキ 2:パー –>> ‘))
“`
ここを4や5等範囲外を入力したとき再入力を促すようにしたい。

そこで覚えてまもないwhile文を使い次のように動かしたい。
・inputで入力
・正しいときはwhile文を抜ける
・違うときは再入力を促し、inputで入力に戻る

じゃんけんのコードに加える前に、この部分だけ練習します。
“`python
N = [1, 2, 3] #入力されることを想定したリスト
n = int(input(‘1~3 –>> ‘))

while True:
if n in N: # nがN内にあるとき
print(n) # 入力されたnを表示しwhile文から抜ける
break
else: # nがN内でないとき
print(‘X’)
n = i

元記事を表示

ChatGPTとPythonで学ぶ BERT:日本語で質問応答(失敗)編

皆さんこんにちは。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ BERT:日本語で質問応答編」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

こんにちは、今日もよろしくお願いします。今日はBERTを使って日本語の質問応答について解説していきます。

まず最初に、BERT (Bidirectional Encoder Representations from Transformers)について簡単に説明します。

BERTはTransformerというニューラルネットワークの一種をバックボーンとして、大量のテキストデータから一般的な文の表現を学習します。元々英語のテキストを対象に開発されましたが、後に多言語対応版も公開されています。

その学習済みのBERTモデルを使って、特定のタスク向けの学習に用いることができます。これを転移学習といいます。

要するに、BERTは元々「馬が何色か?」といった具体的な質問に答える学習はしていないのですが、「馬」と「色」の

元記事を表示

作業自動化に使えるPyAutoGUI紹介

## はじめに
今回は自作RPAツールとして利用できる「PyAutoGUI」について紹介していきます.

## PyAutoGUIとは
Pythonスクリプトでマウスとキーボードを制御して,「マウス操作の自動化」や「キーボード入力の自動化」を実現します.

## 動作環境
– Python 3.12.0
– PyAutoGUI 0.9.54

PyAutoGUIはpipを使用してインストールできます.
“`
pip install pyautogui
“`

## コマンド紹介
### 【マウス操作】
マウス操作に関してはモニタの座標(x, y)を使用します.
(0, 0)は左上隅になり,X座標は右に行くほど,Y座標は下に行くほど増加します.
“`
0,0 X increases –>
+—————————+
| | Y increases
| | |
| 1920 x 1080 screen |

元記事を表示

ABC330をPythonで解いてみたよ。

[AtCoder Beginners Contest 330 (ABC330)](https://atcoder.jp/contests/abc330) をPythonで解きました。
見やすいコードを書く練習も兼ねてます。

TwitterとPayPayリンクをまとめたリトリンを下に貼ってあります。
Twitterのフォローお待ちしてます!(DMでなにか一言いただけるとたすかります…!)
この記事が役に立ったなと思ったら、PayPayのご支援もよろしくお願いします┏○ペコッ

https://lit.link/mer6177999

# A – Counting Passes

## 問題
$L$ 点以上を取った人は何人いますか?

https://atcoder.jp/contests/abc330/tasks/abc330_a

## 考察
for文をつかって リスト $A$ の要素を1つずつ見て、要素が $L$ 以上だったら変数 $ans$ を $1$ だけプラスします。

## コード
“`Python
N, L = map(int, input().split())

元記事を表示

【Python】The file ‘python.dll’ cannot be installed because the file cannot be found in cabinet

# エラー内容
久しく“python“を動かしてなかったPCに新バージョンをインストールしようと“setup.exe“を実行すると、
“`
The file ‘python.dll’ cannot be installed because the file cannot be found in cabinet file ‘cab1.cab’. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package.
“`
というエラー。

# やったこと
解決はしたが、理由まではわかっていない。以下を試してみてほしい。
– “~./Appdata/Local“にある“pip“フォルダを削除
– “~./Appdata/Local/Programns“にある“Common“フォルダを削除

元記事を表示

ETFの年間リターン計算

新NISAが始まったのでどのETFを買えばいいか悩んだのでつくったよ。
プロンプトやターミナルでたたけば結果見れるよ。
著者の環境はMacOS

必要なこと
まず、yfinance をインストールすること。
やり方
“`terminal
pip install yfinance
“`
これを叩くだけ(pipのバージョンが低いと怒られるので怒られた場合は↓を叩いてみてね)
“`terminal
pip install –upgrade pip
“`
デフォルトだとバージョンが低い可能性もあるので
pythonを最新にする(筆者はデフォのバージョンだったので必要なモジュールがなかったためアップデートした。)
“`terminal
pyenv install 3.9.1
“`
そしたら最新にしたのを設定
“`terminal
pyenv global 3.9.1
“`
“`python

import yfinance as yf
import pandas as pd

etfs = [‘VYM’, ‘HDV’, ‘SPYD’]

#5年間のリターン
data =

元記事を表示

【python】setの計算量(AtCoder/競プロ)

## はじめに
[AtCoderのABC329のF問題](https://atcoder.jp/contests/abc329/tasks/abc329_f)を解いていて、

pythonのsetは、
小さい方(lengthが小さいset)を大きい方(lengthが大きいset)に
代入するようにupdateする方が実行速度が速いことを初めて知り、

本当にそうなのか?

と疑問に思ったので、調べてみました。

## 本当に代入する方向で計算量が変わるのか

実行時間を比較するために、以下のようなpythonファイルを作ってみました。
“`py:set_set.py
# set の作成
set_long = {i+10 for i in range(1, 10000001)}
set_short = {i for i in range(1, 11)}
“`
“`py:short2long_update_set.py
set_long = {i+10 for i in range(1, 10000001)}
set_short = {i for i in range(1, 11)}

元記事を表示

PyTorch Geometricのデータセットの自作するための簡単なまとめ

PyGはグラフの機械学習に有用だが、データセットの自作が最初は難しかったので最低限必要な知識を記しておく。

## InMemoryDataset

CPUメモリに収まるデータセットを構成できる便利なクラス。

### 概観

最初にインスタンスを生成すると、`process`メソッドが呼び出されてデータセットが処理される。
`torch.save()`でデータが`data.pt`に保存され、次回以降高速に読み込める。

#### 最低限知っておけばよいメソッド
– `raw_file_names`
処理前の生のデータのファイルがあればここに書いておく。

– `processed_file_names`
処理されたデータが、`__init__`で渡したディレクトリの下にこのファイル名で保存される。

– `process`
グラフのノード, エッジ, 重み, 特徴量の設定などを行う。基本的に`torch_geometric.data.Data`クラスでグラフを表現し、`torch.save()`でファイルに保存される。

“`python
import torch
from tor

元記事を表示

OTHERカテゴリの最新記事