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

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

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

元記事を表示

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

# 機械学習に挑戦
いよいよ機械学習の内容に絡めていきましょう!今回は学ぶことも多く、いきなりやるのも酷なので、少しアイスブレイクを入れましょうか。

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

## イントロダクション
量子コンピュータは、ノーベル物理学賞を受賞していることでも有名な物理学者ファインマンが、「自然現象は量子力学の原理に従っているのだから、自然現象をコンピュータでシミュレーションしたければ、量子力学の原理に従ったコンピュータが必要だ」と提示したことで、量子力学の分野の科学者ドイチュが先陣を切って始めたものだと言われています。

その名の通り、量子と呼ばれるミクロな物質の挙動を参考に作られているわけですが、果たして一体どのようなものか、なるべくわかりやすく説明をしてみようと思います。

そもそも量子とは、非常に小さな粒子のことを指し、例えば酸素分子やその構成単位の酸素原子、またそれを構成する電子、陽子、中性子などがあります。他にも光を波ではなく粒子とし

元記事を表示

Invalid JSON Keys cannot be empty or contain $#[]./【Firebase Realtime Database】

**無効なJSON キーを空にすることはできません。また、キーに $#[]./ を含めることはできません**と表示されたため備忘録
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/accc6dfc-ff22-0bae-1e03-c97c2562d8d7.png)

`$#[]./`をエンコードすることで保存できた

### JavaScript

“`javascript
const encodeKey = s => s.replace(/[\.\$\[\]#\/%]/g, c => ‘%’ + c.charCodeAt(0).toString(16).toUpperCase())
const decodeKey = s => s.replace(/%(2E|24|5B|5D|23|2F|25)/g, decodeURIComponent)

const obj = {‘.$[]#/’: ‘hoge’}
saveAsJSON(Object.fromEntries(Objec

元記事を表示

Atcoder B – Palace

## 問題
https://atcoder.jp/contests/abc113/tasks/abc113_b

## 回答
“`Python
N = int(input())
T,A = map(int,input().split())
H = [int(i) for i in input().split()]

ans = 1
dis = 0
list = []

for i in range(N): #それぞれの地点からの差分を計算する。
dis = abs(T – H[i] * 0.006- A)
list.append(dis) #配列に格納。
ans = list.index(min(list))+1 #配列の中で一番小さいindexに、1を足したものが答え。一番小さい値の順番に1を足した数が答えとなっている。

print(ans)
“`

## ポイント

個人的には“`ans = list.index(min(list))+1“`の部分。

元記事を表示

医療情報技師の過去問サイトを爆速で作った話【Python/PHP】

# 背景

医療情報技師の資格試験が8月にあり、過去問の勉強しようと過去問サイトを探していたが、なかなか良いWebサイトがない。。。

以下のWebサイトを見つけたが、いくつか問題点があって、自作でWebサイトを作ることにしました。

https://iryoujyouhou.wiki.fc2.com/wiki/トップページ

# 問題点について

[背景](#背景)で述べた問題点についてですが、以下となります。

### 1. 問題の正解不正解を記録してくれない

自分が今何問正解しているのかを毎回紙にメモするのが面倒でした。
合格基準を満たしているか確認するために正答率も出したかったので、システム側で記録して欲しかった。。。

### 2. スマホ画面だと解答が丸見え

01.jpg

上記の画像のようにスマ

元記事を表示

LocalStack を使って dockerise した Lambda を実行する方法

# はじめに
AWS上で動かしているアプリをどうにかしてローカルで実行できないかと思って
色々試してみてどうにか Lambda を動かすことができたのでそのまとめ。

# LocalStack を使った構成

## 使っている技術など
* Docker
* Docker Compose
* LocalStack
* Python3

## ディレクトリ構成

“`
.
├── docker-compose.yml
├── app # ここにAPIのコードが入っている感じ。今回は説明対象外
└── docker
├── api
│ └── Dockerfile # 今回は説明対象外
├── lambda
│ └── Dockerfile # AWS で実行するやつ。今回は説明対象外
└── localstack
├── create_lambda.sh
├── dummy_function.py # 別にここにある必要はないけど、同じところにあった方が管理しやすいので
└── dummy_

