- 1. 【Python】Seleniumで読み込み待ちができない場合の対処方法
- 2. Fizz Buzz(paizaランク C 相当):Python3解答例
- 3. 30秒で読めるTensorflowのgpuインストール方法
- 4. 【paizaランク C 相当】みかんの仕分けをやってみた!:Python3解答例
- 5. Openpyxl: Border、値、スタイル、コラム幅のコピー
- 6. Aランク解きたい人超必見!!Aランク問題全てを考察から解法まで超丁寧に解説
- 7. 足し算 (paizaランク D 相当) Python解答例
- 8. 2024年版 MySQLに接続するライブラリ(Python)
- 9. Python いろいろなリスト内包表記の使用法について
- 10. Python3: 長テーブルのうなぎ屋 (paizaランク B 相当)やってみた
- 11. 【備忘録】Ubuntu 24.04 で Python3.12 の Pip を利用する
- 12. python3 エンジニア認定データ分析試験チートシート3 ~Matplotlib~
- 13. Openpyxl: Border のコピー
- 14. python3 エンジニア認定データ分析試験チートシート1 ~データ分析エンジニアの役割~
- 15. python3 エンジニア認定データ分析試験チートシート2 ~Numpy~
- 16. Openpyxl: コラムの削除
- 17. 【Python】入門 開発環境を作成
- 18. AmazonLinux2にPython3.13.0rc1をインストールしてThreadの性能を比較してみた
- 19. 夏休みの宿題① ~mod7占い~
- 20. WindowsでのPythonスクリプト実行時のUTF-8問題と解決策
【Python】Seleniumで読み込み待ちができない場合の対処方法
# はじめに
ページを読み込み終わる前に、後続の処理を実行してしまい、処理が失敗してしまう事象が発生した。
## 環境
Python 3.12.4
Selenium 4.23.1
Windows 10 22H2
# 起きた問題
ページの読み込みが終わる前に、後続の処理を実行してしまい、処理が失敗してしまう事象が発生した。
サンプルコードは、ログインを自動化する処理のコードである。
サンプルコードでは、ログインID入力欄、パスワード入力欄、ログインボタンが読み込まれる前に、ログインID・パスワードを入力し、ログインボタンを押下する処理が発生する。
## サンプルコード
“` python:auto_login.py
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_condition
Fizz Buzz(paizaランク C 相当):Python3解答例
## 問題
– 整数 N が入力として与えられます。
1からNまでの整数を1から順に表示してください。– ただし、表示しようとしている数値が、
1. 3の倍数かつ5の倍数のときには、”Fizz Buzz”
2. 3の倍数のときには、”Fizz”
3. 5の倍数のときには、”Buzz”を数値の代わりに表示してください。
“`diff_python
N = int(input())for i in range(1, N + 1):
#3の倍数かつ5の倍数(15の倍数)のとき
if i % 3 == i % 5 == 0:
print(“Fizz Buzz”)#3の倍数のときには、”Fizz”
elif i % 3 == 0:
print(“Fizz”)#5の倍数のときには、”Buzz”
elif i % 5 == 0:
print(“Buzz”)#3の倍数、5の倍数、15の倍数以外のときには、数字を出力
else:
30秒で読めるTensorflowのgpuインストール方法
# 記事のターゲット層
ネットに散乱するインストール手順を試して失敗した人向け(CUDA、cudnnのインストールを行った)# 要は
https://www.tensorflow.org/install/pip英語版のインストール手順見たほうがいい(日本語版は色々古くて大変)
【paizaランク C 相当】みかんの仕分けをやってみた!:Python3解答例
## 問題: みかんを重さごとに仕分ける
### 入力:
仕分ける重さの区切りを表す整数 N
みかんの個数を表す整数 M
各みかんの重さ w_1 から w_M:::note info
例えば N = 10 の時、10 g, 20 g, 30 g … のように仕分けられます。そして、そのみかんの重さが一番近い数の重さに仕分けられます。
重さが一番近い箱が複数ある場合、数が大きい方の箱に仕分けられます。
– 24 g のみかんはより値の近い 20 g と書かれた箱に仕分けられます。
– 35 g のみかんは 30 g, 40 g の箱と差が同じです。この場合は数の大きい方の 40 g の箱へ仕分けてください。
– 0g に仕分けられることはないので、一番小さい重さに仕分けてください。
:::inputで複数の値を取得する際に、複数の値を取得する方法をまとめます。
指定された数の文字列を格納します。“` diff_python
# 入力された文字列を分割してNとMを取得します。
N, M = input().split()
“`
stripメソッドとは
strip
Openpyxl: Border、値、スタイル、コラム幅のコピー
こちらのプログラムを改造して、値、スタイル、コラム幅もコピーするようにしました。
[Openpyxl: Border のコピー](https://qiita.com/ekzemplaro/items/ba414f899f3324b4ddf5)## プログラム
“`py:copy_borders_value.py
#! /usr/bin/python
# —————————————————————
# copy_borders_value.py
#
# Aug/08/2024
# —————————————————————
import sys
import openpyxl
from openpyxl.styles.borders import Border, Side
from openpyxl.utils import get_column_letter
# ———————
Aランク解きたい人超必見!!Aランク問題全てを考察から解法まで超丁寧に解説
## 0. はじめに
みんなでAランク問題を解こう!ハッピー!気を取り直して、簡単な自己紹介をします。
* 高校生
* 記事投稿時AtCoder緑(989) -> [yuuDot](https://atcoder.jp/users/yuuDot)
* 競技プログラミングをメインにプログラミングをしている
* 2月ごろに始めたときはif, for, whileなどがわかるくらい(continue ?, def ? なんすかそれ、みたいな感じでした)
* Qiita初投稿。不備などあったら是非教えてください。今回は競技プログラミングをしていなかった頃の自分にもわかるくらい、丁寧に自分の考え方などを書いていこうと思います。
少しでもアルゴリズム、プログラミングのすばらしさを知っていただければ幸いです。**さあ、行こう!**
## 1. Aランク問題の個人的な印象
今回全5問のAランク問題をすべて解いてみたところ、完全に典型的な処理を適用するものと、考察を行い、それに適したアルゴリズムを適用するものの二つに分かれていると感じました。
#### 典型的なもの
* お菓子の詰め合わせ
足し算 (paizaランク D 相当) Python解答例
## 問題:2つの正の整数 a, b が半角スペース区切りで入力されるので a と b を足した数を出力してください。
※「掛け算」の問題では入力が改行区切りで与えられましたが、今回は半角スペース区切りで与えられます。
入力は以下のフォーマットで与えられます。
a b### まず、Python3でinputとsplitを使用し、複数の値を受け取ります。
inputで複数の値を取得する際に、複数の値を取得する方法をまとめます。
指定された数の文字列を格納します。
“`diff_python# 入力された文字列を分割してaとbを取得します
a, b = input().split()“`
### 次に、Python3のmap()を用いて、全ての要素に関数を適用します。int関数を使った記述方法は以下の通りです。
“`diff_python
# map()を使って入力された文字列をintを使って、数値として分割してaとbを取得します
a, b = map(int, input().split())“`
#### 数値として分割できているか心配な場合は、p
2024年版 MySQLに接続するライブラリ(Python)
## はじめに
この記事は以下の記事に影響を受けております。先日Pythonでバックエンドプログラムを作成していたのですが、MySQLに接続する機会がありましたのでライブラリ選定をする中で以下の記事に巡り合いました。
https://qiita.com/nanbuwks/items/a990ad5dac8bbe888761
なお2024年現在でも StackOverflowのpopular technologies (Prodessional Developers) にてMySQLはDBの4割の知名度、Pythonは45%の知名度なのでこの組み合わせでの利用は一定数の需要があるものと思っております。
https://survey.stackoverflow.co/2024/technology#most-popular-technologies-language-prof
## 結論
お急ぎの方もいらっしゃると思いますので結果だけ載せます。
:::note info
– mysql-connector-python
– MySQLの最新版に追従する多様な機能を
Python いろいろなリスト内包表記の使用法について
# はじめに
paizaラーニング中、リスト内表記について、すぐに使用法を確認できるように、知っている範囲でまとめました。リスト内包表記はシンプルに記載でき、パイソニックなコードになり、かつ、スピードが上がるので好きな構文です。
オライリー・ジャパンの「Python入門3」と[note.nkmk.me](https://note.nkmk.me/python-list-comprehension/#if-else)の記事を参照させてもらっています。
# リスト内包表記とは
リスト内包表記は、あるシーケンスや iterable (イテレート可能オブジェクト) のそれぞれの要素に対して、**ある操作を行った結果を要素にしたリスト**を作ったり、**ある条件を満たす要素だけからなる部分シーケンスの作成**を簡潔に生成することができます。# 基本構文
**[** expression **for** item **in** interable **]**リスト内包表記は、括弧の中の 式、 for 句、そして0個以上の for か if 句で構成されます。
“`python
Python3: 長テーブルのうなぎ屋 (paizaランク B 相当)やってみた
よく知られている問題ですが、ちょっと違うやりかたでやってみました。
https://paiza.jp/works/mondai/b_rank_skillcheck_sample/long-table
“`py:
# 循環リストにおいて x は [ start, end ) の範囲内にあるか
inrange = (lambda start, end: lambda x:
( (l := start <= x) , (g := x < end) , l and g if start < end else l or g if end < start else False )[-1] ) LEN_SEATS, LEN_GROUPS = map(int, input().split()) sits = [] total = 0 for _ in range(LEN_GROUPS): n, star
【備忘録】Ubuntu 24.04 で Python3.12 の Pip を利用する
# 導入
Pythonの仕様の変更とOSのバージョンにより,これまでの `pip3 install xxx` のように Ubuntu で pip コマンドが使えなくなった.これによって,基本的に Python は venv の仮想環境下でのみの実行しか行えなくなっている.例えば,`numpy` をインストールしようと,以下のようにコマンドを実行するとエラーが出力される.
“`
$ pip3 install numpy
error: externally-managed-environment× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.If you wish to install a non-Debian-packaged Python package,
c
python3 エンジニア認定データ分析試験チートシート3 ~Matplotlib~
## Matplotlib
### Matplotliの概要
2次元のグラフを描画するためのライブラリ
JupyterNotebookと親和性が高い
グラフを描画するためのスタイルが2つ
* MATLABスタイル
* オブジェクト指向スタイルインポートは以下
“`python:matplotlib.py
import matplotlib.pyplot as plt
“`#### MATLABスタイル
“`python:matlab.py
# データ準備
x = [1, 2, 3]
y = [2, 4, 9]plt.plot(x,y)
plt.title(‘MATLAB=style’)
plt.show()
“`
![MATLAB-style.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423623/936620c3-ff3d-f592-4e8c-9bce7a59e10a.png)#### オブジェクト指向スタイル
描画オブジェクトに対して、サブプロットを追加してサブプロットに
Openpyxl: Border のコピー
こちらのページを参考にしました。
[罫線を別のシートやブックにコピーする[openpyxl]](https://utataneblog760.com/122copyborder/)11列目からの6列の罫線を、17列目以降にコピーする例です。
## プログラム
“`py:copy_borders.py
#! /usr/bin/python
# —————————————————————
# copy_borders.py
#
# Aug/06/2024
# —————————————————————
import sys
import openpyxl
from openpyxl.styles.borders import Border, Side
#
# —————————————————————
def copy_ce
python3 エンジニア認定データ分析試験チートシート1 ~データ分析エンジニアの役割~
# このページについて
データ分析試験を受験するにあたって、自分が見直ししやすいように要点をまとめたシートを作成した。
記載内容は翔泳社「Pythonによるあたらしいデータ分析の教科書」から章ごとにまとめていくことにする。## データ分析エンジニアの役割
### データ分析の世界
#### Pythonの特徴
* 言語仕様としてわかりやすい
* コンパイル不要、動的スクリプト言語
* 標準ライブラリと外部パッケージの豊富さ
* データ分析以外も応用可能
* オープンソース#### Pythonの得意分野
* サーバ系ツール
* Webシステムの構築
* IoTデバイスの操作
* 3Dグラフィックス#### Pythonの苦手分野
* Webアプリなどのフロントエンド
* デスクトップGUI
* 速度向上などの低レイヤー処理(得意:C++,Rust)
* 超大規模かつミッションクリティカルな処理(得意:C#,Java)#### Pythonでデータ分析に使用されるツール
* Jupyter Notebook
* Numpy
* pandas
* Matplotlib
*
python3 エンジニア認定データ分析試験チートシート2 ~Numpy~
### Numpy
#### Numpyの概要
* データ型は揃える必要があるデータ構造は以下
* 配列用Ndarray
* 行列用matrix#### インポート
“`python:import.py
import numpy as np
“`#### 配列作成 array
“`python:makearray.py
# 1次元配列
a = np.array([1, 2, 3])
# 2次元配列
b = np.array([[4, 5, 6],[7, 8, 9]])
“`
#### 要素の確認 type,shape,dtype
“`python:check.py
a
>> array([1, 2, 3])print(a)
>> [1, 2, 3]type(a)
>> numpy.ndarraya.dtype
>>dtype(‘int64’)a.shape
>>(3,)
b.shape
>>(2, 3)
“`#### 配列の変形 reshape
“`python:reshape.py
c1 = np.array([0, 1, 2, 3, 4
Openpyxl: コラムの削除
## プログラム
“`py:delete_columns.py
#! /usr/bin/python
# —————————————————————
# delete_columns.py
#
# Aug/06/2024
# —————————————————————
import sys
import openpyxl
#
# —————————————————————
xlsx_in=sys.argv[1]
#
sys.stderr.write(“xlsx_in = %s\n” % xlsx_in)
wb = openpyxl.load_workbook(filename=xlsx_in)
ws = wb.worksheets[0]
#
ws.delete_cols(29,5)
ws.delete_cols(23,5)
w
【Python】入門 開発環境を作成
# はじめに
Pythonは非常に多くのケースで利用されているプログラミング言語となります。
様々な異なるバージョンのライブラリやパッケージが必要とされることが多くなりました。プロジェクトが異なる場合、利用するライブラリやパッケージのバージョンが異なることが多々あるため、バージョンの競合する問題が発生します。
例えば、あるプロジェクトは`requests`というモジュールを利用する場合、
`pip install requests==2.0`としてインストールした場合、別プロジェクトで1.0を利用したい場合、インストールができません。`venv`はこのようなパッケージバージョンの競合を回避するために仮想環境を作成するツールとなります。
# venvコマンド
## 仮想環境の作成
venvコマンドで仮想環境を作成します。.venvは作成する仮想環境名になります。仮想環境名は任意で構いません。コマンドを実行するとフォルダ「.venv」が作成されます。
“`bash
python3 -m venv .venv
“`## 仮想環境のアクティベート
activateコマンドで
AmazonLinux2にPython3.13.0rc1をインストールしてThreadの性能を比較してみた
8月1日にPython3.13.0rc1がダウンロード可能になりましたので、AmazonLinux2に入れ簡易スクリプト使ってThreadingの性能を3.9.19と比較してみました。リリース内容は以下のページから確認できます。
https://pythoninsider.blogspot.com/2024/08/python-3130-release-candidate-1-released.html
# 前提
OS:Linux amazonlinux2 4.14.348-265.565# 1. 必要packageのインストール
ビルドに必要となるpackageを入れておきます。
“`bash
yum install -y bzip2 bzip2-devel gcc git libffi-devel openssl11 openssl11-devel readline readline-devel sqlite sqlite-devel zlib-devel libdb-devel gdbm-devel xz-devel tk-devel uuid-devel
“`公
夏休みの宿題① ~mod7占い~
paizaの問題キャンペーンが始まっているので夏休みの宿題がてらに解いてみました✨
まずはウォーミングアップとpaizaの使い方になれるため、まずはこちらの問題を解いてみました🎵https://paiza.jp/works/mondai/s_rank_skillcheck_sample/mod7
# 結果
入力の仕組みに戸惑いましたが、無事100点取ることができました!![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273072/efe28e9e-4e59-4e24-3f26-7cd81f80797d.png)
解き方は、Pythonのcombinationsライブラリを活用して、配列の中にある数字3組で組み合わせを作成し、後は配列ごとに加算して7で割れるかどうか判定するだけです。
うーん…もっと最適化できる気がする…
WindowsでのPythonスクリプト実行時のUTF-8問題と解決策
## 問題の根本
WindowsでのPythonスクリプト実行時、システムのデフォルトエンコーディング(多くの場合Shift-JIS)とUTF-8で書かれたスクリプトとの間で不一致が発生し、文字化けや実行エラーを引き起こします。
## 解決策:UTF-8 Mode (PEP 540)
Python 3.7で導入されたUTF-8 Modeは、この問題に対する主要な解決策です。
### 主な特徴
1. Pythonのデフォルトエンコーディングをシステム設定に関わらずUTF-8に設定
2. ファイルシステムエンコーディングは変更されない
3. 新しく開かれるファイルのデフォルトエンコーディングがUTF-8になる### 有効化方法
– 環境変数 `PYTHONUTF8=1` を設定
– コマンドライン引数 `-X utf8` を使用## 影響
1. Pythonスクリプトファイル(.py): すべてUTF-8として読み込まれる
2. コンパイル済みライブラリ(.pyc, .pyd, .so): UTF-8 Modeの影響を受けない
3. 外部ファイルの読み書き: 明示的な