Python > ライブラリ

下位ページ

Content

標準ライブラリ

https://docs.python.jp/3/index.html

基本機能を使う場合は os python 関連のシステムをいじる(参照する)場合は sys

算術関連なら math

math : 算術関連

定数

π : math.pi e : math.e https://docs.python.org/ja/3/library/math.html?highlight=math#constants https://docs.python.org/ja/3/library/math.html?highlight=math#module-math

bisect : 配列二分法アルゴリズム

「ソートされている」配列からの検索を早くする。O(logN) での検索になる。 ただし(当然)、挿入、削除は O(N) 必要。 [[bisect --- 配列二分法アルゴリズム >> https://docs.python.org/ja/3/library/bisect.html#module-bisect]] [[Python標準ライブラリ:順序維持のbisect - Qiita >> https://qiita.com/ta7uw/items/d6d8f0ddb215c3677cd3]]

Lecture 74 サードパーティのライブラリ

pypi.python.org pip install termcolor

# termcolor は出力の文字色を変えたりできる。

pip と conda の衝突

管理方法が違うため、モジュールの導入に pip と conda を両方用いると衝突することがあるらしい。 htmlリスエストを出すところで、dll を衝突させて動かなくなったのは、この影響なのか?

状況

conda で環境を切っていたが、conda に無いモジュールを使いたかったので、pip で入れた。 → 外部アクセスができなくなった(request が失敗。) request モジュール自体は標準なので、モジュール自体がなにか、というわけではないとおもうが・・・

一括インストール

インストールをしたが、パスが通らない

確認方法

import sys
print(sys.path)

で、見に行っているパスが表示される

>$ pip show (package)

で、pip でインストール情報が表示されるので、インストール先を調べる

PyCharmでは実行できるが、単独ではパスが通っていない

  1. Setting> > で設定(歯車)をクリック
  2. フォルダツリーのマークをクリックして、確認する

パスを通す

*その場でパスを追加する

sys.path にパスが格納されているので、これに追加してやる。(その後にimportをするなら、これでできる)

sys.path.append(path)

*すでに通っているパスから、リンクを張っておく

すでに通っているフォルダに、(適当な名前).pth というファイルを作成し、この中にパスを書く

Lecture 75 importする際の記述の仕方(マナー)

Lecture 76 __name__ と __main__ if __name__ = "__main__" の意味がわかる

Lecture 90-100 ファイル操作

Python/ファイル操作

Lecture 101 subprocessでコマンドを扱う

import subprocess subprocess.run(['dir'])

Lecture 102 datetime

from datetime import datetime 日付と時間を両方扱うなら datetime.datetime

from datetime import datetime
 
print(datetime.now())

出力

2018-08-13 22:49:53.990395

datetime — 基本的な日付型および時間型 - Python ドキュメント>

フォーマッティング

datetime .isoformat (sep='T', timespec='auto') 日付と時刻を ISO 8601 形式(YYYY-MM-DDTHH:MM:SS.mmmmmm) か、 microsecond が 0 の場合には YYYY-MM-DDTHH:MM:SS で表した文字列を返します。 https://docs.python.jp/3/library/datetime.html#datetime.datetime.isoformat

datetime.strftime(format)

    • %Y:西暦4桁
    • %y:西暦下2桁
    • %m:0パディングして10進数で表記
    • %B:月名(January)
    • %d:月中の日にちを、0パディングして10進数で表記
    • %j: 年中の 日にちを、0パディングして10進数で表記
    • %H:0埋めした10進数で表記した時 (24時間表記)
    • %I:0埋めした10進数で表記した時 (12時間表記)
    • %M:0埋めした10進数で表記した分
    • %S:0埋めした10進数で表記した秒
from datetime import datetime
 
now = datetime.now()
print(now.strftime("%Y/%m/%d %H:%M:%S"))

https://docs.python.jp/3/library/datetime.html#datetime.date.strftime strftime() と strptime() の振る舞い - Pythonドキュメント>

Lecture 112 スタイルルール

変数

  • (1文字のような)短い変数名は、長いコーディングの最中には使わない
    • その変数が何を表しているのか、わからなくなる

改行

  • セミコロンでの改行は使わない
    • 他の言語のような書き方はしない
    • そもそも、なくても改行できるのがpython
  • 長過ぎる1行は見づらい
    • 長い場合は バックスラッシュ で改行することができる。

ソート

リストのソート

list.sort keyは関数オブジェクト

辞書型を要素に持つ、リストのソート

関数

引数は値渡しか、参照渡しか → 参照渡し

Pythonの引数における参照渡しと値渡しについて - Let'sプログラミング>

引数にアスタリスクをつける

可変長の引数。はじめからタプルで渡すのとは違うらしい。

def func(*arg)
  print(arg)
 
def funcB(arg_list)
   print(arg_list)

システムコマンドを実行する

os.system('cls') # コンソールのクリア [[https://algorithm.joho.info/programming/python/console-window-clear-py/]]

JSONデータを扱う

import json
 
obj = json.loads(json_data)  # JSONデータをデコードする
new_json = json.damps(obj)  # JSONデータにエンコードする

json --- JSON エンコーダおよびデコーダ>

最終更新:2020年08月11日 12:09