Python3関連のことを調べてみた2022年04月14日

Python3関連のことを調べてみた2022年04月14日

[Python3 / pynamodb] create_table時に Table read and write throughput must be at least 1, and cannot be null

# 発生したエラー

> E pynamodb.exceptions.TableError: Failed to create table: An error occurred (ValidationException) on request (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) on table (some_data) when calling the CreateTable operation: Table read and write throughput must be at least 1, and cannot be null
>
>.venv/lib/python3.8/site-packages/pynamodb/connection/base.py:651: TableError

`Table read and write throughput must be at least 1, and cannot be null`がエラーの原因っぽいことはすぐにわかった。
けれど、`Table read and w

元記事を表示

AWS Cloud9でPython基礎~ファイルの読み書き

2022/4/6(水)に行われたAPNパートナー限定セミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で学んだPython部分の復習。

# 1.AWS Cloud9セットアップ
Cloud9を起動。適当に名前を付けて他はすべてデフォルト値でCloud9を起動する。

# 2.ファイルの読み書き

## 2-1.Pythonでファイルを読み込む

組み込み関数[open()](https://docs.python.org/ja/3/library/functions.html#open)と[with文](https://docs.python.org/ja/3/reference/compound_stmts.html#with)を使う。

Cloud9上で、以下2ファイルを作成する。

“`py:input_text_file.py
def open_input(fileA):
with open(fileA, ‘r’) as f:
textA = f.read() # .read()メソッドを使ってファイルの内容を読み込み

元記事を表示

python3を用いたgifアニメの解像度変更

# python3を用いたgifアニメの解像度変更
先日、pixivに作成したgifアニメをアップロードしようとしたら、ファイルサイズの制限に引っかかってしまった。そこで、画像の解像度を落とし、ファイルサイズを小さくしようと考えた。
ブラウザ上でgifアニメの解像度を縮小するサービスはいくつか見つかったが、どれもファイル容量の制限などにより使いにくかった為、自分で作成した。

