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

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

【スクレイピング】Seleniumを使用したブラウザ操作自動化

# はじめに

– **Seleniumとは**
– Webブラウザの操作を自動化するためのフレームワーク

# 0. 前提
– Pythonをインストールしていること

https://qiita.com/rexid/items/8b2f0dd4f7ca03c13a7a

# 1. ファイルを準備

– Selenium用のフォルダ及びファイルを作成(なんでも良いです)
– VSCodeなどのエディタで開いておく

“`terminal:例
(base) sample@SampleMBP ~ % cd Desktop
(base) sample@SampleMBP Desktop % mkdir Selenium
(base) sample@SampleMBP Desktop % cd Selenium
(base) sample@SampleMBP Desktop % touch sample.py
(base) sample@SampleMBP Selenium % pwd
/Users/username/Desktop/Selenium
(base) sampl

元記事を表示

【解決法】ModuleNotFoundError: No module named ‘chromedriver_binary’

– ファイル実行

“`terminal
$ python3 ファイル名
“`

– 失敗

“`terminal:例
sample@SampleMBP Selenium % python3 sample.py
Traceback (most recent call last):
File “/Users/username/Desktop/Selenium/sample.py”, line 1, in
import chromedriver_binary
ModuleNotFoundError: No module named ‘chromedriver_binary’
“`

`chromedriver_binaryが見つからんぞ。`と。

# 解決までの手順

## 1. ブラウザ上でChromeのバージョンを確認

ツールバーから「GoogleChromeについて」をクリック
![スクリーンショット 2022-10-02 19.15.07.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

ブロックチェーンを実装してみた & 改ざんを試みた

# はじめに
最近、Web3に関するツイートやニュースの中でも、Non-Fungible Token (NFT)を目にすることが多い。
NFTはブロックチェーンに基づいた技術で、その改ざん不可能性が肝となっているらしい。
以前からブロックチェーンの改ざん不可能性については知っていたものの、
– なぜ改ざんが不可能なのか
– 改ざんを試みると、どうなるのか

といった疑問が残っていた。
今回は、これらの疑問を解決すべく、自分でブロックチェーンを実装し、送金データの投入を行う。更に、送金データの改ざんを試みることで、さらなる理解を目指す。

# ブロックチェーン
ブロックチェーンは、hash値、data、nonceで構成される「ブロック」がつながったものである。
データを読み取る時は、各ブロックが持っているdataを読み取るのみでよい。
競合する複数のブロックチェーンが存在した時、つながっているブロック数が最大のもののみを信用する。

### hash値
なんらかのデータをhash化することによって得られた値。
“`math
h = H(d)
“`
ここで$h$,$H$,$d$はそ

元記事を表示

AtCoderでよく使いそうな関数メモ

# この記事は何?
AtCoderでよく使いそうな関数たちをまとめた記事です。

# 記事を作成した背景
AtCoder挑戦時に毎回検索して時間を使っているなぁ。。。
-> 関数をまとめて記事にしておいたら自分に必要な関数だけ参照できるのでは?
-> 関数まとめた記事を書いて、辞書みたいに使おう!

# 入力を受け取りたい
AtCoderの入力パターンは下記かな、という認識です。
1. 入力値が1つだけある
– `10`など
1. 入力値がスペース区切りで複数ある
– `1 2 3`など

## 1. 入力値が1つだけある
### 例:文字列として入力を取得
“`python: 入力に「test」が与えられる
x = input()
print(x)
# -> test
“`
### 例:数値として入力を取得
“`python: 入力に「10」が与えられる
# intで型変換をする
x = int(input())
print(x)
# -> 10
“`

## 2. 入力値がスペース区切りで複数ある
### 例:文字列として入力を取得
“`python: 入

元記事を表示

Flaskで立てたサーバーが外部からアクセスできない場合に確認すべきこと

# 外部からアクセスできない場合に確認すべきこと

flaskでサーバーを立ち上げたときにlocalhostからは通信が可能だが、外部から通信ができない場合に確認すべきことについてまとめました。先日ひどいめにあったので。
flask関係なく通信エラー時に確認すべきことも含みます。

