Python


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

python の勉強メモ


全体

  • ソースコード内に全角文字を入れるとき
    • コード内に全角文字を入れるときはコードの頭を以下みたくする。(UTF8の場合)
#!/usr/bin/env python
# -*- coding: utf8 -*-

ちなみに入れないとこんな風になる
sys:1: DeprecationWarning: Non-ASCII character '\xef' in file dic-api-report.py on line 40,
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
  • print の文字コード
import sys
sys.stdout.encoding # これで普段は何でprintしてるかわかる。
# 変更したいときはこんな感じ。
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)

基本

  • boolean値はこれで指定。大文字小文字大事。
t = True
f = False

  • if文の作り方
if a == b:
  # 処理
elif c == d:
  # 処理
else:
  # 処理

大なりイコール、小なりイコールは下記のように表現
>=  ,  <=

  • class の作り方
def class Class:
  # コンストラクタ
  def __init__(self, foo, bar):
    self.foo = foo
    self.bar = bar

  # toString的なもの
  def __repr__(self):
    print 'Class: foo-%s, bar-%s' %(self.foo,self.bar)

  • クラス内のmethodは、必ず引数にselfが必要。
class Sample:
  def __init__(self):
    pass
  def set(self, val):
    pass
  • methodは子メソッドも作れる
def m1():
  print "m1"
  def m2():
    print "m2"
  # 好きなところでm2を呼べる。
  m2()

  • methodは、引数のデフォルト値つけれる。
def m1(str="hello"):
  def print str

でもこういうのはダメ。引数したときに、どこが省略されたのかわかんないから。

def m2(a=1, b, c=3):

文字列

  • 文字列の長さがほしいときは以下。
len("abc")

  • 文字列を分割するときは以下。
"abc/def/ghi".split('/')
   # これで空文字も含めて全部配列にしてくれるはず。

ちなみに全角文字で区切るときはuつける
"abcあdefあghi"[:-1].split(u'あ')

  • contains的な使い方
str = "abcdefg"
if str.find("d") >= 0: # find すると検索文字のindexを返す。無ければ-1を返す。
  print "contain"
else:
  print "not contain"

配列

  • 配列に値を入れるときは、こんな感じ。
array = []
array.append("elem")
  • 配列からsetに変換したいときは、こんな感じ。
set(array) # 返り値はないので注意。
#ちなみにsetにしたあとの、要素の追加方法は以下。
 array.add("elem")
#リスト に戻すときはこう。
 list(array)


Dictionary

  • Dictionaryに値を入れるときは、こんな感じ。
map = {}
map["key"] = "value"

それかこっち
map = {
  "key" : "value"
}

ファイル操作

  • ファイルを読む
import codecs
fin = codecs.open("./moge.txt", 'r', 'utf8')
for l in fin:
  print l