Python備忘録

.15 2013 Python comment(0) trackback(0)
最近Pythonをいじる機会が増えた。とはいってもそんなに頻繁にPythonいじるわけではない。
そんなわけで「よく使うメソッド」とかその他細々した書き方とかすぐ忘れて毎回調べてるのでいい加減まとめようと思う。

header
	#!/usr/bin/env python
	# -*- coding: UTF-8 -*-
	
自分の用途ではこれに続いてsys、osあたりをimportすることが多い。


ファイル
たとえばテキストファイルのcpならこんな感じ
	f = open(fsrc, 'rb')
	f2 = open(fdest, 'wb')
	for line in f:
		f2.write(line)
	
モードでbを指定しないと環境によって\nだったり\r\nだったりしてトラブルのもと。
特に理由がない限り'b'を指定した方が無難かも。


関数
	def func(args):
		return ret
	


for文
	for i in range(5):
	
これでi = 0, 1, 2, 3, 4が実行される。 range(5) == [0, 1, 2, 3, 4] というリストを生成する関数。


文字列分割
	if string.split()[0] == "hoge":
	
普通は要素数とか確認してから使う。splitは区切り文字を指定することもできるが指定しない事のほうが多い気がする。
	"a, b,c d".split(", ") == ["a", "b,c d"]
	
区切り文字(列)は一種類しか指定できない模様。


切り出した文字列からゴミを消す
	string.strip()
	
消す文字を指定してもよいが、指定しないか1文字しか指定しない(","とか)ことが多い。


文字列比較
==でよい。実体が同じがどうかの判定はisとかいう比較演算子を使う


文字列 - 数値
int(string), str(number)


配列
	arr = [1] * 4
	arr[0] = 0
	arr = [0, 1, 1, 1]

	arr = [[]] * 4
	arr[0].append(1)
	arr == [[1], [1], [1], [1]]

	arr = []
	for i in range(4):
		arr.append([])
	arr[0].append(1)
	arr = [[1], [], [], []]
	
[] * nという書き方は[]の中身の値をコピペするので配列を指定した場合配列のポインタが複製される模様。
多次元配列定義のラクな書き方無いのかね?
参考までにlistよりarrayのほうが若干早いようなので整数だけのリストを使いたい時はarrayのほうがよいかもしれない。


 HOME