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

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

About python class constant and scope

“`python
class Hoge:
PRIORITY = 1
def hoge(self,p=PRIORITY, priority=4): # not self.PRIORITY
print(self.PRIORITY,p,priority)

print(Hoge.PRIORITY) # could not use PRIORITY
r = Hoge()
r.priority = 7
r.hoge()
r.hoge(3)
r.hoge(3,5)
r.hoge(2)
print(Hoge.PRIORITY,r.priority) # could not use PRIORITY
“`

“`
1
1 1 4
1 3 4
1 3 5
1 2 4
1 7
“`

元記事を表示

Amazon Linux2にPython 3.10をインストールした時のメモ

opensslは1.1.1にあげないとインストール後にpipで何かインストールしようとしたときに
SSLのエラーが出た。色々調べた結果、openssl-develを消して、openssl11とopenssl11-develを
入れるとよいというのを見つけて試したらうまくいった。

“`sh
sudo yum remove -y openssl-devel
sudo yum install -y openssl11 openssl11-devel

wget -c https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tar.xz
tar -Jxvf Python-3.10.4.tar.xz
cd Python-3.10.4
./configure –enable-optimizations
make
sudo make install
cd
python3.10 -m venv py310
source ~/py310/bin/activate
“`

元記事を表示

【Linux】Python3.10.4 をソースからビルドする方法と、注意点いくつか【Python3.10】

# Python3.10.4 のソールビルド

Python3.10.4 をソースビルドしてみた!
意外とハマる部分が多かったのでメモしておきます。

ちなみに環境はRockyLinux8です

## 準備

“`
# dnf -y install make wget libffi-devel zlib-devel readline-devel
“`

↑まっさらな状態からだと他にもいるかも。
都度エラーコード見てインストールしてください。

:::note info
ちなみに`readline-devel`が個人的に重要で、
これを先にインストールしてからコンパイルしないと、
対話モードで履歴入力するときにキーボードの矢印キーが使えなくなる。
※下のほうにエラーとして書いたので参考に。
:::

## ソースDL

“`
# cd /usr/local/src

# wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz

# tar zxvf Python-3.10.4.tgz
“`

## confi

元記事を表示

指数バックオフ

google.api_core.retry を使って指数バックオフを行う方法

正直なところ、これで良いのかちょっとわからない。

# ロジックでやりたい場合

“`python
from google.api_core.exceptions import TooManyRequests
from google.api_core import retry

_BACKOFF_DURATION = 200

@retry.Retry(predicate=retry.if_exception_type(AssertionError), deadline=_BACKOFF_DURATION)
def example_function():
[なんか処理]
if [指数バックオフでリトライしたい判定]:
print(‘失敗’)
raise AssertionError(‘失敗’)
“`

# GoogleCloudStorageでやりたい場合

GoogleCloudStorageにアップロードする場合、頻繁にするとTooManyRequests

元記事を表示

seleniumでリンク(aタグ)をクリックできないときの対処

## やりたいこと
seleniumを利用してのウェブスクレイピング。
リンクをクリックしてリンク先へ遷移したいだけなんです。

## できなかったこと
ターゲットとする要素を、文字列指定で特定し、クリック。
しかし、何も起こらず、静かに時を刻むだけ・・・

“`python:
from selenium import webdriver

browser = webdriver.Chrome((r’C:\Users\[ユーザ名]\chromedriver.exe’)
browser.get([目的のURL])

element_target = browser.find_element_by_link_text([ターゲットとする文字列])
element_target.click()
“`
念のため[find_elements_by_link_text]で検索し要素数を確認しても1つだったため、別のお門違いのリンクをクリックしているわけでもなさそう。

「aタグからjavascriptを実行させる」ようになっている場合は、クリックが動作しない場合があるようですが、今回はそのよう

元記事を表示

djangoを使ったAPI開発を理解する[part1 目的の整理と環境構築]

諸事情でDjango-rest-frameworkを使えるようになることになったため、その過程を残していきます。

タイトルに`目的の整理と環境構築`としていますが、先に環境構築の内容を書きます。
目的の整理は気になったらこの記事の後半部分の前提項を見てください。

## 環境構築
### 作業する環境
今回の記事を書くにあたり使用した環境はこちら
“`
okapi@MBP01 ~ % sw_vers
ProductName: macOS
ProductVersion: 12.3.1
BuildVersion: 21E258

okapi$ docker –version
Docker version 20.10.5, build 55c4c88

okapi$ docker-compose –version
docker-compose version 1.28.5, build c4eb3a1f
“`
今回は`docker-compose`を利用して端末上のpythonは利用しない方針で進めます。
### 元にするdocker-compose.ymlの作成
まずはdocke

元記事を表示

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

**ABC250**の**A,B,C,D,E問題**を、**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**

元記事を表示

【Python】ezdxfを使ってみよう#3~レイヤー・dxfattribs 図形の属性・描画の補足編~