元記事を表示

saveAsJSONL.js【JSON Lines】

“`javascript
function saveAsJSONL(data, name=new Date().toLocaleString(‘sv’).replace(‘ ‘,’T’).replaceAll(‘:’,’_’)+’.jsonl’) {
const a = document.createElement(‘a’)
a.download = name
a.href = URL.createObjectURL(new Blob([data.map(JSON.stringify).join(‘\n’)], {type: ‘application/jsonlines+json’}))
a.click()
}
“`
### JavaScriptのデータを保存する
Usage
“`javascript
saveAsJSONL([‘pen’, ‘pineapple’, ‘apple’, ‘pen’])

// ファイル名を指定
saveAsJSONL([‘pen’, ‘pineapple’, ‘apple’, ‘pen’], ‘hoge.jsonl’)
“`

!

元記事を表示

SQLAlchemy 2.0でよく使う文法まとめ

### はじめに

PythonのRDBのORMapperの代表的なものとしては、SQLAlchemyがメジャーかと思います。
今SQLAlchemyはメジャーバージョン2へのアップデートへの移行に伴い、バージョン1.4では新しい文法を使えるようになっています。

新しい文法での、一般的なクエリの書き方を備忘的に残します。

### コネクションの作成

“`python
from sqlalchemy import create_engine
from sqlalchemy.engine.url import URL
engine = create_engine(URL(…接続設定))

print(next(engine.execute(‘select 1’)))

with engine.connect() as conn:
print(next(conn.execute(‘select 1’)))
“`

エンジンオブジェクト自体もクエリを実行できるし、コネクションオブジェクトもクエリを実行できる

### セッションの作成

“`python
from sq

元記事を表示

Lambdaの中からS3のPythonファイルをインポートする

# 背景・目的

AWSのLambdaをPythonで利用するとき、外部ライブラリをパッケージにまとめてデプロイするのが一般的かと思います。
その場合、パッケージのバージョンは固定されることになるのですが、あるとき、実行時にS3に配置したPythonファイルを実行時に読み込むというケースがあったので、その実現方法について備忘します。

# システム構成

“`plantuml
package AWS {
database S3
() Lambda
}

Lambda <-up- S3 : Pythonファイルを読み込み ``` # 例 ### S3にアップロードするファイル 下記の内容を`s3://some-bucket-name/uploaded_script.py`というパスにアップロードすると仮定します。インポートの挙動を確認するために、少し冗長ですが、標準ライブラリであるjsonをインポートしています。 ```python import json def hello(): print(json.dumps({"hello": "world"}

元記事を表示

PythonのType Hint(annotation)を自由自在に操る

PythonのType Hintを使ってますか?
最初は苦痛でしか無かったのですが、最近、意図通り使えるようになってきた。

## 誰が書いた?
1. 時間無くて、TypeHintを苦戦しながら使っている者です。
1. ドキュメント読めていません。間違いがあればご指摘頂ければ幸いです。

## Type Hint使う理由(利点)
1. 実行前にエラーがわかり、時間節約
2. 思い違いの論理エラーを早くに検出し、時間無駄にしない。
2. 改てコード見直した時、コード内容を思い起こしやすい。

## Type Hintという結論は良さそう
1. 型厳密性が高い言語の方がコンパイルした時の早いじゃないの?、と思ってますし、きっとそうでしょう。でも、Type Hintという形がPythonicな書き方の自由を実現しているのじゃないかと思う。以前より、型のstrict性を求めなくなりまして、TypeHint使ってます。
1. annotationのおかげで、Cythonの型指定も楽になりました。(Pure Pythonモードなので20-50%の向上しか無いそうですが。)

