Hatena::Grouppython

zorioの日記

2010-03-20

やるぞー

00:59

簡単な内容でも書きながら、手になじむようにしていこうかと。

id:rubycoさんの日記などを元ネタにしつつ。

リテラル

01:06

http://lightson.dip.jp/zope/ZWiki/001_e3_83_aa_e3_83_86_e3_83_a9_e3_83_ab

list=[1,2,3]
tuple=(1,2,3)
dict={'A': 'a', 'B': 'b'}

演算子

01:09

==は同値性、isはオブジェクトの同一性を比較する。

javaで言う==と.equalsの違いみたいなものかな。

import copy

a=range(5)
b=copy.copy(a)
print a == b # => True
print a is b # => False

c = a
print a == c # => True
print a is c # => True

変数と定数

01:35

http://lightson.dip.jp/zope/ZWiki/003_e5_a4_89_e6_95_b0_e3_81_a8_e5_ae_9a_e6_95_b0

参照はLEGBの順

def outer(s):
  value = s + ":hoge"
  def inner():
    return value
  
  return inner()

print outer("aaa") # aaa:hoge

代入は常にローカル

def outer(a, b):
  outervalue1 = a
  outervalue2 = a
  def inner(b):
    outervalue1 = b
    innervalue = b
    print innervalue # => B
    print outervalue1 # => B
    print outervalue2 # => A

  inner(b)
  print outervalue1 # => A ←Bになったりしない
  print outervalue2 # => A

outer("A", "B")

つまり、代入は常にローカルスコープに対して行われる、と。

python3では、nonlocalって書けば一個外側のスコープを対象に出来るのか。


属性はインスタンスが優先で、クラス属性は隠蔽される。

class MyClass:
  class_property = 0
  common_property = -1
  def __init__(self):
    self.inst_property = 1
    self.common_property = 2

ins = MyClass()
print ins.class_property # => 0
print ins.inst_property # => 1
print ins.common_property # => 2

処理フローの制御

01:51

if cond_a:
  ...
elif cond_b:
  ...
else:
  ...

whileを使った制御

x = 0
while x < 10:
  print x
  x += 1

0
1
2
3
4
5
6
7
8
9

forを使った制御

for x in ['a', 'bb', 'ccc']:
  print x, len(x)
a 1
bb 2
ccc 3

zipを使うと複数を同時に回せる

for x, y in zip([1, 2, 3], ['a', 'b', 'c']):
  print x, y
1 a
2 b
3 c

メソッド呼び出し

02:13

キーワード引数の使用

# -*- encoding: utf-8 -*-
def funcwithnamedargs(a=1, b=2):
  print a
  print b

# 引数を省略
funcwithnamedargs()

# 名前なしで引数を指定
funcwithnamedargs(3, 4)

# 名前付きで引数を指定
funcwithnamedargs(b = 6, a = 5)

# リストを展開して呼び出すときは *
funcwithnamedargs(*[7, 8])

# 辞書を添加して呼び出すときは **
funcwithnamedargs(**{'b': 10, 'a': 9})

LuanaLuana2012/07/15 14:16I read your post and wihesd I was good enough to write it

totoxdtotoxd2012/07/16 02:55f1AtSN <a href="http://lhfrbuiunogq.com/">lhfrbuiunogq</a>

jebmdnjebmdn2012/07/17 00:31ZAsYvc , [url=http://bkkdwllhepah.com/]bkkdwllhepah[/url], [link=http://ewqodtjjiwut.com/]ewqodtjjiwut[/link], http://pavbtqjhuomn.com/

ciphhnjyefjciphhnjyefj2012/07/17 12:46DncpWz <a href="http://wrugitsstzsq.com/">wrugitsstzsq</a>

kixmjlyoadkixmjlyoad2012/07/18 02:50gx6UXV , [url=http://dhjobgucinkn.com/]dhjobgucinkn[/url], [link=http://wnojehgqyufu.com/]wnojehgqyufu[/link], http://mbgttgdmsrbe.com/