## サンプル

一番シンプルなサンプルコードを載せます。
flaskコマンドではなくpython側で実行してるので、flaskコマンド使用者はうまく読み替えてください。
問題ない方はここは読み飛ばしても構いません。

“`python
from flask import Flask

app = Flask(__name__)

@app.route(“/”)
def hello_world():
return “

Hello, World!

def main():
app.run()

if __name__ == ‘__main__’:
main()
“`

こちら実行すると、以下のような出力になります。アクセス時の出力も出てます。

“`she

元記事を表示

【解決法】Error: pg_config executable not found.

# エラー対処

ライブラリインストール時のエラーを書き留めておきます

### 事前準備
“`terminal
$ cd ~/対象プロジェクトまでのpath
$ python -m venv env # pythonの実行環境を仮想的に作成(envは名称なので任意でOK)
$ . env/bin/activate # 作成した仮想環境のバッチを実行し、仮想環境への切り替えを行う
“`
“`requirements.txt
省略
psycopg2==2.9.3
“`

### エラー発生

“`terminal
$ pip install -r requirements.txt # 一括でライブラリをインストール
“`

“`terminal:terminal
(env) (base) sample@SampleMBP 対象プロジェクト % pip install -r requirements.txt
Collecting asgiref==3.2.10
Using cached asgiref-3.2.10-py3-none-any.whl (19 kB)
Col

元記事を表示

Python(3.10.7)をWindowsにインスコするの巻

## はじめに…
Pythonの入れ方を細かく説明したつもりです
わからないとこあったらコメントしてネ

## とりあえずダウンロードします
公式サイトから最新バージョンをインストールします

https://www.python.org/downloads/

リンクに飛んで Download Python 1.10.7を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004944/bda4cb9e-0f29-996c-020a-276a22523425.png)

## インスコする
ダウンロードしたインストーラーを開く

出てきたら Add Python 3.10 to PATHにチェックを入れる **※絶対**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004944/82a5ac12-89ad-01bb-d526-7cbfd120eba2.png)
入れたらCus

元記事を表示

Python & ビット演算でドドスコしてみた

# 今更ドドスコ

こちらが話題になっていた2022年の夏、コロナに罹ってダウンしていたところ完全に乗り遅れてしまったので今更ながらやってみました。
リプで配列を使った例はよく見かけたので今回はPythonのビット演算で実装してみることにします。

# やってみた

コードはこんな感じ。

