Content
PyCharmの scanning files to index が異常に長い問題
- Anacondaで環境をつくる
- 作った環境に切り替える際、下に Loading ... でパスが表示されるので、確認する
- PyCharmで、環境を指定する
- Setting -> Project Interpreter で Interpreter を選択
- 選択する中になければ、歯車マークを触って Add する
- Existing Enviroment で加える。
Jupyter / IPython
Markdownのセルに数式を書く
Lecture -29 データタイプ
Lecture 30 コメント
"""
コメント
"""
# コメント
変数の上にコメントを書くのが暗黙のルール
制御フローとコード構造
Lecture 67 import 文と as
モジュールを作る
__int__.py
import ディレクトリ.ファイル名
from ディレクトリ import ファイル名
別のモジュールから関数を呼び出す場合は モジュール名.関数 のほうがわかりやすい
from ディレクトリ import ファイル名 as ニックネーム
Lecture 68 絶対パスと相対パスのimport
Lecture 69 アスタリスクでのインポート、__init__.py
まとめてインポートする場合には、__init__.py 内に定義にしておく
Lecture 70 ImportError の使い所
import に try, except を使う。バージョン違いで使い分けとか。
Lecture 71 setup.pyでパッケージ化
Lecture 72 組み込み関数
import builtins を自動でやっている
例:sorted
map関数
標準ライブラリ
基本機能を使う場合は os
python 関連のシステムをいじる(参照する)場合は sys
算術関連なら math
math : 算術関連
定数
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 でインストール情報が表示されるので、インストール先を調べる
PyCharmでは実行できるが、単独ではパスが通っていない
- Setting> > で設定(歯車)をクリック
- フォルダツリーのマークをクリックして、確認する
パスを通す
その場でパスを追加する
sys.path にパスが格納されているので、これに追加してやる。(その後にimportをするなら、これでできる)
sys.path.append(path)
すでに通っているパスから、リンクを張っておく
すでに通っているフォルダに、(適当な名前).pth というファイルを作成し、この中にパスを書く
Lecture 75 importする際の記述の仕方(マナー)
Lecture 76 __name__ と __main__
if __name__ = "__main__" の意味がわかる
Lecture 90-100 ファイル操作
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.isoformat(sep='T', timespec='auto')
datetime.strftime(format)
- 年
- 月
- %m:0パディングして10進数で表記
- %B:月名(January)
- 日
- %d:月中の日にちを、0パディングして10進数で表記
- %j:年中の日にちを、0パディングして10進数で表記
- 時
- %H:0埋めした10進数で表記した時 (24時間表記)
- %I:0埋めした10進数で表記した時 (12時間表記)
- 分
- 秒
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y/%m/%d %H:%M:%S"))
Lecture 112 スタイルルール
変数
- (1文字のような)短い変数名は、長いコーディングの最中には使わない
改行
- セミコロンでの改行は使わない
- 他の言語のような書き方はしない
- そもそも、なくても改行できるのがpython
- 長過ぎる1行は見づらい
- 長い場合は バックスラッシュ で改行することができる。
ソート
リストのソート
list.sort
keyは関数オブジェクト
辞書型を要素に持つ、リストのソート
関数
引数は値渡しか、参照渡しか → 参照渡し
引数にアスタリスクをつける
可変長の引数。はじめからタプルで渡すのとは違うらしい。
def func(*arg)
print(arg)
def funcB(arg_list)
print(arg_list)
システムコマンドを実行する
os.system('cls') # コンソールのクリア
JSONデータを扱う
import json
obj = json.loads(json_data) # JSONデータをデコードする
new_json = json.damps(obj) # JSONデータにエンコードする
最終更新:2020年05月24日 12:26