python備忘録
言語名の由来は蛇ではなくモンティ・パイソン(テレビ番組)
文の終わりのセミコロンは不要
コメントは行頭に #
複数行は
”’
シングルコーテーション
3つで囲む
”’
インデントが{}の変わりになる
if true :
print(‘ifの中’)
print(‘ifの外’)
help()
ヘルプの起動
シグナルを送信する:キー入力等で命令を送ること
ctrl+c 終了
ctrl+z バックグラウンドに送る
psやfg等を使って戻る
関数
all(iterable)
全てtrueならtrue。and()と同じ。
any(iterable)
いずれかtrueならtrue。or()と同じ
bin(int)
整数を渡して2進数を返す
dict(object)
辞書型データの作成
map(int,[1,2])
[1,2]
第一引数は関数を指定
リスト(配列)等の第二引数を渡すと、すべての要素に対して第一引数の処理をしてくれる。foreachみたいな感じ。
oct(int)
整数を受け取って8進数を返す
open(filename[, mode=”r” [, bufsize]])
ファイルの読み込み
modeは読み込みが”r”、書き込みが”w”
reversed(seq)
要素を逆順に取り出すイテレータ (reverse iterator) を返します。 seq は __reversed__() メソッドを持つか、シーケンス型プロトコル (__len__() メソッド、および、 0 以上の整数を引数とする __getitem__() メソッド) をサポートするオブジェクトでなければなりません。
デバッグ用
repr(object)
str(object)
print(any)
pprint(any) オススメ!
tuple([iterable])
タプルの作成
tuple(‘abc’) は (‘a’, ‘b’, ‘c’) を返し、 tuple([1, 2, 3]) は (1, 2, 3) を返します。
定数
None
Nullのこと。noneではない
bool(None)
falseが返る
false
数値では0や0.0、Noneもfalseになる。
演算子
+ 文字列結合
a ** b aのb乗
ブール演算子
x or y
x and y
not x
!bool エクスクラメーションマークで真理値反転は使えない。比較演算子ではイコールと組み合わせて使える
|や&はビット演算になるので基本使わない
比較
<, <=, >, >=, == 等、いつもの
!= 等しくない
is 同一のオブジェクト
is not 同一のオブジェクトでない
型
数値
複素数型
complex、多分そうそう使わない
イテレータ型
container.__iter__()
iterator.__iter__()
どちらもイテレータを返す?
iterator.next()
コンテナ内の次の要素を返します。
シーケンス型
str unicode list tuple bytearray buffer xrange
リストは [a, b, c] のように要素をコンマで区切り角括弧で囲って生成します。
タプルは a, b, c のようにコンマ演算子で区切って生成します (角括弧の中には入れません)丸括弧で囲っても囲わなくてもかまいませんが、空のタプルは ()のよううに丸括弧で囲わなければなりません。要素が一つのタプルでは、例えば (d,) のように、要素の後ろにコンマをつけなければなりません。
辞書型
dict(one=1, two=2)
dict({‘one’: 1, ‘two’: 2})
dict(zip((‘one’, ‘two’), (1, 2)))
dict([[‘two’, 2], [‘one’, 1]])
以上は全て
{“one”: 1, “two”: 2}
が返る
文字列型について
string.replace(str, old, new[, maxreplace])(原文)
s 内の部分文字列 old を全て new に置換したものを返します。 maxreplace を指定した場合、最初に見つかった maxreplace 個分だけ置換します。
文字列置換
a = string.replace(“abc”, “a”, “”)
“bc”
datetime型
日付や時刻
collections
コンテナ型
collections.Counterはカウント系の作業で便利
正規表現re
import re
prog = re.compile(pattern)
result = prog.match(string)
progを使い回す
findall() はパターンにマッチする全てにマッチ
search() は最初の一個だけ
比較
diff
+とか-とかで差分表示
import difflib as dl
diff = dl.ndiff([“one”,”two”,”three”],[“ore”,”tree”,”emu”])
print ” “.join(diff)
math
数学関数
複素数は扱えない
cmath
複素数関数
ランダム色々
http://docs.python.jp/2/library/random.html
パス
import os
#カレントフォルダを取得
a = os.getcwd()
#ファイル名のみ取得
print(os.path.basename(path))
switch-case文は存在しません。
ifでtrueの時に記述なしはエラーになるので、passと書く
if value_1 == “Python”:
pass
elif value_1 == “python” and value_2 == “izm”:
print unicode(“2番目の条件式がTrue”)
elif value_1 == “IZM” or value_2 == “PYTHON”:
print unicode(“3番目の条件式がTrue”)
foreachはこう
for value in for_sample:
print value
range()でfor nextのように
for num in range(100):
print num
if num == 10:
break
# 複数行のコメントアウト例
”’か”””になる
”’
print “test 3”
print “test 4″
”’
import
from ファイル名 import クラス名など。*で全て
ファイルは同じフォルダに置くか、パスを通しておく
どちらでもない場合は、その場でパスを通す
import sys
sys.path.append(‘/path/to/dir’)
#import本体
#testmod.py
class testclass:
def __init__(self):
print “create testclass”
def testmethod(self,str):
print “call testmethod”
print str
#main.py
if __name__ == “__main__”:
import testmod
testclass1 = testmod.testclass()
testclass1.testmethod(“1”)
from testmod import testclass
testclass2 = testclass()
testclass2.testmethod(“2”)
ディスカッション
コメント一覧
まだ、コメントがありません