## 追記
– 2022-04-14 解像度変えるだけなら[ffmpeg](https://trac.ffmpeg.org/wiki/Scaling)で十分みたいです。

## 開発条件
– python3
– scikit-video
– opencv
pip経由でscikit-videoとcv2を入れる

## 必要なライブラリをインポート

“` python3
from skvideo.io import vread
import cv2
from PIL import Image,ImageDraw
“`

## gifを読み込む

“` python3
from skvideo.io impo

元記事を表示

Windows PC へのPython3 導入手順

# 1.はじめに

Windows10 の環境に Python3 を導入します。

※ Mac PCへの Python3 導入手順は、以下リンク先をご参照ください。

・Qiita:Mac PC へのPython3 導入手順
https://qiita.com/Haruka-Ogawa/items/b1bf5ad9b28d44702a64

# 2. Python3 導入

### ① ダウンロード

まず、公式サイトからPythonを ダウンロードします。
最新版は以下リンク先を開くと取得することができます。

・Python:Download the latest version for Windows
https://www.python.org/downloads/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174250/0a081064-85f4-1ebe-cfdb-7374cd5f5d93.png)

今回は Python **3.10.4** をダウンロードしま

元記事を表示

【init】Google ColabでLINEおうむ返しBOTを爆速で動かす

# 下準備
– Google Colabを開く(https://colab.research.google.com)
– LINE Channel SecretとChannel Access Tokenの取得(https://developers.line.biz/console)
※参考: [Messaging APIを始めよう](https://developers.line.biz/ja/docs/messaging-api/getting-started)
– ngrokのYour Authtokenの取得(https://ngrok.com/)

# 定数の定義
“`python
# LINEのチャネルシークレット
LINE_CHANNEL_SECRET = ‘下準備の値’
# LINEのチャネルアクセストークン
LINE_ACCESS_TOKEN = ‘下準備の値’
# ngrokのAuthtoken
NGROK_AUTHTOKEN = ‘下準備の値’
“`

# 必要なライブラリのインストール&ngrokの初期化
“`
!pip install flask
!pip

元記事を表示

量子デバイス実機を使ってみよう

Qiskitを用いて量子回路を作成し、量子デバイス実機で量子測定を行う

**前提知識**
量子力学、線形代数

**準備**
準備はAnacondaインストール→仮想環境の作成・Qiskitのインストールの順で行います。準備ができたらAnaconda-NavigatorあるいはVScodeのjupyternotebookを起動させてQiskitがインストールされている仮想環境を選択します。

Anacondaのインストールに関して
[Anacondaインストール](https://www.python.jp/install/anaconda/index.html)
仮想環境の作成とQiskitのインストールに関して
[はじめに](https://qiskit.org/documentation/locale/ja_JP/getting_started.html ) 
[Qiskitのインストール](https://qiskit.org/documentation/locale/ja/install.html)
JupyterNotebookに関して
[Jupyt

元記事を表示

FastAPI: CORS の使い方

プログラム

“`py:main_cors.py
# ——————————————————————
# main_cors.py
#
# Apr/12/2022
# ——————————————————————
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

# ——————————————————————
app = FastAPI()

origins = [
“http://localhost”,
“http://localhost:8080”,
]

app.add_middleware(
CORSMiddleware,
allow_origins=origins,

元記事を表示

Cloud FunctionsのHTTP起動の認証について

Google CloudのCloud Functionで起動トリガーをHTTPにした場合、誰でも処理を起動できないようにHTTPアクセスに対してデフォルトで認証が必要となります。この記事では、PythonでCloud FunctionsにHTTP(認証あり)接続を行う方法を紹介します。
 なお、基本的には[googleドキュメント](https://cloud.google.com/functions/docs/securing/authenticating?hl=ja#functions-bearer-token-example-python)のプログラムによるトークン生成を参考にしていますが、使用しているライブラリを「urllib」→「requests」に変更しています。(個人的な趣味の問題)

# 下準備
HTTPトリガーのCloud Functionsを準備します。これはサンプルなので関数などはデフォルトのままで準備してもらえば大丈夫です。僕はPython3.9をランタイムとして選択しました。![キャプチャ.JPG](https://qiita-image-store.s3

元記事を表示

Pythonでスレッド・プロセスプールについて

Pythonは2つ以上のスレッドが同時に実行される時、複数のスレッドが1つのリソースを同時にアクセスするときに発生しうる問題を防止するためにGIL(Global Interpreter Lock)というものを導入しています。
つまり、スレッドが実行されるとき、プログラム内のリソース全体のロックがかかります。

結局、Pythonプログラムでは同時にいくつかのスレッドが実行されても、GILによって1つのスレッドだけしか実行されません。
マルチスレッドの場合、ContextSwitch に必要なリソースまで考慮すると、単一スレッドよりも性能が落ちることが確認できます。

そのため、マルチスレッドによる分散処理は Python では意味がなく、分散処理を通じて性能の利益を得るためにはマルチプロセスを使用しなければなりません。
しかし、プロセスを追加に生成することはOSとしては非常に費用がかかることです。

Python 3.2 から追加された`concurrent.futures`モジュールは別途のスレッドオブジェクトを作成せずに、関数の呼び出しをオブジェクト化して他のスレッドやプロセスでこ

元記事を表示

Can’t connect to MySQL server エラーの解消

mac上で、pythonを利用してmysqlにデータを書き込もうとしたところ、下記エラーが発生しました。

“`
mysql.connector.errors.InterfaceError: 2003: Can’t connect to MySQL server on ‘localhost:3306′ (61 Connection refused)
“`

実行したファイルは、下記になります。

“`update_sql_from_csv.py
### インポート
import csv
import mysql.connector

### ファイルオープン
file = open(“bme280_db.csv”, “r”)

### ファイル読み込み
members = csv.reader(file)

### DB接続
cnx = mysql.connector.connect(host=’localhost’, user=’root’, password=”, database=’bme280db’)

### カーソル作成
cursor = cnx.curso

元記事を表示

【AtCoder解説】PythonでABC247のA,B,C,D,E,F問題を制する!

**ABC247**の**A,B,C,D,E,F問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM

元記事を表示

コンテキストマネージャの型ヒント

## 概要
with構文で使われる、任意のコンテキストマネージャは[contextlib.AbstractContextManager](https://docs.python.org/3.10/library/contextlib.html#contextlib.AbstractContextManager)型の変数に代入できる。​**AbstractConrextManagerを継承している必要はない**​。(mypy v0.942で確認)

`AbstractConrextManager`を継承していないのであればエラーになるべきで、次のようなプロトコル型が必要になると思うのだがどうなんだろう?

“`py
T = TypeVar(“T”, covariant=True)

class ContextManager(Protocol[T]):
def __enter__(self) -> T:

def __exit__(
self,
exc_type: Optional[Type[BaseExceptio

元記事を表示

AWS Cloud9でPython基礎

2022/4/6(水)に行われたAPNパートナー限定セミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で学んだPython基礎部分の復習。

# 1.AWS Cloud9セットアップ
Cloud9を起動。適当に名前を付けて他はすべてデフォルト値でCloud9を起動する。

# 2.Python基礎
Pythonの以下トピックについて学ぶ。

– データ型
– 関数
– モジュール
– 引数とパラメータ

## 2-1.データ型
データ型は以下4種。

– 文字列型
– 整数型
– 辞書型
– リスト型

Cloud9の画面下部Terminalでpythonを実行できるので、`python`と打ち込んで対話モードにしておく。
“`
$ python
Python 3.7.10 (default, Jun 3 2021, 00:02:01)
[GCC 7.3.1 20180712 (Red Hat 7.3.1-13)] on linux
Type “help”, “copyright”, “credits” or “license” for more informa

元記事を表示

『Python1年生』で勉強中(その1)

## この記事について
人工知能とかスクレイピングとかいうことばが気になったので、
だらだら調べていたら『Python1年生』(以下、書籍)という初心者向けの本に行き当たったので、その勉強結果や気になったことの記録を残そうかと思います。

書籍の内容自体には(いろいろ権利とかあるでしょうから)なるべく触れません。
バージョン差異などで試してみたら違っていた!というようなところとか、個人的に気になった点を挙げるにとどめようと思います。

また、言語はJavaScriptをかろうじて使える(基本的な構文が分かるくらい)なので、当たり前なことや見当はずれなことも書いてそうですがご容赦ください、という言い訳をしておきます。
その分、なるべく誤解や曖昧な箇所が無いようには気を付けるつもりです。

あと、タイトルに「(その1)」と付けているように、今後も続けていくつもりです。
続かなかったら……
各回の記事の品質は保証できかねますが、誤り等あれば随時直したいと思います。また言い訳しました。
Qiita自体も慣れてないので、変な書き方してたらそれもすみません。直します。

前置きはここまで。我ながら

元記事を表示

【Python】ファイルを読み込む方法

今回はpythonであるテキストファイルを読み込む方法を解説していきます。

# テキストファイル全体を読み込む

“`Python
file = open(‘test.txt’, mode=’r’, encoding=”utf-8″) # mode r:読込み
text = file.read()
print(text) # テキストファイル全体が表示される
file.close()

# ファイルを閉じたか
print(file.closed) # True
“`

# テキストファイルを一行ずつ読み込む
ファイルサイズが大きい場合、全体ではなく行単位の操作が望ましい場合があります。
また、「with」構文を使用すれば、ファイルが使用された後に閉じることが保証されます。

“`Python
with open(‘./test.txt’) as f:
for line in f:
print line
“`

# open関数について
open関数は、ファイルの新規作成や保存、書き込みなどのファイル操作ができます。

open関数は、以下のような形式で使

元記事を表示

Pythonで変数名を文字列として扱う方法

# はじめに
pythonを扱っていて、ログの解析や処理の実行中に変数の中身がどうなってるのか調べたいことありますよね?
デバッガを使うのが一番簡単なのですが、
処理の中で頻繁に値が変わったり作動中のログに変数Aには何の値が今入ってるのか調べるには、実際に変数名と値を出力するのが一番簡単だと思います。

## locals(), globals()を使わない

python 変数名 取得 などで調べるとまず出てくるのが 組み込み関数のlocals(), globals()を用いる方式です。
現在使用してる名前空間(シンボルテーブル?)にアクセスして、変数名と一致するものを探索して取得する方法です。

参考: https://qiita.com/ragnar1904/items/55a21c521858802dc501

“`python
def hoge():
for variable_name, value in locals().items():
print(f”{variable_name} -> {value}”)
“`
現在の全ての変数名、値に対し

元記事を表示

e-StatにあるCSVをPythonを使ってまとめてダウンロードする

 [政府統計の総合窓口e-Stat](https://www.e-stat.go.jp/)に掲載されているCSVを一括でダウンロードしたくなったので、初学者の私がPythonを使ってプログラムを書いてみた。私がやりたい事はAPI使えればOKだったのだが、なぜか私が欲しい所はAPIが使えなかったので、CSVをダンロードすることにした。

# 使用した言語
– Python(3.9.10)

# 使用したモジュールたち
– requests
– bs4(BeautifulSoup)
– pandas
– os

# 今回取得したいCSV
– 平成29年度〜令和2年度 地域保健・健康増進事業報告 > 健康増進編 > 市区町村表 に掲載されているCSV

# ディレクトリ構成(最小)
e-stat
├ csv
├ main.py
*GitHubでも公開しています。 URL:https://github.com/kawhi6key/e-stat_get_csv

# 実際のコード
“`Python:main.py
import requests
from

元記事を表示

pythonで整数のべき乗の計算にmath.powは使わない(pow() or **を使う)

## 結論
べき乗の計算時はpow or ** を使おう

## math.powの仕様

[公式ドキュメント](https://docs.python.org/ja/3/library/math.html)より引用する
> math.pow(x, y)
x の y 乗を返します。例外的な場合については、 C99 標準の付録 ‘F’ に可能な限り従います。特に、 pow(1.0, x) と pow(x, 0.0) は、たとえ x が零や NaN でも、常に 1.0 を返します。もし x と y の両方が有限の値で、 x が負、 y が整数でない場合、 pow(x, y) は未定義で、 ValueError を送出します。
組み込みの ** 演算子と違って、 math.pow() は両方の引数を float 型に変換します。正確な整数の冪乗を計算するには ** もしくは組み込みの pow() 関数を使ってください

math.pow()は両方の引数をfloatに変換して計算するため、正しくない
※math.pow()の返り値はfloatであることから、floatに変換していることがわかり

元記事を表示

Scipyで多変数関数の最小値を求める(逐次二次計画法の利用)

# はじめに
pythonの`scipy`モジュールを使用して多変数関数の最小値を求める方法について紹介します。
`scipy`の公式レファレンスには多くの方法が記載されていますが、今回は特に逐次二次計画法(SLSQP)について取り上げます。

* [scipyの公式レファレンスはこちら](https://docs.scipy.org/doc/scipy-0.18.1/reference/optimize.html)

# 実行環境
OS : Windows10
環境 : Anaconda(エディタ:Jupyter Notebook)
言語 : Python3
使用ライブラリ : scpiy,numpy

# 逐次二次計画法(SLSQP)
`逐次二次計画法 (Sequenitial Least Quadratic Programming)` とは、制約付き非線形計画問題を解く手法の1つです。

最適化したい目的関数に対して、非線形な等式制約条件式と不等式制約条件式が複数ある場合に適用することができます。

詳しい理論については以下のリンクから参照してみてください。
* [株式会社

元記事を表示

超初心者がAtcoder ProblemsのC問題を231回から240回までをpythonで解いてみた

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

231 Counting 2

https://atcoder.jp/contests/abc231/tasks/abc231_c

“`python:practice.py
import bisect

n,q = map(int, input().split())
alist = sorted(list(map(int, input().split())))
for _ in range(q):
x = int(input())
print(n – bisect.bisect_left(alist,x))
“`

この問題はbisectを使うだけで簡単にとけてしまいます。まずbisect_leftを使って、alistの中でxの数字を挿入できる位置のindex番号を取得します(xより小さい数字の数)。次に、xより大きい数字の数を調べ上げるために、全体数nからさっき取得した値を引き出力すればACです

元記事を表示

OTHERカテゴリの最新記事