オブジェクト変数varを消す。初期化したいときなどに使う。
del var
オブジェクトの属性を全て見る。コマンドを調べるときに使う。
dir(object)
リストで文字列から1文字ずつを要素にしたリストが作れる。
>>> list('hogehoge')
['h', 'o', 'g', 'e', 'h', 'o', 'g', 'e]
osモジュールでディレクトリ操作
import os
# ディレクトリ作成
os.mkdir(path)
# カレントディレクトリを返す
os.path.abspath('.')
#ディレクトリ内のファイル名を取得(※ディレクトリ名も拡張子なしで取得される)
os.lisrdir()
import は1度読むと再読み込みしてくれない。reloadする
import importlibimportlib.reload(moduleA)
数字のゼロ埋め
month = 1 # 01にしたい
print('{:02}'.format(int(month)))
でできるがJavaScript的?な書き方で
month = 1
print(('0'*2 + str(month))[-2:])
でもOK。この書き方の便利なところはゼロ埋め桁数を操作しやすいこと
n = 2 # ゼロ埋め桁数
month = 1
print(('0'*n + str(month))[-n:])
formatを使うときはこのように書けばnで変えられる。
month = 1
n = 3
print(('{:0'+str(n)+'}').format(2))
Out: '003'
数字のゼロ埋め その2
2018年1月1日→ '20180101'を作りたいとき
import datetime
now = datetime.datetime.now()
print('{:04}{:02}{:02}'.format(now.year, now.month, now.day) )
スペースで埋める
'{:5}'.format(22)
Out: ' 22'
二種類の文字をformatでゼロ埋め
4桁と5桁でゼロ埋めする例。0, 1は普段のformatのときと同じで、省略可能。
'{0:04}{1:05}'.format(22, 111)
Out: '002200111'
文字列のzfill属性を使う
"22".zfill(6)
とやると、文字列にたいして6桁でゼロ埋めするという意味。
Out: '000022'
数字ではなく文字に対してもできます。
"aa".zfill(6)
Out: '0000aa'
関数のreturn を複数にするとき
def hoge():
# hoge
return a, b
とかくとタプルになって
a, b = hoge()
で受け取ることができる。
return [a, b]
と書いてもよい。
ファイルの最終更新日
import os
import time
# os.path.getmtime()
# time.ctime() UNIX時間から変換する
file = "some_path"
print("last modified: {}".format(time.ctime(os.path.getmtime(file))))
pandas dataframeでインデックスを更新する
df.index = range(len(df))
proxy 環境で git cloneができないとき 、以下を参照のこと
http://sushichop.blogspot.jp/2013/09/git.htmlIPython(jupyter)でhtml表示をする
from IPython.core.display import HTML
from IPython.core.display import display
display(HTML('<b>test bold</b>'))
display(HTML('<i>test italic</i>'))
クラス名を調べる
属するクラスの名前を調べます。
x.__class__.__name__
x.__name__
だけで出せるときもあるみたいですが。
not all arguments converted during string formattingエラー
プレースホルダの数(%s)と、.format()で与える値の数が違っていると出ます文字列のなかにある文字が何回現れるかを調べる
リスト内包表記でカウントしてみます。
text = '(%s, %s, %s)'
len([t for t in text if t == 's']) # 3
Pythonの変数のあとにアンダースコア(_)を入れるのは、予約語との衝突をさけるための慣例(?)
list_
exec_
などの使い方をします。list, execという予約語との衝突をさけて変数を作るためです。
Python launcher
コマンドラインでpyとだけ記述してPythonを起動しているときがあります。
py
と入力すると、インストールされている中で最新のバージョンが起動します。
py -2.7
とすると、2.7
py -2
とすると、python2系の中で最新のものが対象になります
Pythonの予約語を変数名に使ってはいけない
予約語というのは、Pythonで使うことが決められている単語、list, printなどのことです。これに変数を代入すると(できますが)、あとで大変なことに・・・。
>>> print = 1
>>> print('test')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
ということで、printという予約語に 1 を代入してしまったので、printとしての機能はなくなってしまいました。
一行で2つ以上の変数に代入するときの違い
# 1行で2つ代入
# 初期値
a=1
b=2
a, b = b, a # a にb(=2)、b にa(=1)が入る
print(a,b)
-> (2, 1)
aとbは同時に入れ替わっています。
=が終わるまでは上書きされません。
# 別々に代入するとき
# 初期値
a=1
b=2
a = b # a にb(=2)が入る
b = a # b にa(=2)が入る
print(a, b)
-> (2, 2)
0 件のコメント:
コメントを投稿