この章では図形の属性や設定などをまとめます。
[前章はこちら:#2~図面描画編~](https://qiita.com/Rai-see/items/eb74fcbac53f6a749355)
1. **layer:レイヤーの作成と指定**
1. **color:色**
1. **線幅**
1. **線種**
1. **点の種類・大きさ**
1. **文字列の属性**
1. **ハッチングのパターン**

## layer:レイヤーの作成と指定
### レイヤーの作成
“`Python:layers.add
doc.layers.add(name=”mylayer”,
color=7,
linetype=”DASHED”,
lineweight =20
)
mylayer.lock() #ロックする
mylayer.unlock() #ロック解除する
mylayer.on() #表示する
mylayer.off() #非表示にする
“`
colorやlinetypeなどレイヤーの設定ができます。
後述するdxfattribsと異なり、**”col

元記事を表示

python3でAtCoderに取り組んだ時に得た実装上のtips

2021/10/17以降AtCoderのコンテストに参加しています。言語はpython3で挑んでいるのですが、その時に得た「こう実装すれば速度を落とさずに実装できる」というTipsを紹介します。

ちなみにAtCoderとは日本発祥の競技プログラミングサイトです。
https://atcoder.jp/home

以下に3つまとめていますが、また気づきがあったら追加します。

## 1. ベタなキューを使うときは配列[]やqueue.Queue でなく collections.deque を使うこと。

AtCoderでは(というより競技プログラミングの問題全般で)キューを使って解く問題が結構頻出するのですが、これは確実に collections.deque を使った方がいいです。

理由は
– 配列[] は先頭pop に配列の長さ分の計算量がかかる。
– queue.Queueの先頭pop は $O(1)$ で配列[]より速そうだが、同期のためのlockが効いているのか?dequeよりも遅い
 - https://docs.python.org/ja/3/library/queue

元記事を表示

Amazon Linux2にPython 3.8をインストール

“`shell
# インストール
sudo amazon-linux-extras install -y python3.8

# 確認
python3.8 -V

# venvで仮想環境構築
python3.8 -m venv py38

# activate(有効化)
source ~/py38/bin/activate

# deactivate(無効化)
deactivate
“`

元記事を表示

【Python】PyScriptで、HTMLにPythonを書き込む

# はじめに
AnacondaがリリースしたPyScriptというフレームワークはHTMLにPythonを書き込むことができます。
この記事ではちょっとだけ試してみたいと思います。

# 1. PyScriptをインポートする
“`html
“`
二行のコードだけでPyScriptが使えるようになります。

# 2. 基本の使い方
Pythonを書き込むために、
“`html “`
というタグが必要です。

それでは、簡単に定番のHello World!をやってみましょう。
“`html:helloWorld.html

docker-containerでmongodbにpymongoから繋ぐまで

# TL;DR
ローカルでpymongoの動作確認するためのdocker-composeを作成した。
`docker-compose.yml`をローカルに保存して、upした後下のexecからのフローでpymongoの簡単な確認ができる。
“`bash
docker-compose up -d
docker-compose exec app /bin/bash
“`
“`docker-compose.yml
version: ‘3.7’
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
ports:
– 27017:27017
volumes:
– ./db:/data/db
– ./configdb:/data/configdb
networks:
– d

元記事を表示

Python3エンジニア認定基礎試験合格体験記

## はじめに

この記事ではPython3エンジニア認定基礎試験に合格するまでの勉強方法について書いています。
私自身プログラミング未経験で合格しましたので、同じような方の参考になればと思います。

## 勉強教材

書籍
[Pythonチュートリアル 第3版](https://www.amazon.co.jp/Python%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB-%E7%AC%AC3%E7%89%88-Guido-van-Rossum/dp/4873117534/ref=sr_1_33?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=CJ1LMPIX81LF&keywords=python+%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB&qid=1651982403&sprefix=python+%E3%83%81%E3%83%A5%E3%83%BC%E3%83

元記事を表示

非エンジニアのPython忘備録的ブログ

# Python3.10.4への更新とPySimpleGUI
## 初めに
### 環境
・使用しているPC:macbookAir
・OS:macOS
ここではPython3.9.7からPython3.10.4への更新とそれに伴ってPySimpleGUIが使えなくなったことについて解決した話を載せます。

# Python3.10.4へ新しいバージョンのPythonをインストールしたら使えなくなった!?
## 経緯
 macbookairにインストールしたPython3.9.7が古いのか、ターミナルコマンドで**2022.10.4 is available**のような表記が出たのでPython3.10.4をインストールしました。

 そして気になったことが一つ…。
 PySimpleGUIをインストールしていたけどバージョンが違っていても使えるのかな?と。
 そしてPySimpleGUIをインポートするコードが記載されたファイルをPython3.10.4で開いてみるとやはり使えませんでした。

## 解決
 これは単純にもう一度Python3.10.4がある状態でPySimpleGU

元記事を表示

pythonでゲーム作成 pygame基礎

## 仮想環境作成
“`
python -m venv game
.\game\Scripts\activate
“`
## ライブラリインストール
“`
pip install pygame
“`

## 初期化
“`python
import pygame
pygame.init()
“`
ライブラリインポートし、初期化する。

## 画面を表示
“`python
import sys
import pygame
from pygame.locals import QUIT

pygame.init()
screen = pygame.display.set_mode((600, 400))

def main():
while True:
pygame.display.update()
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exi

元記事を表示

『Python2年生 スクレイピングのしくみ』で勉強中(その2)

## この記事について
『Python2年生 スクレイピングのしくみ』(以下、書籍)でPythonを学習する超初心者の記録です。
とりあえず、書籍を最後まで進めたので、その記録として記事を書いています。

先に書いておきますと、今回はこれまで以上に内容がないです……
これまで保留にしておいた事項を調べるなどして、ボリュームを増やそうかとも思いましたが、付け焼き刃感があるのでそのままにしました。

■ バックナンバー
・[『Python1年生』で勉強中(その1)](https://qiita.com/megrim_q/items/c1417f507e96c1fb7015)
・[『Python1年生』で勉強中(その2)](https://qiita.com/megrim_q/items/333be033e5b4637d0eed)
・[『Python1年生』で勉強中(その3)](https://qiita.com/megrim_q/items/904f83c6a7e8594b7212)
・[『Python2年生 スクレイピングのしくみ』で勉強中(その1)](https://qiita.co

元記事を表示

AtCoderで役立つPythonイディオム集

# はじめに

[AtCoder](https://atcoder.jp)は、おおよそ週に1回程度プログラミングコンテストが開催されている日本最大規模の競技プログラミングコンテストサイトです。特に初学者には学習コストが比較的小さいためにPythonがおすすめされがちです。
本記事では、Pythonでのコーディングが楽になる、標準ライブラリや組み込み関数によるイディオムを紹介しています。あくまでイディオムを集めたものであり、アルゴリズムのPython実装は取り扱いません。

# 頻出度 高

## 逆順にする

“`python
L = [1, 2, 3, 4]
reversed_L = L[::-1]
print(reversed_L)

>> [4, 3, 2, 1]
“`

### 解説
スライスを利用することで、スタート、エンド、ステップを指定することができますが、ステップに負数を指定することで、逆順を実現できます。また、以下のコードはほぼ等価です。
“`python
list(reversed(L))
<=> L[::-1]
“`

## リストの連続する2つのイテレー

元記事を表示

Pythonの変数変更時の挙動

# Pythonの変数の参照について
変数の参照を調べると下記の記事を発見した。
https://qiita.com/ponnhide/items/cda0f3f7ac88262eb31e

結論は記事にある通りで自分の環境でも再現できたが、仕組みが理解できなかったので、調べてみた。
>長々と書いたけど、つまり、
変数に新たなオブジェクトそのものが代入されるときには、これまでの参照先から変わって新たなオブジェクトが作られた場所を参照するようになる。
で実務的には問題ないはず。

# ミュータブルとイミュータブル
Pythonのオブジェクトには、ミュータブルとイミュータブルの2種類あり、これを理解できれば変数変更時の挙動の仕組みを理解できる。
公式を見ると、[ミュータブル](https://docs.python.org/3/glossary.html#term-mutable)とは、
>Mutable objects can change their value but keep their id().

とある。ここで `id()` はオブジェクトのIDを返す。したがって、`id(

元記事を表示

初めてQiskitを使ってからQiskitで量子機械学習ができるようになるまで 〜パート4〜

# QSVMによる2値分類
量子機械学習の本題に入りましょう。今回は、量子SVMによって2値分類がどのように行われるかを見ていきます。

前回のおさらい(パート3)は[こちら](https://qiita.com/Hiroki_Akita/items/941b0ec4eef0f36cadc1)から。

## 肩慣らしの準備
前回の機械学習で忘れてしまいがちですが、QiskitをColabで使えるようにしましょう。早速前回ちょこっとだけ登場した “Qiskit Machine Learning” をインストールしてみましょうか。

“`python
!pip install qiskit
!pip install qiskit[visualization]
!pip install qiskit-machine-learning
“`

そしてまた必要(そう)なモジュールのインポートをしていきましょう。

“`python
import numpy as np
from numpy import pi
import math
import matplotlib.pyplot as

元記事を表示

Python3: GitLab API の使い方

トークンとプロジェクトID の設定

“`text:.env
PERSONAL_ACCESS_TOKEN=glpat-xxxxxx
PROJECT_ID=”35195199″
“`

プロジェクトのメンバーの取得

“`py:get_members.py
#! /usr/bin/python
#
# get_members.py
#
# May/06/2022
# ——————————————————————
import os
import sys
import json
import requests
from dotenv import load_dotenv
# ——————————————————————
dotenv_path = ‘.env’
load_dotenv(dotenv_path)
token = os.environ.get(“PERSONAL_ACCESS_TOK

元記事を表示

OTHERカテゴリの最新記事