はじめに
Pythonには様々なライブラリ・関数が、標準・外部ともに存在します。
しかし、その全てを把握できていない人も大勢いると思います。
今回は、以下の3点に対しての解決案として関数やライブラリをご紹介します。
- Pythonで何がライブラリや組み込み関数で実装されてるのか分からない人
- 他人のコーディングを見てもすぐに理解できない人
- 作りたいものはあるが、どう作っていいか手も足も出ない人
この記事を通して、以上の苦手意識を少しでも解消していただけると幸いです!!
QiitaもしくはWebブラウザのお気に入りに登録し、困った時に都度ご活用ください!!
この記事はこれからも更新する予定ですので、ストックすると良いですよ🐍🎸
目次
- 文字列の初め/最後に特定の文字列があるか調べたい
- ライブラリにどんなモジュールや関数があるのか一覧で知りたい
- マウス操作、キーボード操作をしたい(準備中)
- 設定ファイルの情報を取得したい(準備中)
- 文字列の初め/最後にある特定の文字列を削除したい(Python3.9以降)
- for文がどこまで進んでるのか可視化したい
- References
本編
文字列の初め/最後に特定の文字列があるか調べたい
Python3.9以降に導入された組み込み関数です。
startswish() #初め
endswish() #終わり
例:"Python3"の後ろに"3"があるかどうか調べるとき、
if "Python3"[-1]=="3":
(以下、条件を満たすときのコード)
こういう形で、書くことはできます。
ただ、この条件式が真ならばTrue、偽ならばFalseと判断したい場合は、
if "Python3".endswish("3")
(以下、条件を満たすときのコード)
というように、組み込み関数を用いた記述ができます。
特に、判定のロジックが複雑になるほど、一目で分かりやすいため、
記述ミスを減らすことにもつながります。
endswish()関数は、ファイル名の拡張子を判別したいとき等にも活用できます!
ライブラリにどんなモジュールや関数があるのか一覧で知りたい
from see import see #see関数を用いる/※seeライブラリは外部ライブラリです。
import "調べたいライブラリ、モジュール"
see( ーーーー調べたいライブラリ、モジュールーーーー)
初心者にとって手を止めてしまうことの一つとして、
ライブラリの中身を把握できていないことが私の経験上ありました。
ライブラリを道具箱に喩えるとするなら、その中の道具が何かわからないという状況です。
公式ドキュメントやQiitaなど、調べたとしても分かってるようで分からない。。
collections,sklearn,matplotlibなど、多くの道具が入れられているライブラリは、自力で実装し終わってから判明することもしばしば。。
▶▶こうした問題を解決してくれるのがseeライブラリです!
以下、標準ライブラリの一つであるmathライブラリの中身を調べた時の入出力です。
import math
from see import see
see(math)
[出力結果]
ismodule help() .acos() .acosh() .asin()
.asinh() .atan() .atan2() .atanh() .ceil()
.comb() .copysign() .cos() .cosh() .degrees()
.dist() .e .erf() .erfc() .exp()
.expm1() .fabs() .factorial() .floor() .fmod()
.frexp() .fsum() .gamma() .gcd() .hypot()
.inf .isclose() .isfinite() .isinf() .isnan()
.isqrt() .ldexp() .lgamma() .log() .log10()
.log1p() .log2() .modf() .nan .perm()
.pi .pow() .prod() .radians()
.remainder() .sin() .sinh() .sqrt() .tan()
.tanh() .tau .trunc()
このmathライブラリは数学に関するものですが、この出力結果を元に、
・asin,acos,atanなどがのsin, cos,tan以外の三角関数
・isinfやisnanといった条件の真偽でTrueやFalseを返す関数
・円周率πやネイピア数eといったお馴染みの定数
以上の3点の実装があることを確認できました。
▶組み込み関数の一つのdir関数でも確認できますが、出力結果が見易いという点でsee関数をお勧めしています。
▶外部ライブラリにつき、予めインストールを要します。(以下、入力例)
pip install see
マウス操作、キーボード操作をしたい(準備中)
import keyboard
import mouse
▶標準ライブラリの一つであるctypesでもキーボード操作は可能ですが、記述内容が理解しやすいという点でkeyboardライブラリをお勧めしています。
ctypesライブラリの場合は、ASCII文字コードの記述を要する(例 Esc:27)
▶外部ライブラリにつき、予めインストールを要します。(以下、プロンプトでの入力例)
pip install mouse
pip install keyboard
文字列の初め/最後にある特定の文字列を削除したい(Python3.9以降)
Python3.9以降に導入された組み込み関数です。
removeprefix() #はじめ
removesuffix() #最後
▶Python3.9以降には、文字列の初め/最後にある特定の文字列を削除する組み込み関数が実装されています。
▶バージョンが上がれば新機能が実装されるので、特に理由がなければ初心者の方には最新版(※ただし安定版)を使うのをお勧めしています。
以下、使用例です。
tsundere = "べ、べつに、、君のこと好きなんじゃないんだからね‼"
waruguchi=tsundere.removeprefix("べ、べつに、、")
honshin=tsundere.removeprefix("べ、べつに、、").removesuffix("なんじゃないんだからね‼")
print(tsundere) #'べ、べつに、、君のこと好きなんじゃないんだからね‼'
print(waruguchi) #'君のこと好きなんじゃないんだからね‼'
print(honshin) #'君のこと好き'
for文がどこまで進んでるのか可視化したい
from tqdm import tqdm
for 添え字 in tqdm(range(数字)):
# 処理
外部ライブラリのtqdmは、プログレスバー(ステータスバー)により、for文の進捗状況を可視化することができます。
以下、実装例です。
from tqdm import tqdm
for i in tqdm(range(5)):
print(i)
出力結果
0%| | 0/5 [00:00<?, ?it/s]0
1
2
3
4
100%|██████████████████████████████████████████████████████████████████████████████████| 5/5 [00:00<00:00, 5000.36it/s]
▶外部ライブラリにつき、予めインストールを要します。(以下、入力例)
pip install tqdm
References
More Info
About me
-
SNS landing page(lit.link): https://lit.link/myon123
-
Twitter(仕事用): https://twitter.com/myonitbusiness
-
Twitter(プライベート用): https://twitter.com/myonmusicpgdev
-
YouTube(Composer): https://www.youtube.com/channel/UC22_pvlkQynYsrSpAfyzEzA
-
SpeakerDeck: https://speakerdeck.com/myon_bioinformatics
-
マシュマロ(質問箱): https://marshmallow-qa.com/myonitbusiness
-
Microsoft TechNet: https://social.msdn.microsoft.com/Profile/myon.TechNet
-
プロフカード: https://profcard.info/u/ziUhwgZihSSTLZdqPZ0gz5aru6A3
-
ニコニコ動画(niconico): https://www.nicovideo.jp/user/126513036
-
Wish List: https://www.amazon.co.jp/hz/wishlist/ls/290EJPJ3PAS73?ref_=wl_share
-
転職ドラフト: https://job-draft.jp/users/58541
-
RESUME.id: https://www.resume.id/myon
-
Wantedly: https://www.wantedly.com/id/myon123
-
Mastodon: https://mstdn.social/@myon
-
Instagram: https://www.instagram.com/myonmusicpgdev
-
Pinterest: https://www.pinterest.jp/myonmusicpgdev
-
Forkwell: https://portfolio.forkwell.com/@myon