“`python
#

元記事を表示

pythonでリストの要素をカンマ区切りで出力したい

pythonでリストの要素をカンマ区切りで出力したい場合がある。
例えば普通に`print`すると以下のように出力されるところを、

“`
[‘player’, 7, 2, 1]
“`

以下のように出力したい場合

“`
player,7,2,1
“`

`print(*l, sep=’,’)`のようにすればOK

“`
print(l) # [‘player’, 7, 2, 1]
print(*l, sep=’,’) # player,7,2,1
“`

以上です

元記事を表示

総当たり戦の結果表から、各playerの勝ち負けを集計したい(pythonで)

以下のような総当たり戦の結果表から、各playerの勝ち負けを集計したい場合がある。
(W:Win, L:Lose, D:draw)

“`csv:test.csv
player1,-,L,L,W,L,L,L,W,L,W,W,
player2,W,-,W,W,L,L,L,W,L,L,W,
player3,W,L,-,W,L,L,W,L,L,W,W,
player4,L,L,L,-,W,W,L,L,L,L,W,
player5,W,W,W,L,-,D,L,L,L,W,W,
player6,W,W,W,L,D,-,L,L,W,L,W,
player7,W,W,L,W,W,W,-,L,L,L,W,
player8,L,L,W,W,W,W,W,-,D,W,W,
player9,W,W,W,W,W,L,W,D,-,W,W,
player10,L,W,L,W,L,W,W,L,L,-,W,
player11,L,L,L,L,L,L,L,L,L,L,-,
“`

以下のような出力が期待値

“`
Player,W,L,D
player9,8,1,1
player8,7,2,1
player7,6

元記事を表示

seleniumを利用してGoogle認証を通す方法

## やりたいこと
Googleアカウントで認証されるサイトにログインしたい。

■実行環境
 jupyter notebook(Chromeで実行)
■言語 
 python
■ライブラリ
 selenium

## ぶちあたった壁①
下記のコードでchromeが起動され、Googleのアカウント入力画面が表示されるところ
まではいいのですが、入力後「ログインできませんでした」メッセージが表示されます。
機械による操作と判断されたときのGoogle側の対処のようです。

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/998522/3a5ca118-6f18-4080-a317-1e347b40edc4.png)

## ぶち

元記事を表示

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

# Qiskitであそぼ
某子供向け教育テレビ番組のパクリです。今回はQiskitを使って実際の量子コンピュータの代表的な問題である、「Deutsch-Jozsa(ドイチュ・ジョサ)のアルゴリズム」を取り扱ってみましょう。

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

## まずは実行環境の準備
“`python
!pip install qiskit
!pip install qiskit[visualization]
“`

これでColabでQiskitを動かせますね。続いて諸々のインポートをしましょう。

“`python
import numpy as np
from numpy import pi
import math
import matplotlib.pyplot as plt
import qiskit
from qiskit import QuantumCircuit, execute, Aer, IBMQ, ClassicalRegis

元記事を表示

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

# Qiskitチュートリアル
こんにちばんわ、東京理科大学大学院で修士課程の院生をしています、秋田と言います(以後お見知りおきを)。
今回はQiskitについての解説をしていくので、ポップコーンでも食べながらゆっくりしていってください!
Qiskitとは、IBM社の量子コンピューティング用Pythonライブラリのことで、これを用いて量子コンピュータの(現在の)挙動を確認してみましょう。

## Qiskitの実行環境の準備
本記事ではGoogleのサービス”Colaboratory”、通称”Colab”で実行を行います。まずはColabでもQiskitが使えるように実行環境を整えましょう。

“`python
!pip install qiskit
!pip install qiskit[visualization]
“`

次に、IBM Quantumのアカウントにアクセスします。まだアカウントを作っていない方は是非この機会に!
![スクリーンショット 2022-05-03 16.41.40.png](https://qiita-image-store.s3.ap-northe

元記事を表示

OTHERカテゴリの最新記事