“`python:ddsk.py
import random

buffer = 0

while True:
buffer = buffer << 1 & 4095 if random.getrandbits(1): buffer |= 1 print("ドド", end="") else: print("スコ", end="") if buffer == 2184: print("ラブ注入♡") bre

元記事を表示

【Pytorch】MNISTのGAN(敵対的生成ネットワーク)を実装する

# はじめに
本記事のコードは以下のnotebookに記載されています。
外部データなど不要ですので、とりあえずGANを動かしてみたいという方は是非触ってみてください。
https://colab.research.google.com/drive/1TQWMTNDbqLQ0dWo4-rFz1mbY80hLIQNo?usp=sharing

# GANとは
GANはGenerative Adversarial Networkの略であり、敵対的生成ネットワークの邦訳が与えられています。
GANはディープラーニングを利用した生成モデルの一種であり、生成器と識別器という2つのネットワークを持ちます。
これら2つのネットワークが互いに競い合うように学習することが、Adversarial(敵対的)の由来となります。

GANは近年、実在しない高精度の画像を生成することに成功しており、非常に注目されている技術です。
加えてGANの本質は2つのネットワークが競い合うように学習する点にあるため、画像生成以外にも多様なタスクに応用が可能です
そこで今回はGANに対する理解を深める為、Pytorchを用い

元記事を表示

pythonで対数グラフ(それと聴覚閾値)

# 初めに
 この数式って本当にこのグラフになるのかな?って不安になることってありますよね。
 今回はそんな自分の不安にpythonで解決しようとした際に出た問題を記事にしています。

# 問題
 最小可聴値あるいは聴覚閾値と呼ばれるグラフを探した際に次のようなグラフが見つかりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2647158/5c7c1b6b-6c03-9e75-eee6-5bb4e398bcdb.png)
↑wikipediaより

 これをpythonで再現したい。
 xが10の累乗のグラフなので、それが再現できるpythonのコードにしなくてはいけない。

# コード

“`python
import matplotlib.pyplot as plt
import numpy as np
f = np.logspace(1,4,500000,base=10)
ath = 3.64*(f/1000)**-0.8-6.5*np.exp(-0.6*(f/1000

元記事を表示

マイク入力音声をリアルタイムでFFTしてグラフ化する

# 初めに
 この記事はガチでコードだけを置いておこうというやつです。
 なので解説は行っていませんが悪しからず。

# コード

“`python
import pyaudio
import matplotlib.pyplot as plot
import numpy as np

def audiostart():
audio = pyaudio.PyAudio()
stream = audio.open( format = pyaudio.paInt16,
rate = 44100,
channels = 1,
input_device_index = 1,
input = True,
frames_per_buffer = 1024)
return audio, stream

def audiostop(audio, stream):
stream.stop_stream()
stream.close()
audio.terminate()

de

元記事を表示

Flaskアプリケーションのセッション問題

Flaskでアプリケーションを作っていて、ちょっとはまったのでメモ。

## 複数のFlaskアプリケーション

Flask でセッションを使うには、
“`Python
app = Flask(__name__)
app.config[‘SECRET_KEY’] = b’適当なキー文字列’
“`
と設定するのは周知の通り。

たとえば、Flask のアプリケーションを2つ稼働しているとして、
どちらもセッション情報を使う(たとえばログイン情報を保持しておくとか)場合。
同じブラウザの別タグで、それぞれのアプリケーションを開いて、タブを切り替えたりしていると、片方のセッションが消えてしまう現象が発生する。
FlaskはCookie にセッション情報を保存するが、デフォルトだと、”session” という名前になる。
![cookie1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882462/d690a5c8-0f80-d15f-42df-e2de92226281.png)

アプリケーション1つ

元記事を表示

[Python][Tips] 処理時間の計測

https://camp.trainocate.co.jp/magazine/python-time/

上記によると、Python処理の実行時間を測定する方法は以下の3つ。
> (1) time.time() : 最も簡単な実行時間を測定する方法
> (2) time.perf_counter() : 正確に実行時間を測定する方法
> (3) time.process_time() : CPU実行時間のみを測定する方法(sleep時間を除く)

(2)が実用的に使えるので、実際の業務で利用しています。
“`python
import time

start = time.perf_counter() #計測開始
##################################
##### #####
##### 計測したい処理を実行 #####
##### #####
#################################
end = time.perf_cou

元記事を表示

Tello SDK を自分なりに最適化してみた(Tello-Console)

# Tello SDK を自分なりに最適化してみた(Tello-Console)
 Tello を python でプログラミングするときに辿り着く SDK、それは Tello-Python だろう。この記事ではそんな Tello-Python にある tello.py を僕なりに改良した **Tello-Console tello.py** を紹介しようと思う。
 今回初めてこのような記事を書くので、分かりづらい点もあるかもしれないが、そこは指摘があり次第、修正する。

## そもそも Tello って?
![tello画像.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2729782/8d13042e-4f4d-f627-becc-fcd30bb9910d.jpeg)
 そもそも Tello って何なのか。知らない方に簡単に説明すると、**小さなプログラミングで飛ばすことができるドローン**である。とても小型なので室内で飛ばして遊ぶことができ、しかもホバリング性能やカメラの性能が類似する大きさのド

元記事を表示

[Python][Tips] さくっと現在日時を取得したい場合

さくっと現在日時を取得したい時に便利なTips。
大量のデータを扱う場合、現在日時をファイル名先頭に付与することで新旧でソーティングできるのでよく利用しています。
“`Python
import datetime

now = datetime.datetime.now() # 現在日時を取得
dt = now.strftime(‘%Y%m%d%H%M%S’) # YYYYMMDDhhmmssの書式に整形
print(dt) #20220927221536
“`

元記事を表示

YDITS for Twitter/Discordの制作

# YDITS for Twitter/Discordの制作

Qiita初投稿
これは[noteで投稿した記事](https://note.com/yone1130/n/n8bf36ae85da4)の再掲です。

## 使用技術

– [Python3](https://www.python.org/)
– [discord.py v1.7.3](https://discordpy.readthedocs.io/ja/latest/index.html)
– [Git/GitHub](https://github.com/about)
– [防災科学研究所 強震モニタ JSONデータ](http://www.kmoni.bosai.go.jp/)
– [P2P地震情報 API](https://www.p2pquake.net/json_api_v2/)
– [Visual Studio Code](https://code.visualstudio.com/)
– [Twitter API](https://developer.twitter.com/en/products/tw

元記事を表示

openpyxlでiter_rows()を使ったワークシート行のイテレーションを中断するとファイル削除できなくなる

openpyxlでエクセルファイルを開いたのちに削除しようとしてもプロセスがファイルをブロックしていて削除できなかった。

Windows環境
* Windows8.1
* Python 3.10.7
* openpyxl 3.0.10

“`python
import os
from openpyxl import load_workbook

FNAME = ‘sample.xlsx’
# EXCELファイルをオープン
wb = load_workbook ( FNAME, read_only=True )
sheet = wb.active
# 行をイテレーション
for row in sheet.iter_rows() :
# なにか処理
# イテレーションを中断
break
# Workbookオブジェクトを閉じる
wb.close()
# EXCELファイルを削除 –> Win32エラー
os.remove ( FNAME )
“`

根本的な対策はみつからなかった。
イテレーションを中断しないように変更する。

“`python
impo

元記事を表示

【プログラミングにおける高速化】AtCoderで実行時間超過(TLE)を減らす方法

# はじめに

筆者「さあ~周りの友達や同僚もAtCoderやってるし、腕試しでAtCoder始めてみるかあ~」
AtCoder100点問題「うわあああああ(撃墜)」
筆者「よし!クリア!」
AtCoder200点問題「やられたああああ(討伐)」
筆者「よし!いける!」
AtCoder300点, 400点問題「フンッ『”TLE(実行時間オーバー)”』」
筆者「!?!?!?!?」

AtCoderをやっていく中で、以下のようなTLEの結果に出くわすこと多いのではないでしょうか??
TLE(Time Limit Exceeded:実行時間超過)とは、**アルゴリズムが正しくても、規定の実行時間を過ぎてしまうエラー**のことを表します。特に、300点問題(C問題)以上になってくると、TLEに悩まされることが多いと思います。
![001_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2866918/da6525f6-b66b-296a-be7b-51f6f7cd46d1.png)

そこで、今回はAtCod

元記事を表示

【M1 Mac版】Python3のインストール手順まとめ

# 手順
:::note warn
Homebrewがインストールされていること
:::

## 1. pyenvのインストール
“`terminal
$ brew install pyenv
$ pyenv -v
“`

“`terminal:実行結果
pyenv 2.3.0
“`

## 2. pyenvのPathの設定
– 下記コマンドを1行ずつ実行
“`terminal
$ echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.zshrc
$ echo ‘export PATH=”$PYENV_ROOT/shims:$PATH”‘ >> ~/.zshrc
$ echo ‘eval “$(pyenv init -)”‘ >> ~/.zshrc
$ source ~/.zshrc
“`

## 3. pyenvでインストールできるPythonのバージョンを確認
“`terminal
$ pyenv install –list
“`

## 4. Pythonのインストール
“`terminal
$ arch -arch x8

元記事を表示

python – inputがある限りループする

# 例

無限ループさせておいて入力が空であればループを抜ける。

“`py
while True:
x = input()
if x == “”:
break
else:
print(x)
“`

`while line = input():` みたいな簡潔な書き方は出来ない気がした。

# チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

# Twitter

元記事を表示

OTHERカテゴリの最新記事