Python
勉強し始めたばかりなので、今はメモ代わり。
pip
パッケージ(ライブラリ?)をインストールしてくれるやつ。コマンドプロンプトで使う。
使い方:
pip <command> [options]
ヘルプ
pip -h
あるいは
pip
だけでも
インストール済みのパッケージを一覧表示
pip list
パッケージ詳細表示
pip show [パッケージ名]
パッケージのアップグレード
pip install --upgrade [パッケージ名]
OSモジュール
作業フォルダパス
os.getcwd()
フォルダ作成。相対パスも可
os.mkdir(path)
コメント
コメントアウト
#コメント
文字列
文字列の長さ
len(STRING)
文字列のn+1番目の文字
STRING([n])
文字の連結
STRING1 + STRING2
STRING1 += STRING2 も可能
分割/置き換え
STRING.split()
STRING.replace('abc','def')
右端の文字(a)の削除
STRING.rstrip('a')
文字列フォーマット
errmsg = "Can't open file"
errcode = 19042
msg = "ERROR: %s (%d)" % (errmsg, errcode)
print msg #=> ERROR: Can't open file (19042)
%s は文字列、%d は整数、%f は浮動小数点数、%x は16進数、%o は8進数、%% は %自身を示します。
print "%s" % "ABC" #=> ABC
print "%d" % 123 #=> 123
print "%f" % 1.23 #=> 1.23
print "%x" % 255 #=> ff
print "%o" % 255 #=> 377
print "%%%d" % 80 #=> %80
% に続く数値で文字幅や桁数を指定することができます。
print "|%5s|" % 'ABC' #=> | ABC| : 右寄せ5文字分
print "|%-5s|" % 'ABC' #=> |ABC | : 左寄せ5文字分
print "|%5d|" % 123 #=> | 123| : 右寄せ5桁
print "|%-5d|" % 123 #=> |123 | : 左寄せ5桁
print "|%+5d|" % 123 #=> | +123| : ±符号付き
print "|%5.2f|" % 1.23 #=> | 1.23| : 全体桁数.少数点以下の桁数
print "|%05d|" % 123 #=> |00123| : 0埋め
Unicodeに変換
ord('a')
Unicodeから文字
chr(97)
大文字小文字
STRING.isupper()
STRING.islower()
文字列のときはisupperは「文字列に含まれる全ての英字が大文字かどうか」
文字列のときはislowerは「文字列に含まれる全ての英字が小文字かどうか」
リストを連結して文字列に
STRING.join(LIST)
javascript的に書くとLIST.join(STRING)なのに注意したい。
リスト
Pythonでは配列と呼ばんのか?作成
['a','b','c']
追加 - pushと同じか
LIST.append(data)
タプル
変更できないリスト作成
('a','b','c')
辞書
個人的には辞書型という言葉に馴染みはないが、jsonとかそういう感じのやつか作成
d = {} #何も指定しなかったら空の辞書
d = {'one':1 , 'two':2 , 'three':3} #中身も一緒に作成
追加
d['name'] = 'sakamoto'
セット(集合)
重複を認めないリスト的なもの。めっちゃよくね?便利かも。リストから変換
L = ['a','b','c','d','a','b','c','d']
s = set(L)
インデックスで呼び出すとエラーになる。要素がを含むかどうか
'a' in SET #True/False
集合の計算
A|B (和)
A-B (差)
A&B (積)
A^B (対称差)
for
{~} でブロックを指定するのではなくて、インデントで下げる。まぁ普段の書き方とさほど変わらんね。10回の繰り返し
for i in range(0,10):
リスト内を繰り返し
for i in LIST:
神かよ...何回目の繰り返しか拾う
abc = ['a',b','c']
for i , abc in enumerate(abc):
print(i)
print(abc)
while
これはまあ普通5未満の間繰り返し
i=0
while i<5 :
print(i)
i+=1
もちろんbreak可能
i=0
while i<5 :
print(i)
i+=1
break
if
コロンが必要なのね。elifってなんや。書くの楽やしええけど。書式
if 条件:
処理
elif 条件:
処理
else:
処理
標準入力
javascriptでいうところのpromptinput('ほげー')
型変換
整数化
int( hoge )
自動的に文字に変換(であってる?)
a = 10
b = 20
print('aは{0}でbは{1}である'.format(a,b))
Random
リストから指定した数だけランダムに抽出
random.sample(LIST,NUM)
Global?
全てTrueかどうか判定
all ( iterable )
With
javascriptのwithとは違うwith open("FileName.txt") as f:
print f.read()
withの終わりと同時にオブジェクトの終了処理が実行される...らしい。ファイルのときはclose()が自動的に呼ばれる。他のときは?
関数
宣言がfunctionじゃない宣言
def myFunc(arg = "a"):
処理
return
使い方は普通。returnがないときはNoneを返す。
引数に=で値を与えるとデフォルト値になる。
戻り値が複数
def func():
return 1,'A'
a,b = func()
print a, b #1 A
オブジェクトでまとめて返さなくてもいいのか!
ラムダ式
簡単な関数。式なので1行?myfunc = lambda x, y: x+y
sorted(),map(),filter()に渡す関数としてよく使われるらしいです。
何ループ目か enumerate
for i , n in enumerate(L,2)
iに番号、nにリストLの内容が順番に入る。2個目の引数でスタートの数字を指定可能。なければ0。