<< 밀 珞 � 量 靈 2 � ↑�� � >>

靈 1 �. �健�槪 꿱껍숩�

1.1. ヴ健�� ��≠�

윈�읒 잽��, 虔돛�ュ �健� �頌그少健 �ヴ.

그↔鋼 껍譁도 윈壽솥읒∽ 껍朗塑 �藜도 꼬槪 ↔健ヴ. 그↔읒 �� ‘穢�� 譁�; �靴ュ 그↔槪 �乾�胛頌 솥��섰 휸、健ヴ. 그壽寧 晄� 그↔槪 ��숩� 윈壽솥健, 梟� �ヴ�, 그↔읒 �� 朗�槪 健��ュ� 꿱껍숩�.

Example 1.1. odbchelper.py

윈壽솥健 껍曳 그峀∽ �� 鰥�ヴ�, 윈壽솥鋼 健↔� 健 甄읒밀 ���ュ ヴ患 잇靈�槪 蘆淞 良槪 � �ヴ (Windows, UNIX, Mac OS).

def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.

    Returns string."""
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

if __name__ == "__main__":
    myParams = {"server":"mpilgrim", \
                "database":"master", \
                "uid":"sa", \
                "pwd":"secret" \
                }
    print buildConnectionString(myParams)

健靈 健 �頌그少槪 ��맸�� 朗많件健 件�寧ュ� 숩�.

Tip
姜도�� �健� IDE읒밀, 윈壽솥鋼 匯�槪 File->Run... (Ctrl-R)劍頌 ��� � �ヴ. �悚鋼 �優� 姜도�읒 寧�蘆�玲ヴ.
Tip
穫 �윳譴靈� �健� IDE 읒밀ュ, 윈壽솥鋼 匯�槪 Python->Run window... (Cmd-R)劍頌 ��� � �ヴ, 그壽寧 ��읒ュ 윈壽솥健 晄� 밈穢�꺌� 燁�� 묽���健 �ヴ. IDE읒밀 匯�槪 읽�, 그 鈐� �-� 匯밀靴읒 �ュ ↑鋼 �、�槪 �孝�밀 그 匯�� 묽���槪 ���, 그靴� “Run as __main__” 健 譴��� �寧 蟯乾��. 健 밈穢鋼 그 匯�읒 ����玲ヴ, 그甦밀 윈壽솥鋼 、 匯�읒 ��윈 � 纜鋼 健↔槪 � ��梟 �� 들ヴ.
Tip
(穫 OS X 況 ���윈) 傑ボ맑 繇橒 맸맑�읒밀, 윈壽솥鋼 匯�槪 ��� �乾劍頌쇰� ��� � �ヴ: python odbchelper.py

Example 1.2. Output of odbchelper.py

server=mpilgrim;uid=sa;database=master;pwd=secret

1.2. ��況 묽꿇��

�健�鋼 ヴ患 �쇰솥� 꿇��� 譁�≠�頌 ��況 ≠�� �ヴ, 그壽寧 그↔鋼 C++ �  鋼 샥⌒� �� �件槪 ≠�� 꿩劍�, �맑��  健 interface/implementation잴  鋼 뭏�槪 ≠�� 꿩ュヴ. 윈壽솥健 ��≠ ���ヴ�, �� 그↔槪 묽꿇��, ��況 虔뭡��.

Example 1.3. Declaring the buildConnectionString function

def buildConnectionString(params):

윈�밀 ��� �≠�≠ �ヴ�, 憬�頌, def ���頌 ��� 穢�況 맸虔��, 딘健�밀 ��� 健華健 �花�, 그 딘읒ュ □繇頌 �壽몃乾 乾�≠ 장ヴ. (윈�밀 숩윈�� 꿩鋼) ヴ燁 乾�ュ �譁頌 솥靴들ヴ.

�櫻頌, 그 ��ュ �橒 뎬健�� �槪 穢��� 꿩ュヴ. �健� ��ュ 그�� �橒 』� 뎬健��槪 �穢�� 꿩ュヴ; ���ュ 』槪 �橒�ュ� 꿴 �ュ�도 �穢�� 꿩ュヴ. ��, 匯� �健� ���鋼 』槪 �橒�ヴ; ��≠ return 밀�珞槪 ���ヴ�, 그 ��ュ 그 』槪 �橒� ↔健ヴ, 그峀� 꿩劍� 그↔鋼 �健�� null』乾 None槪 �橒� ↔健ヴ.

Note
��� 샬健曳읒밀, (』槪 �橒�ュ) ��ュ function劍頌 맸虔��, 그靴� (』槪 �橒�� 꿩ュ) 밀���鋼 sub 頌 맸虔�ヴ. �健�읒ュ 밀���健 꼬ヴ. 匯� ↔鋼 ��健�, (���ュ 그↔健 None件��도) 匯� ��ュ 』槪 �橒�ヴ, 그靴� 匯� ��ュ def 頌 맸虔�ヴ.

뭐纜櫻頌, 乾�, params,ュ 뎬健��槪 �穢�� 꿩ュヴ. �健�읒밀, 순��鋼 �맸�劍頌 �健��� 꿩ュヴ. �健�鋼 순�≠ �┱ �乾�況 健��� 蘆쇰�劍頌 그↔槪 �刷 傑��ヴ.

Note
腱力, C++, 그靴� ヴ患 ∠悚-� 꿇�읒밀ュ, 윈壽솥鋼 그 ��� �橒』� 뎬健� �� 、 ��� 乾��� 뎬健� �槪 �穢�꺌梟 �ヴ. �健�읒밀, 윈壽솥鋼 �맸�劍頌 그 �┱ ↔� 뎬健��도 �穢�� 꿩ュヴ. 윈壽솥健 �┱ 』槪 ���ニ�읒 ��밀, �健�鋼 그 뎬健�� �槪 蘆쇰�劍頌 �刷 傑��ヴ.

1.3. ��況 珞밀優��

윈壽솥鋼 �健� ��況 doc string況 靈×�劍頌� 珞밀優 � � �ヴ.

Example 1.4. Defining the buildConnectionString function's doc string

def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.

    Returns string."""

뭐 ⌒� 乾�쇰繇ュ 윈壽-娛 珞腱읽槪 �藜�ヴ. 乾�쇰繇� 庚舡� 譁�恢�健읒 �ュ 匯� ↔鋼, �靴�靴�� ヴ患 乾�쇰繇 珞腱�槪 ���윈, �寧� 珞腱읽� 쇰솥健ヴ. 윈壽솥鋼 그↔�槪 �ニ≒읒寧 ��� � �ヴ, 그壽寧 윈壽솥鋼 doc string槪 穢�� ┐ 그↔�健 �쇰솥 ���ュ ↔槪 섰 ↔健ヴ.

Note
뭐⌒� 乾�쇰繇ュ �� �件 그靴� 健燁 乾�쇰繇頌 �寧� 珞腱읽槪, �읒밀� qq/.../잴  健, 穢��� 릴∽ �影ヴ.

뭐⌒� 乾�쇰繇 �健읒 �ュ 匯� ↔鋼 그 ��� 珞밀優 珞腱읽 doc string 健ヴ, 그↔鋼 그 ��≠ 朗�槪 �ュ� 珞밀優 �ヴ. doc string鋼 , 梟� 梧��ヴ�, ��맸 � ��읒밀 穢�들 ≠� 憬 纜櫻� ↔健ヴ.(�, �速 딘읒밀 ≠� 憬 纜櫻� ↔). 윈壽솥鋼 ���劍頌ュ 윈壽솥� ��읒 doc string槪 娛 ��ュ 꼬ヴ, 그壽寧 윈壽솥鋼 �� 그峀∽ �꺌 �ヴ. 寧ュ 윈壽솥健 健↔槪 윈壽솥健 良뀜タ 匯� �頌그甦��꾑읒밀 ��숩뀜劍靴�� 휸、�ヴ, 그壽寧 �健�鋼 윈壽솥읒∽ 돛�況 偈≠頌 靈×�影ヴ: doc string鋼 ��맸읒 그 ��� 뱃뭡劍頌 ��≠��ヴ.

Note
皇鋼 �健� IDE�鋼 doc string槪 ���윈 珞穫-\� 珞밀優況 靈×��, 그甦밀 윈壽솥健 � ��� 健華槪 �健���, doc string健 ��劍頌 寧�祿ヴ. 健↔鋼 ��尤 도�槪 �ュ ↔健ヴ, 그壽寧 그↔鋼 윈壽솥健 doc string槪 虔뭡�槪 ┐梟健 傑湧�ヴ.

� 居�꺌 � ↔

1.4. 匯� ↔鋼 ∥譴健ヴ

윈壽솥健 그↔槪 健� 鰥�∫ヴ�, 寧ュ �� 健峀∽ 恍� �∫ヴ. �健�� ��ュ 뱃뭡�槪 ≠��, 그靴� 그壽� 뱃뭡�鋼 ��맸읒 ��≠��ヴ�.

�健�� ヴ患 �┱ ↔�� 譁�≠�頌, ��ュ ∥譴健ヴ.

Example 1.5. Accessing the buildConnectionString function's doc string

>>> import odbchelper                              1
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> print odbchelper.buildConnectionString(params) 2
server=mpilgrim;uid=sa;database=master;pwd=secret
>>> print odbchelper.buildConnectionString.__doc__ 3
Build a connection string from a dictionary
Returns string.
1 憬 纜櫻 �乾鋼 odbchelper �頌그少槪 匯�頌 �建�ヴ. 윈壽솥健 �寧� 匯�槪 �建��梟 ��, 윈壽솥鋼 그↔� ×� ��, �甦맑, 玗鋼 뱃뭡�燁 �ニ ↔健�도 �獵� � �ヴ. 匯�鋼 健峀∽ �윈 ヴ患 匯�� ��읒 閻깜� � �劍�, 그靴� 윈壽솥鋼 그↔槪 IDE읒밀도 을맸 � � �ヴ. 健↔鋼 燁�� ⌒�劍頌밀, �靴ュ �읒 그↔槪 �� 腱뭐尤 ��� ↔健ヴ.
2 윈壽솥健 �建들 匯�읒 穢�들 ��況 ����況 읏�ヴ�, 윈壽솥鋼 그 匯�� 健華槪 ���꺌梟 �ヴ. 그甦밀 윈壽솥鋼 �� buildConnectionString 健�� 恍� � 꼬ヴ, 그↔鋼 odbchelper.buildConnectionString健�꺌梟 �ヴ. 윈壽솥健 腱力읒밀 �甦맑況 ��� 숩뀜ヴ�, 健↔鋼 恢읓尤 �밍�∽ ニ掉� ↔健ヴ.
3 윈壽솥健 잇��タ ��況 繇��ュ ��읒, �靴ュ 그 ��� 뱃뭡燁 �寧乾, __doc__況 �깬�ヴ.
Note
�健�� importュ �읒밀� require잴 �며�ヴ. 윈壽솥健 �健� 匯�槪 �建��梟 ��, 윈壽솥鋼 그↔� ���읒 module.function��頌 閻깜� � �ヴ; 윈壽솥健 � 匯�槪 �깬��梟 require��, 윈壽솥鋼 그↔� ���읒 module::function� ��頌 閻깜�ヴ.

�健�읒밀 匯� ↔鋼 ∥譴健ヴ, 그靴� �� 匯� ↔鋼 뱃뭡� 回��況 ≠玲ヴ. [1] 匯� ���鋼 蘆� 뱃뭡乾 __doc__槪 ≠��, 그↔鋼 그 ��� 뱉맑 ��읒밀 穢�들 doc string槪 �橒�ヴ.

健↔鋼 樓朗 燁��밀 윈壽솥健 庚舡 � 纜돛꿴 그↔槪 慷��奐 ±�읒ュ 寧ュ 그↔槪 �손� ↔健ヴ.: �健�읒밀 匯� ↔鋼 ∥譴健ヴ. 맑�換鋼 ∥譴健ヴ. 靴맑�ュ ∥譴健ヴ. ��ュ ∥譴健ヴ. ���ュ 匯�도 ∥譴健ヴ, 그↔槪 �靴ュ 兩∽ ��섰 ↔健ヴ.

� 居�꺌 � ↔

1.5. ��況 �윈꾄�

�健� ��ュ 껍朗塑 �맸�乾 begin 玗鋼 end況 ≠�� 꿩劍�, 그 ��≠ 맸虔�� 怒寧ュ �瑩槪 �맸��ュ 껍朗塑 窈□繇도 ≠�� 꿩ュヴ. 傑件� �샥腱ュ �速(�瑩) (“:”)健� ��� �윈꾄� 그 腱譴健ヴ.

Example 1.6. Indenting the buildConnectionString function

def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.
    Returns string."""
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

�� �刷� (��, if 밀�珞, for 耘둥健, ��.)鋼 그�� �윈꾄�頌 穢� 들ヴ. �윈꾄�ュ � �刷� 맸虔健� �윈꾄� 橒읏鋼 그↔槪 怒恬ヴ; ��읒ュ �맸�乾 □繇, 、□繇, 玗鋼 ���ュ 꼬ヴ. 健↔鋼 ×�健 燁���, 그靴� 件�뭡健 ��꺌 �ヴュ ↔槪 ┥�ヴ. 健 잇靈읒밀, 그 �� ��ュ ( doc string槪 ���윈) 4⌒� ×�劍頌 �윈꾄� 들ヴ. 그↔鋼 ��맸 4≠ ��꺌 � ��ュ 꼬�, 그↔鋼 �� 件�뭡健 �劍� 들ヴ. �윈꾄� �� 꿩鋼 憬 纜櫻 �乾鋼 그 ��� 力�읒 �ヴ.

競�� �。� ��� ���� �귑� �。� �祿槪 ◇�祿 �읒, 윈壽솥鋼 健↔읒 鋸밍�� ↔健� 그↔� 健瑩�槪 숩� 맸虔� ↔健ヴ. ≠� �ヴ� 健瑩鋼 匯� �健� �頌그少�鋼 �며�∽ 숩乾ヴ�ュ ↔健ヴ, ���� �윈꾄�ュ 꿇�� ��獵�健� 맑�件� 珞靈≠ 껍レ� ┐珞健ヴ. 健↔劍頌 ヴ患 �┶�� �健� ��況 � 릴∽ 居� 健�� � �ヴ.

Note
�健�鋼 �靴� 靴�槪 ���윈 밀�珞槪 솥靴�� �速� �윈꾄�況 ���윈 �� �刷槪솥靴�ヴ.

� 居�꺌 � ↔

1.6. 匯�槪 �맑���

�健� 匯�鋼 ∥譴健� �。� 傑�� 뱃뭡�槪 ≠玲ヴ. 윈壽솥鋼 健↔槪 ���윈 윈壽솥健 匯�槪 虔뭡� ┐ 릴∽ 윈壽솥� 匯�槪 �맑�� � �ヴ.

Example 1.7. The if __name__ trick

if __name__ == "__main__":

�靴≠ 健 �禾� ���槪 ヴ�� 숩� �읒 晄� �。 ��숩腱. □繇ュ if ��� �胛읒 ���� 꿩ヴ. 듬 纜櫻, if 밀�珞鋼 �速劍頌 怒祿ヴ, 그靴� 딘읒 �윈꾄�들 ��≠ �患ヴ.

Note
C 잴  健, �健�鋼 == 槪 �귑況 胛� ���� =況 ��槪 胛� ���ヴ. C 잴ュ ヴ花∽, �健�鋼 in-line ��槪 靈×�� 꿩ュヴ, 그甦밀 윈壽솥健 �귑�� �ヴ� 휸、�ュ 』槪 ��頌 ��� 件鋼 꼬ヴ.

그壽� � 健壽� �健� if 밀�珞健 ��乾≠? 匯�鋼 ∥譴健ヴ, 그靴� 匯� 匯�鋼 蘆� 뱃뭡乾 __name__槪 ≠�� �ヴ. � 匯�� __name__鋼 윈壽솥健 그 匯�槪 �┍∽ ���ニ�읒 マ淞 �ヴ. 윈壽솥健 그 匯�槪 �建��, __name__鋼 그 匯�� �件健華健�, 뒵消�靴 ±頌 玗鋼 �件 蟯�腱ュ 꼬ヴ. 그壽寧 윈壽솥鋼 �� 그 匯�槪 曳閻�劍頌 덱潢�乾 �頌그少劍頌 ��맸� � �ヴ, 그 ±�읒 __name__鋼 �샥� �셜 』,__main__健 들ヴ.

Example 1.8. An imported module's __name__

>>> import odbchelper
>>> odbchelper.__name__
'odbchelper'

健↔槪 꿱� 寧밀, 윈壽솥鋼 健壽� if 밀�珞읒 윈壽솥� 匯�槪 �舡劍頌� 그 匯� 腱譴 꿴읒밀 그 匯�槪 胛� �맑� 匯딕槪 뒵腱乾� � �ヴ. 윈壽솥健 그 匯�槪 曳閻�劍頌 ����, __name____main__健 ��, 그甦밀 그 �맑� 匯딕鋼 ��들ヴ. 윈壽솥健 그 匯�槪 �建��, __name__ ュ ヴ患 �┱ ↔健 ��, 그甦밀 그 �맑� 匯딕鋼 朗맸들ヴ. 健↔┐珞읒 � 릴∽ �頌� 匯�槪 � � �頌그少劍頌 ���� �읒 ⌒烙�� 뒵�그�� �ヴ.

Tip
穫 �健�읒밀ュ, if __name__ ��況 虔돛맸�� 胛�밀ュ � �寧� ��≠ �ヴ. 鈐� �-� 匯밀靴읒 �ュ ↑穢� �、�槪 �孝�劍頌� 그 匯�� 묽��� 回ゼ況 ���, 그靴� 蟯�尤 __main__ 健 譴�들 ��頌 ����.

� 居�꺌 � ↔

1.7. � � 101

兩鋼 件�도 귄�ヴ, ���� 윈壽솥鋼 ��, ��, 그靴� 靴맑�읒 ��윈 꿱 ��≠ �� ┐珞健ヴ(읫 뭐�읒!). 윈壽솥健 � ����, 윈壽솥鋼 껍譁도 ��� 靴맑�읒 �� 穢도ュ 만躍 �� �奐 �도 �ヴ, 그壽寧 윈壽솥鋼 윈�尤 ��읒 ��윈 ��況 ��윈꺌梟 �ヴ.

�健�� 蘆� 뎬健�� 燁� �寧ュ ��健ヴ, 그↔鋼 �잴 』� �健� ��況 件�件頌 穢��ヴ.

Note
�健�� ��鋼 �� �맞잴 �며�ヴ. �읒밀, �맞況 ���� �ュ 순��鋼 �� % 珞腱頌 맸虔�ヴ; �健�읒밀, 순��鋼 �┱ ↔健�도 健華健 ��� � ��, �健�鋼 뎬健��槪 蘆쇰�劍頌 �刷 傑��ヴ.
Note
�健�읒밀 ��鋼 腱力읒 �ュ Hashtable �甦맑� �譴잴 �며�ヴ.
Note
�健�� ��鋼 ��� 샬健曳읒 �ュ Scripting.Dictionary ∥譴� �譴잴 �며�ヴ.

Example 1.9. Defining a dictionary

>>> d = {"server":"mpilgrim", "database":"master"} 1
>>> d
{'server': 'mpilgrim', 'database': 'master'}
>>> d["server"]                                    2
'mpilgrim'
>>> d["database"]                                  3
'master'
>>> d["mpilgrim"]                                  4
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
KeyError: mpilgrim
1 晄�, �靴ュ �頌� ��槪 듬 ⌒� �뱉頌 梟�� 그↔槪 순� 'd'읒ヴ ���ヴ. 、 �뱉ュ �-』 �健�, 그靴� �뱉�� 匯� 匯딕鋼 窈□繇읒 �� �壽 몃윈玲ヴ.
2 server ュ �健�, 그靴� d["server"]≠ �獵�ュ, 그↔� 읓�들 』鋼 mpilgrim健ヴ.
3 database ュ �健�, d["database"]≠ �獵�ュ, 그↔� 읓�들 』鋼 master健ヴ.
4 윈壽솥鋼 �頌 』槪 寓돗� � �ヴ, 그壽寧 』劍頌 �況 �槪 �ュ 꼬ヴ. 그甦밀 d["server"]mpilgrim健�梟, 그壽寧 d["mpilgrim"] ュ 잇�況 烙휸맸�ヴ, ���� mpilgrim 鋼 �≠ 껍レ� ┐珞健ヴ.

Example 1.10. Modifying a dictionary

>>> d
{'server': 'mpilgrim', 'database': 'master'}
>>> d["database"] = "pubs" 1
>>> d
{'server': 'mpilgrim', 'database': 'pubs'}
>>> d["uid"] = "sa"        2
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}
1 윈壽솥鋼 �寧� ��읒밀 �況 燁손�밀 ≠��ュ 꼬ヴ. �寧� 』槪 梧��ュ �읒 ���� 잇� 』槪 꼬� �奐 ↔健ヴ.
2 윈壽솥鋼 �頌� �-』�槪 꿇靈�� 偈≠� � �ヴ. 健壽� 깬珞鋼 梧��ュ 』�槪 순±�ュ ↔� 돛件�ヴ. (그峀ヴ, 健↔┐珞읒 윈壽솥鋼 꿇寧≠ュ 若�健 陵 ┐≠ �槪 ↔健ヴ. 윈壽솥健 �頌� 』槪 偈≠�� �ヴ� 휸、��梟 �靈頌ュ �뮈尤  鋼 』槪 순±�� � 순±�ュ ↔읒 숄�� ┐≠ �槪 �뎬 ���� 윈壽솥� �ュ 윈壽솥健 그壽靴�� 휸、�ュ뎬頌 순�� 꿩� ┐珞健ヴ.)

��� ↔鋼 그 �頌� �뱉 (key uid, value sa)≠ 燁뀌읒 寧�祿ヴュ ↔健ヴ. ��鋼, 그 �뱉�健 憬 纜櫻 잇靈읒밀 뮈밀�頌 寧�祿 ↔鋼 �뮈� �읓� 件�윔ヴ; 그↔�健 ��鋼 뮈밀�頌 寧�寧� 꿩鋼 ↔도 �뮈尤 �  鋼 �읓� 件�健ヴ.

Note
��鋼 �뱉� �健읒 껍朗塑 뮈밀� ⌒�槪 ≠�� 꿩ュヴ. 그 �뱉�鋼 “朗�밀 �ヴ”�� 恍�ュ ↔도 쇰穢蟯�ヴ; 그↔�鋼 �뮈尤 뮈밀≠ 꼬ヴ. 健↔鋼 燁�� 깬샥頌밀 윈壽솥鋼 ��읒 �ュ �뱉�읒 �샥�, �손�乾 뮈밀頌 (�읒 �� 꿱�섶 뮈밀頌) 閻깜�淞� �┐ �±健 꾄件 ↔健ヴ. 健峀∽ �ュ 籃輛鋼 윈壽≠�≠ �ュ뎬, 그↔�鋼 �뮈尤 ��劍頌 깬��� ��≠� 꿩ュヴ.

Example 1.11. Mixing datatypes in a dictionary

>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}
>>> d["retrycount"] = 3 1
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3}
>>> d[42] = "douglas"   2
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}
1 ��鋼 珞腱읽梟槪 胛� ↔鋼 껍レヴ. ��� 』鋼 �┱ 뎬健��도 � � �ヴ. 珞腱읽, 穢�, ∥譴 玗鋼 ���ュ ヴ患 ����도 ≠��ヴ. 그靴� �寧� ��꿴읒밀, 그 』�鋼 匯듬  鋼 �件 ��ュ 꼬ヴ; 윈壽솥鋼 ���뎬頌 辱��� 羊�槪 � �ヴ.
2 ��� ��鋼 �� 靈��健ヴ, 그壽寧 그↔�鋼 珞腱읽, 穢�, 그靴� ヴ患 �┱ �� (健↔읒 ��윈ュ 寧燁읒 � 腱뭐尤 ヴ�) 健 � � �ヴ. 윈壽솥鋼 �� �寧� ��꿴읒밀 �� 뎬健� �槪 辱��� 羊�槪 � �ヴ.

Example 1.12. Deleting items from a dictionary

>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}
>>> del d[42] 1
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3}
>>> d.clear() 2
>>> d
{}
1 del 劍頌 윈壽솥鋼 ��劍頌쇰� � 』劍頌 ⌒샥�乾 ���槪 �靈� � �ヴ.
2 clear 鋼 ��劍頌쇰� 匯� ��槪 �靈�ヴ. ��� ↔鋼 � 窈□繇� 裔�鋼 껍朗塑 ��도 ≠�� �� 꿩鋼 ��槪 �藜�ヴ.

� 居�꺌 � ↔

1.8. 靴맑� 101

靴맑�ュ �健�� �� 뎬健��健ヴ. 靴맑�읒 �� 윈壽솥� 傑件� ±�健 ��� 샬健曳읒밀� �읽 玗鋼 (뭐�읒寧) ����읒밀� 뎬健�맑����, �健�� 靴맑�읒 ��윈 ��尤 影���.

Note
�健�� 靴맑�ュ �� �읽� �며�ヴ. �읒밀, �읽槪 ���ュ 순�ュ �� @ 珞腱頌 맸虔�ヴ; �健�읒밀, 순��鋼 �┱ 健華健�도 � � �劍�, 그靴� �健�鋼 그 뎬健��槪 蘆쇰�劍頌 �刷傑��ヴ.
Note
(윈壽솥健 �휸돛꿴 읏�ュ 玲若 匯� ↔健�� 靴맑�ュ �읽庚韶 ��� �도 �∫�梟) �健�� 靴맑�ュ 腱力읒밀� �읽 그 健�健ヴ). 雨꽉 霓鋼 �傑況 �腱� Vector �甦맑件�뎬, 그↔鋼 巾��乾 ∥譴�槪 傑�� � �� �頌� ��健 偈≠� ┐譁ヴ 돛�劍頌 蟯�� � �ヴ.

Example 1.13. Defining a list

>>> li = ["a", "b", "mpilgrim", "z", "example"] 1
>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[0]                                       2
'a'
>>> li[4]                                       3
'example'
1 晄�, �靴ュ 5⌒� �뱉況 ≠�ュ 靴맑�況 穢��ヴ. 그↔�鋼 腱��� 읏甦� 뮈밀況 傑��� �ュ ↔槪 ����. 健↔鋼 �읓尤 件�祿 件健 껍レヴ. 靴맑�ュ 、□繇읒 �� �壽몃윈玲 �뱉�� 뮈밀≠ �ュ 裔�健ヴ.
2 靴맑�ュ �셜瓊腱≠ 0乾 �읽庚韶 ��� � �ヴ. ���� 꿩ュ 匯� 靴맑�� 憬纜櫻 �뱉ュ �� li[0] 健ヴ.
3 健 5⌒� 靴맑�읒 �ュ 譁�恢 �뱉ュ li[4]乾뎬, ���� 靴맑�ュ �� 0읒밀 맸虔�� ┐珞健ヴ.

Example 1.14. Negative list indices

>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[-1] 1
'example'
>>> li[-3] 2
'mpilgrim'
1 舡� ��ュ �뱉�槪 靴맑�� 怒劍頌쇰� �導頌 뭐�밀 閻깜�ヴ. ���� 꿩鋼 匯� 靴맑�� 譁�恢 �뱉ュ �� li[-1]健ヴ.
2 梟� 舡� ��≠ 윈壽솥읒∽ 辱�맑笹ヴ�, 健 籃�槪 �淞� 숩�: li[n] == li[n - len(li)]. 그甦밀 健 靴맑�읒밀, li[2] == li[2 - 5] == li[-3] 健ヴ.

Example 1.15. Slicing a list

>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[1:3]  1
['b', 'mpilgrim']
>>> li[1:-1] 2
['b', 'mpilgrim', 'z']
>>> li[0:3]  3
['a', 'b', 'mpilgrim']
1 윈壽솥鋼 2⌒� ��況 �穢�劍頌�, 靴맑�� �쇰 裔�槪 �槪 � �ュ뎬, “slice”�� 쇰患ヴ. �橒』鋼 뮈밀�頌, 憬纜櫻 �� �� (健 ±�읒ュ li[1])읒밀 맸虔�윈, 듬纜櫻 �� �� (健 ±�읒ュ li[3])��(健 』鋼 ���� 꿩舡) 그 靴맑�� 匯� �뱉�槪 ���ュ �頌� 靴맑�健ヴ.
2 �� ��≠ � 玗鋼 �寧≠ 舡�件��도 ��ュ 虔돛�ヴ. 윈壽솥健 健塑�劍頌 휸、�ヴ� 도�健 ��도 匯花∫ヴ: "그 靴맑�況 잗臆읒밀 읫患臆劍頌 居�≠�밀, 憬 纜櫻 �� ��ュ 윈壽솥健 읏�ュ 憬 纜櫻 �뱉況 �穢�ュ ↔健�, 그靴� 듬纜櫻 ��ュ 윈壽솥健 읏�� 꿩ュ 憬 纜櫻 �뱉況 �穢�ヴ". �橒』槪 그 �健� 匯� ↔健ヴ.
3 靴맑�ュ 0읒밀 瓊腱≠ 맸虔들ヴ, 그甦밀 li[0:3] 그 靴맑�� 憬纜櫻 3⌒� �뱉況, li[0]健� li[3]藜梟劍頌 �橒�ヴ.

Example 1.16. Slicing shorthand

>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li[:3] 1
['a', 'b', 'mpilgrim']
>>> li[3:] 2
['z', 'example']
>>> li[:]  3
['a', 'b', 'mpilgrim', 'z', 'example']
1 �� ��� � 燁 �寧≠ 0 健��, 윈壽솥鋼 그↔槪 휸簫� � �劍�, 그 휸簫鋼 0槪 뀁맸�ヴ. 그甦밀 健�� 잇靈읒밀� li[:3]li[0:3]잴 돛件�ヴ.
2 윈�읒밀 그 ��뭡槪 ����. 健 5-�뱉 靴맑�읒밀, li[:3] 鋼 憬 纜櫻 3⌒� �뱉況 �橒��, li[3:]ュ 譁�恢 2 �뱉況 �橒�ヴ. ��, li[:n] ュ �� 憬纜櫻 n⌒� �뱉況 �橒��, 그靴� li[n:]ュ 그 寧蛔�況 �橒� ↔健ヴ.
3 듬 ⌒� �� �� 匯듬 ヴ 휸簫들ヴ�, 그 靴맑�� 匯� �뱉≠ ��들ヴ. 그壽寧 健↔鋼 읏甦�li 靴맑�잴ュ 돛件�� 꿩ヴ; 그↔鋼 �亮ヴ 匯듬  鋼 �뱉�槪 ≠�∽ 들 �頌� 靴맑�健ヴ. li[:] ュ � 靴맑�� 잽�� 손�셜槪 梟�� 胛� �華굶健ヴ.

Example 1.17. Adding elements to a list

>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li.append("new")               1
>>> li
['a', 'b', 'mpilgrim', 'z', 'example', 'new']
>>> li.insert(2, "new")            2
>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new']
>>> li.extend(["two", "elements"]) 3
>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']
1 appendュ �寧� �뱉況 그 靴맑�� 譁�恢읒 偈≠�ヴ.
2 insert ュ �⌒� �뱉況 靴맑�꿴劍頌 휭建�ヴ. 밝腱 乾�ュ 潔둥槪 件劍� 胛�況 ��꺌 � 憬 纜櫻 �뱉� ��健ヴ. ��� ↔鋼 靴맑�� �뱉�健 ��맸 밀頌 マ�꺌 � ��ュ 꼬ヴュ ↔健ヴ; 健靈ュ 2⌒� 샥⌒� �뱉頌 、、 new�ュ 』健 li[2]li[6]읒, 梧��ヴ.
3 extend ュ 靴맑��槪 읓��ヴ. 윈壽솥鋼 extend況 ヴ燁 乾�頌 繇��� 꿩뀜ヴュ ↔槪 ����; 윈壽솥鋼 그↔槪 �寧� 乾�, 靴맑�頌 繇��ヴ. 健 ±�읒, 그 靴맑�ュ 듬 ⌒� �뱉況 ≠玲ヴ.

Example 1.18. Searching a list

>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']
>>> li.index("example") 1
5
>>> li.index("new")     2
2
>>> li.index("c")       3
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
ValueError: list.index(x): x not in list
>>> "c" in li           4
0
1 indexュ 그 靴맑�꿴읒밀 �┱ 』� 憬 纜櫻 ��槪 黔ュヴ. 그靴� 그 ��況 �橒�ヴ.
2 indexュ 그 靴맑�꿴읒밀 �┱ 』� 憬 纜櫻 ��槪 黔ュヴ. 健 ±�읒, new ュ 그 靴맑�읒밀 듬 纜 li[2]li[6]읒밀, 寧�祿ヴ, 그壽寧 index ュ 읫曳 憬 纜櫻 ��乾, 2 梟槪 �橒� ↔健ヴ.
3 梟� 靴맑�읒밀 그 』健 烙¨�� 꿩ュヴ�, �健�鋼 잇�況 烙휸맸�ヴ. 健瑩鋼 ヴ患 �쇰솥� 꿇�잴 ���∽ ヴ患뎬, 그↔鋼 �┱ 傑湧�� 꿩ュ ��況 �橒� ↔健ヴ. 健↔鋼 뭡≠맸∽ 숩健�梟, 霓鋼 瑩健ヴ™. ���� 그↔鋼 健�읒 윈壽솥健 그 傑湧�� 꿩鋼 ��況 ���淞� � ┐ 숩ヴュ, 珞靈≠ �ュ 뱉맑읒밀 윈壽솥� �頌그少健 潔둥槪 件劍� ↔健�ュ ┥健� ┐珞健ヴ.
4 � 』健 靴맑�읒 �ュ� 꿱껍 숩淞�, in槪 ����, 그 』健 烙¨�� 1 槪 �橒�� 玗鋼 烙¨�� 꿩劍� 0槪 �橒�ヴ.
Note
�健�읒ュ 숄靴꿇 뎬健��健 꼬ヴ. (if 밀�珞  鋼) 숄靴꿇 珞穫읒밀, 0 鋼 �禮健� ヴ患 匯� 밝腱�鋼 �健ヴ. 健↔鋼 ヴ患 匯� 뎬健� �읒도, 을맸 蟯�들ヴ. � 珞腱읽 (""), � 靴맑� ([]), 그靴� � �� ({}) 鋼 匯듬 �禮健�; ヴ患 匯� 珞腱읽, 靴맑� 그靴� ��鋼 �健ヴ.

Example 1.19. Removing elements from a list

>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']
>>> li.remove("z")   1
>>> li
['a', 'b', 'new', 'mpilgrim', 'example', 'new', 'two', 'elements']
>>> li.remove("new") 2
>>> li
['a', 'b', 'mpilgrim', 'example', 'new', 'two', 'elements']
>>> li.remove("c")   3
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
ValueError: list.remove(x): x not in list
>>> li.pop()         4
'elements'
>>> li
['a', 'b', 'mpilgrim', 'example', 'new', 'two']
1 remove ュ 靴맑�頌쇰� 憬 纜櫻頌 ��� 』槪 靈��ヴ.
2 remove읫曳 憬 纜櫻頌 ��� 』梟槪 靈��ヴ. 健 ±�읒, newュ 靴맑�읒밀 듬 纜 寧�撚ヴ, 그壽寧 li.remove("new") ュ 憬纜櫻 ��� 』梟槪 靈��윔ヴ.
3 梟� 그 』健 靴맑�읒밀 烙¨�� 꿩ュヴ�, �健�鋼 잇�況 烙휸맸�ヴ.健↔鋼 index 回��� �胛況 그�頌 �윳�ヴ
4 pop 鋼 �藜�ュ 惱健ヴ. 그↔鋼 듬 ≠� 件槪 �ヴ: 그↔鋼 靴맑�읒밀 ≠� 譁�恢 �뱉況 靈��ヴ, 그靴� 그↔鋼 �靈� 그 』槪 �橒�ヴ. ����. 健↔鋼 li[-1]�ュ ヴ花ヴ, 그↔鋼 』槪 �橒��ュ ��梟 그 靴맑�況 순±�� 꿩ュヴ. 그靴� li.remove(value)�도 ヴ花ヴ, 그↔鋼 靴맑�況 순±��梟 』槪 �橒�� 꿩ュヴ.

Example 1.20. List operators

>>> li = ['a', 'b', 'mpilgrim']
>>> li = li + ['example', 'new'] 1
>>> li
['a', 'b', 'mpilgrim', 'example', 'new']
>>> li += ['two']                2
>>> li
['a', 'b', 'mpilgrim', 'example', 'new', 'two']
>>> li = [1, 2] * 3              3
>>> li
[1, 2, 1, 2, 1, 2]
1 靴맑�ュ + 읓�腱頌 �� 읓�� � �ヴ. list = list + otherlistlist.extend(otherlist)잴 돛��ヴ. 그壽寧 + 읓�腱ュ �頌健 읓�들 靴맑�況 』劍頌 �橒�ヴ, ��읒 extendュ 梧��ュ 靴맑�況 순±��梟 �ヴ.
2 �健�鋼 += 읓�腱況 靈×�ヴ. li += ['two']li = li + ['two']� 돛��ヴ. += 읓�腱ュ 靴맑�, 珞腱읽, 그靴� 穢�읒 虔돛�ヴ, 그靴� 그↔鋼 ��腱-穢� �甦맑읒 ��밀 을맸 뒨�꾄윈� � �ヴ. (靈 3�읒밀 �甦맑읒 ��윈 � 腱뭐尤 ヴ�)
3 * 읓�腱ュ 靴맑�읒 �� �손腱頌 虔돛�ヴ. li = [1, 2] * 3li = [1, 2] + [1, 2] + [1, 2]잴 돛��뎬, 그↔鋼 健 뭐⌒� 靴맑�況 �寧頌 읓��ヴ.

� 居�꺌 � ↔

1.9 � � 101

��鋼 귑橒숄� 靴맑�健ヴ. ��鋼 � 纜 梟���� 寧� �─� 籃�劍頌� 순±� � 꼬ヴ.

Example 1.21. Defining a tuple

>>> t = ("a", "b", "mpilgrim", "z", "example") 1
>>> t
('a', 'b', 'mpilgrim', 'z', 'example')
>>> t[0]                                       2
'a'
>>> t[-1]                                      3
'example'
>>> t[1:3]                                     4
('b', 'mpilgrim')
1 ��鋼 靴맑�잴  鋼 籃�劍頌 穢�들ヴ. ヴ患 瑩鋼 �뱉�� �譴 裔�槪 、□繇 ��읒 �□繇頌 �壽�ヴュ ↔健ヴ.
2 ��� �뱉�鋼 靴맑�잴 譁�≠�頌 � 健, 穢�들 뮈밀況 ≠玲ヴ. ��� ��도 靴맑�잴 譁�≠�頌 �  健, 0 읒밀 맸虔�ヴ. 그甦밀 ���� 꿩鋼 ��� 憬 纜櫻 �뱉ュ �� t[0]健ヴ.
3 舡� ��ュ, 靴맑�잴 譁�≠�頌, ��� 譁�恢劍頌쇰� 묾ヴ.
4 ��도 을맸, 靴맑�잴 � 健, 虔돛�ヴ. ��� ↔鋼 윈壽솥健 靴맑�況 ��� ┐, 윈壽솥鋼 �頌� 靴맑�況 寓돗�ュ ↔健�; ��槪 ��� ┐ュ, ��槪 ≠玲ヴュ ↔健ヴ.

Example 1.22. Tuples have no methods

>>> t
('a', 'b', 'mpilgrim', 'z', 'example')
>>> t.append("new")    1
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
AttributeError: 'tuple' object has no attribute 'append'
>>> t.remove("z")      2
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
AttributeError: 'tuple' object has no attribute 'remove'
>>> t.index("example") 3
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
AttributeError: 'tuple' object has no attribute 'index'
>>> "z" in t           4
1
1 윈壽솥鋼 �뱉�槪 ��읒 偈≠� � 꼬ヴ. ��鋼 append 玗鋼 extend 回��況 �� ≠�� �� 꿩ヴ.
2 윈壽솥鋼 ��頌쇰� �뱉�槪 靈�� � 꼬ヴ. ��읒ュ remove 玗鋼 pop 回��≠ �� 꼬ヴ.
3 윈壽솥鋼 ��읒밀 �뱉�槪 ��� � 꼬ヴ. ��鋼 index 回��況 �� ≠�� 꿩ュヴ.
4 그峀�梟, 윈壽솥鋼 in 槪 ���윈 ��읒 � �뱉≠ �ュ� 꼬ュ� 獵�� 섰 � �ヴ.

그甦밀 ��鋼 朗�읒 ���≠?

Note
��鋼 靴맑�頌 순橒� � �劍�, 그 ��도 ≠��ヴ. 蘆� tuple ��ュ 靴맑�況 ��� �  鋼 �뱉�槪 ≠�ュ ��槪 �橒��, 그靴� list ��ュ ��槪 �� 靴맑�況 둥淞影ヴ. ���, tuple鋼 靴맑�況 �靴�, 그靴� listュ ��槪 �乾ヴ.

� 居�꺌 � ↔

1.10. 순�況 穢���

윈壽솥鋼 健靈 ��, ��, 그靴� 靴맑�읒 ��윈 匯� ↔槪 꿱뀜劍�頌 (읫 뭐�읒寧!), �靴� 잇靈 �頌그少, odbchelper.py劍頌 �둥껍 ≠숩腱.

�健�鋼 ヴ患 �쇰솥� 꿇�잴  健 �을 순�잴 �을 순�況 ≠玲ヴ, 그壽寧 �健�鋼 �맸�乾 순� 穢�ュ ≠�� 꿩ュヴ. 순�ュ � 』健 ���� �� 寧잴 梧��ヴ≠, 윳을槪 諒�寧∽ � ┐ 腱돛�劍頌 �권들ヴ.

Example 1.23. Defining the myParams variable

if __name__ == "__main__":
    myParams = {"server":"mpilgrim", \
                "database":"master", \
                "uid":"sa", \
                "pwd":"secret" \
                }

윈�읒ュ �≠�� �藜�ュ 瑩�健 �ヴ. 晄�, �윈꾄�읒 ����. if 밀�珞鋼 �� �刷健� ��잴 �  健 �윈꾄�� ��≠ �ヴ.

�櫻頌, 순�ュ �乾 읓뱃 ��劍頌 虔��ュ �만甦맞(“\”)頌 윈壽娛읒 �� 寧ォ�玲, �⌒若靴 ���健ヴ.

Note
�寧� ���≠ �乾읓뱃 ��乾 (“\”)頌 윈壽娛읒 �� 寧ォ�� ┐ュ, 읓뱃들 �乾鋼 �┱ 籃�劍頌� �윈꾄� � � �ヴ; �健�� 穢��乾 솰솰� �윈꾄� 깍�鋼 ���� 꿩ュヴ. 梟� 윈壽솥� �健� IDE≠ 읓뱃들 �乾槪 腱돛-�윈꾄� �ヴ�, 윈壽솥鋼 그峀∽ �� 꿩槪 �、� 健傑況 ≠�� 꿩ュ� 껍譁도 그 �셜 』槪 良껍�윈꺌 � ↔健ヴ.
Note
�粱尤 健꺌� �밀, (��槪 穢��ュ ↔�  鋼), �□繇, 、□繇, 玗鋼 窈□繇 꿴읒 �ュ ���鋼 �乾 읓뱃 珞腱(“\”)≠ �� 꼬� 윈壽娛頌 솥靴� � �ヴ. 寧ュ ���� 꿩槪 ┐ 獵量도 �만甦맞況 ��맸�ュ뎬 ���� 蘆≠ 휸、��읒 그峀∽ �劍頌� ��況 � 릴∽ 居槪 � �� ┐珞健�梟, 그↔鋼 맑�件� 珞靈健ヴ.

뭐纜櫻頌, 윈壽솥鋼 myParams순�況 穢��� 꿩뀜ヴ, 윈壽솥鋼 �� �寧� 』槪 그↔읒 ���槪 �華健ヴ. 健↔鋼 VBScript읒밀 option explicit묽��� 꼬健 ��� ↔� �며�ヴ. ヴ�맑笹∽도, VBScript잴ュ ヴ花∽, �健�鋼 윈壽솥健 ��들 �健 꼬ュ 순�況 �獵�� 鰥�도刷 � ↔健ヴ; 그峀∽ �ュ ↔鋼 잇�況 烙휸맸� ↔健ヴ.

Example 1.24. Referencing an unbound variable

>>> x
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
NameError: There is no variable named 'x'
>>> x = 1
>>> x
1

윈壽솥鋼 健↔읒 �� 꿇寧≠ュ �健�읒∽ \�� ↔健ヴ

� 居�꺌 � ↔

1.11. 윈壽⌒� 』槪 �纜읒 ����

�健�읒밀 �≠恢� �頌그甦�� �華굶 燁� �寧ュ 읓뱃읽槪 ���윈 ヴ燁 』�槪 � 纜읒 ���ュ ↔健ヴ.

Example 1.25. Assigning multiple values at once

>>> v = ('a', 'b', 'e')
>>> (x, y, z) = v 1
>>> x
'a'
>>> y
'b'
>>> z
'e'
1 v ュ 뭐 ⌒� �뱉況 ≠玲 ��健ヴ, 그靴� (x, y, z) ュ 뭐 ⌒� 순�況 ≠玲 ��健ヴ. �寧況 ヴ患 �寧읒 ���劍頌� v � 、 』槪 、、� 순�읒, 뮈밀�頌, ���ヴ.

健↔鋼 匯� 暎�� �도況 ≠玲ヴ. 寧ュ ┐┐頌 健華�槪 件穢�胛� 』�읒ヴ ����腱 �ヴ. C 읒밀, 윈壽솥鋼 enum槪 ���� 그靴� �虔꾑劍頌 、、� ��잴 그잴 읓�들 』�槪 寧읽�淞� � ↔健ヴ, 그↔鋼 그 』�健 읓뱃�件 ┐ュ �尤寧 ��� 숩乾ヴ. �健�읒밀, 윈壽솥鋼 蘆�들 range ��況 ヴ燁-』 ��劍頌 ���윈 �花∽ 읓뱃�乾 』�槪 ��� � �ヴ.

Example 1.26. Assigning consecutive values

>>> range(7)                                                                    1
[0, 1, 2, 3, 4, 5, 6]
>>> (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7) 2
>>> MONDAY                                                                      3
0
>>> TUESDAY
1
>>> SUNDAY
6
1 蘆�들 range ��ュ 穢�� 靴맑�況 �橒�ヴ. 그↔� ≠� �뮈� ��頌, range ��ュ ��』槪 ��밀 ��』(숄��)�� ��들 0-�셜 靴맑�況 �橒�ヴ. (읏�ヴ�, 윈壽솥鋼 ヴ患 �⌒순��槪 �弄��밀 �셜瓊腱頌 0恍� ヴ患 』槪 그靴� �健�� 』劍頌 1恍� ヴ患 』槪 �穢� � �ヴ. 윈壽솥鋼 range.__doc__ 況 �悚�� 뭐쇰��槪 섰 � �ヴ.)
2 MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, 그靴� SUNDAYュ �靴≠ 穢��� �ュ 』�健ヴ. (健 잇靈ュ calendar 匯�頌 쇰� 傑甦�ュ뎬, 傑ボ맑� �頌그少 cal� �며�∽, マ悚槪 �悚�ュ 虔� �藜 �ュ 匯�健ヴ. calendar 匯�鋼 �件槪 胛� 穢�� ���槪 穢��ヴ.)
3 健靈 、 순�ュ 腱��� 』槪 ≠玲ヴ: MONDAY0健�, TUESDAY1健�, 그靴� ��.

윈壽솥鋼 �� ヴ燁-��槪 ���윈 ヴ燁 』�槪, �뮈尤 匯� 』�槪 ≠玲 ��槪 �橒�劍頌�, �橒�ュ ���槪 깬�� � �ヴ. マ悚鋼 그↔槪 �寧� ��頌 �급� � �ヴ, �ュ 그 』�槪 ⌒샥�乾 순��읒 ��� � �ヴ. os匯�槪 ���윈, 皇鋼 �影 �健� �健�壽靴ュ 健峀∽ �ヴ, �靴ュ 健↔槪 靈 3 �읒밀 ��� ↔健ヴ

� 居�꺌 � ↔

1.12. 珞腱읽槪 ��優��

�健�鋼 珞腱읽읒 휭建�ュ ��優 』�槪 靈×�ヴ. 健↔鋼 �刷 껍� 손�� ���槪 ��� � 도 ��梟, ≠� �셜�乾 ��輛鋼 』�槪 %s�맸�穢腱頌 珞腱읽읒 휭建�ュ ↔健ヴ.

Note
�健�읒밀 珞腱읽 ��優ュ C 읒밀� sprintf��잴 �  鋼 깬珞槪 ���ヴ.

Example 1.27. Introducing string formatting

>>> k = "uid"
>>> v = "sa"
>>> "%s=%s" % (k, v) 1
'uid=sa'
1 �譴 ���鋼 珞腱읽頌 �≠들ヴ. 憬 纜櫻 %sk� 』劍頌 �譴��; 듬 纜櫻 %sv� 』劍頌 ��들ヴ. 珞腱읽읒 �ュ 匯� 珞腱�鋼 (健 ±�읒ュ, �繇 �맸) 그�頌 傑�들ヴ.

(k, v)ュ ��健�ュ ↔槪 ����. 寧ュ 윈壽솥읒∽ 그↔�健 朗�웰≠ 껨匯≠ �ヴ� 恍�ヴ.

健↔鋼 �뮈� 珞腱 읓�槪 �� 胛�윈 樓朗 皇鋼 件槪 �ヴ� 윈壽솥鋼 휸、��도 匯花∫ヴ, 珞腱읽 ��優≠ 그� �뮈� 읓�梟健 껍レ�ュ 瑩梟 훌ヴ�, 윈壽솥健 �槪�도 匯患ヴ. 그↔鋼 �� �뮈� 珞腱 읓�健 껍レヴ. 그↔鋼 �� ∠靈 �순橒健ヴ.

Example 1.28. String formatting vs. concatenating

>>> uid = "sa"
>>> pwd = "secret"
>>> print pwd + " is not a good password for " + uid      1
secret is not a good password for sa
>>> print "%s is not a good password for %s" % (pwd, uid) 2
secret is not a good password for sa
>>> userCount = 6
>>> print "Users connected: %d" % (userCount, )           3 4
Users connected: 6
>>> print "Users connected: " + userCount                 5
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
TypeError: cannot add type "int" to string
1 + ュ 珞腱읽 읓� 읓�腱健ヴ.
2 健壽� �뱉� ±�읒ュ, 珞腱읽 ��優ュ 읓�� 돛件� ��況 マ뭡�ヴ.
3 (userCount, ) ュ �寧� �뱉況 ≠玲 ��健ヴ. 그峀ヴ, 그 깬珞鋼 �。鋼 健��∽ 숩乾ヴ, 그壽寧 그塑뎬ュ 그騷梟� 健傑≠ �ヴ: 그↔鋼 蟯�尤 ��健ヴ. ��, 윈壽솥鋼 靴맑�, ��, 玗鋼 ��槪 穢�� ┐ �� �譁況 ��� � �ヴ, 그壽寧 그 �譁ュ �寧� �뱉況 ≠玲 ��槪 穢�� ┐ �깬들ヴ. 梟件 �譁≠ �깬�� 꿩ュヴ�, �健�鋼 (userCount)≠ �寧� �뱉況 ≠玲 ��乾� 玗鋼 �뮈尤 userCount� 』乾� 꿱 �≠ 꼬槪 ↔健ヴ.
4 珞腱읽 ��優ュ %s ��읒 %d 況 �穢�劍頌� 穢�잴 虔돛�ヴ.
5 珞腱읽槪 �-珞腱읽� 읓��淞ュ 맸도ュ 잇�況 烙휸맸�ヴ. 珞腱읽 ��優잴ュ ヴ花∽, 珞腱읽 읓�鋼 匯� ↔健 健藜 珞腱읽件 ┐梟 虔돛�ヴ.

� 居�꺌 � ↔

1.13. 靴맑�況 羊禮�

�健�� ≠� ∠悚� ��燁� �寧ュ 靴맑� 纜을乾뎬, 그↔鋼 ��況 그 靴맑�� 、 �뱉읒 ���劍頌� �寧� 靴맑�況 ヴ患 靴맑�잴 羊禮ュ 。�� 籃輛槪 靈×� 影ヴ.

Example 1.29. Introducing list comprehensions

>>> li = [1, 9, 8, 4]
>>> [elem*2 for elem in li]      1
[2, 18, 16, 8]
>>> li                           2
[1, 9, 8, 4]
>>> li = [elem*2 for elem in li] 3
>>> li
[2, 18, 16, 8]
1 健↔槪 健��� 胛�밀ュ, 그↔槪 읫患臆읒밀 잗臆劍頌 숩�. liュ 윈壽솥健 羊禮� �ュ 靴맑�健ヴ. �健�鋼 �纜읒 � �뱉꼭 li 靴맑�況 耘둥健 ��밀, 巾맸�劍頌 、 �뱉� 』槪 elem 순�읒 ���ヴ. 그靴�ュ �健�鋼 elem*2 ��읒 ���� 그靴� 그 ��況 �橒�ュ 靴맑�읒 偈≠�ヴ.
2 靴맑� 纜을鋼 읏甦� 靴맑�況 순±�� 꿩ュヴュ ↔槪 ����.
3 靴맑� 纜을� ��ュ 윈壽솥健 羊禮� �ュ 순�읒 ���ュ ↔健 꿴��ヴ. ��읒ュ ±� 獵�도 꼬劍� 玗鋼 ‘穢� 梟� �┱ �健�도 꼬ヴ; �健�鋼 �頌� 靴맑�況 回匯靴읒 깬��ヴ, 그靴� 靴맑� 纜을健 잽���, 그↔鋼 ��況 순�읒 ���ヴ.

Example 1.30. List comprehensions in buildConnectionString

["%s=%s" % (k, v) for k, v in params.items()]

晄�, ��� ↔鋼 윈壽솥鋼 params ��� items��況 繇��� �ヴュ ↔健ヴ . 健 ��ュ 그 ��� 匯� 뎬健�況 ≠玲 ��� 靴맑�況 �橒�ヴ.

Example 1.31. keys, values, and items

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> params.keys()   1
['server', 'uid', 'database', 'pwd']
>>> params.values() 2
['mpilgrim', 'master', 'sa', 'secret']
>>> params.items()  3
[('server', 'mpilgrim'), ('uid', 'sa'), ('database', 'master'), ('pwd', 'secret')]
1 ��� keys 回��ュ 匯� ��槪 ≠玲 靴맑�況 �橒�ヴ. 그 靴맑�ュ 그 ��健 穢���槪 ┐� 뮈밀≠ 껍レヴ (����, ��� �뱉�鋼 뮈밀≠ 꼬ヴ), 그壽寧 그↔鋼 靴맑�健ヴ.
2 values 回��ュ 匯� 』�槪 ≠玲 靴맑�況 �橒�ヴ. 그 靴맑�ュ keys 읒 ��밀 �橒들 靴맑�잴  鋼 뮈밀健ヴ, 그甦밀 n � 匯� 』�읒 ��윈 params.values()[n] == params[params.keys()[n]]健ヴ .
3 items 回��ュ (key, value)� ��乾 ��� 靴맑�況 �橒�ヴ. 그 靴맑�ュ 그 ��읒 �ュ 匯� 뎬健�況 ���ヴ.

健靈 buildConnectionString健 朗�槪 �ュ� �� 숩腱. 健↔鋼 靴맑�況, params.items()頌, ���, 그 靴맑�況 �頌� 靴맑�읒 羊禮� �밀 珞腱읽 ��優況 、 �뱉읒 ���ヴ. 그 �頌� 靴맑�ュ params.items()잴 �  鋼 ⌒�� �뱉況 ≠��梟, 그壽寧 그 �頌� 靴맑�� 、 �뱉ュ params ��읒밀 傑甦� �잴 그잴 읓�들 』槪 匯듬 ���ュ 珞腱읽健 � ↔健ヴ.

Example 1.32. List comprehensions in buildConnectionString, step by step

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> params.items()
[('server', 'mpilgrim'), ('uid', 'sa'), ('database', 'master'), ('pwd', 'secret')]
>>> [k for k, v in params.items()]                1
['server', 'uid', 'database', 'pwd']
>>> [v for k, v in params.items()]                2
['mpilgrim', 'sa', 'master', 'secret']
>>> ["%s=%s" % (k, v) for k, v in params.items()] 3
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
1 �靴ュ 듬 ⌒� 순�況 ���윈 params.items() 靴맑�況 �손�ヴュ ↔槪 ����. 健↔鋼 ヴ燁-순� ��� � ヴ患 ��輛健ヴ. params.items()� 憬纜櫻 �뱉ュ ('server', 'mpilgrim')健ヴ, 그甦밀 靴맑� 纜을� 憬 纜櫻 �손읒밀, k'server'況 蟯숩� ↔健� v'mpilgrim'槪 寓돗� ↔健ヴ. 健 ±�읒 �靴ュ v� 』槪 朗맸�� �劍� �橒�ュ 靴맑�읒 k 』梟槪 ���� �ヴ, 그甦밀 健 靴맑� 纜을鋼 params.keys()잴 돛�� ��頌 怒祿ヴ. (윈壽솥鋼 �靈 ��읒밀 健잴  鋼 靴맑� 纜을槪 ���� 꿩劍淞� ��도 匯患ヴ; 健↔鋼 ��尤 。�� 잇靈健ヴ, 그甦밀 윈壽솥鋼 윈�읒밀 朗많件健 件�寧ュ� �� 섰 � �ヴ.)
2 윈�읒밀 �靴ュ  鋼 件槪 �ヴ, 그壽寧 k� 』鋼 朗맸�ヴ, 그甦밀 健 靴맑� 纜을鋼 params.values()잴 돛�� ��頌 怒祿ヴ..
3 胛� 듬 잇靈況 。�� 珞腱읽 ��優頌 ����, �靴ュ 그 ��� 、 �뱉� �잴 』 匯듬況 ���ュ 珞腱읽� 靴맑�況 �ュヴ. 健↔鋼 ��맑笹∽도 그 �頌그少� �悚��잴 �며�∽ 숩乾ヴ; 껍曳 錄껍 �ュ 件健�� 健 靴맑�� 깬뭡�뱉�槪 �寧� 珞腱읽頌 ���ュ ↔健ヴ.

� 居�꺌 � ↔

1.14. 靴맑�況 읓��� 珞腱읽槪 솥靴��

윈壽솥鋼 �-』 �� 靴맑�況 key=value� ��頌 ≠玲ヴ, 그靴� 윈壽솥鋼 그↔�槪 �寧� 珞腱읽頌 ����腱 �ヴ. 珞腱읽� �┱ 靴맑��도 � ⌒� 珞腱읽頌 ���淞�, 珞腱읽 ∥譴� join 回��況 ����.

Example 1.33. Joining a list in buildConnectionString

    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

�뱃 ���읒 ��� 梟� �藜 �ュ ��鋼, �손�밀 恍��梟 ��ュ ∥譴健�, 珞腱읽도 ∥譴健�, 匯� ↔健 ∥譴�ュ ↔健ヴ. 윈壽솥鋼 蘆≠ 珞腱읽 순� variables도 ∥譴�� 恍�ヴ� 휸、�� 匯患ヴ. 그壽寧 껍レヴ, 健 잇靈況 剛 ��숩�, 그壽� 윈壽솥鋼 珞腱읽 ";" 그 腱譴≠ ∥譴�ュ ↔槪 꿱 ↔健ヴ, 그靴� 윈壽솥鋼 그↔� join 回��況 繇��� �ヴュ ↔槪 꿱 ↔健ヴ.

�倻�, join 回��ュ 靴맑�� �뱉�槪 �寧� 珞腱읽頌 ���ュ뎬, 、、� �뱉�鋼 뭐藜-�速劍頌 솥靴들ヴ. 깬솥腱≠ ��맸 뭐藜-�速件 ��ュ 꼬ヴ; �⌒� 珞腱件 ��ュ ��� 꼬ヴ. 그↔鋼 �─� 珞腱읽도 � � �ヴ.

Important
join 鋼 珞腱읽� 靴맑�읒梟 虔돛�ヴ; 그↔鋼 �─� ∠靈 �순橒도 �� 꿩ュヴ. 珞腱읽健 껍� �뱉�槪 �寧 健� ≠�� �ュ 靴맑�況 ���ュ ↔鋼 잇�況 烙휸맸� ↔健ヴ.

Example 1.34. Output of odbchelper.py

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> ["%s=%s" % (k, v) for k, v in params.items()]
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> ";".join(["%s=%s" % (k, v) for k, v in params.items()])
server=mpilgrim;uid=sa;database=master;pwd=secret

健 珞腱읽鋼 그壽� help ��頌쇰� �橒�� 繇��刷읒 �� �悚들ヴ, 그↔鋼 윈壽솥健 健 �槪 居� 맸虔� ┐읒 \���タ 그 �悚槪 윈壽솥읒∽ 숩윈 影ヴ.

을�읒 �� 橒� : 庚舡劍頌 蘆≠ �健�槪 �� ┐, 寧ュ join健 靴맑�� 回��≠ ��꺌 �ヴ� 잇���ヴ, 그↔鋼 그 깬솥腱況 乾�頌 �� ↔健ヴ. 皇鋼 �┶�健  鋼 籃�劍頌 휸、�ヴ, 그靴� join 回�� 딘읒ュ ��玲 健꺌�≠ �ヴ. �健� 1.6 健� ��읒밀ュ, 珞腱읽鋼 健壽� 匯� 傑�� 回���槪 ≠�� �� 꿩뀜ヴ. 샥⌒� string 匯�健 ��ュ뎬 匯� 珞腱읽 ��況 �� ��ヴ; 、 ��ュ 珞腱읽槪 腱�� 憬纜櫻 乾�頌 ��ヴ. 그 ���鋼 珞腱읽胛읒 腱��槪 이淞 �槪 梟� 燁��∽ 윈�倪ヴ, 그↔鋼 lower, upper, 그靴� split�  鋼 ���읒ュ �藜≠ ��ヴ. 그壽寧 皇鋼 �� �健� �頌그甦蛔�鋼 그 �頌� join 回��읒 ����밀, 그↔鋼 ��읒 靴맑�� 回��≠ ��꺌梟 �ヴ�≠, 玗鋼 그↔鋼 據�頌 �曳윈묽 꿴�� �� 깬� string 匯�� 件쇰읒 蛔蘿壽꺌 �ヴ� ���윔ヴ (그↔鋼 윈�尤 皇鋼 傑�� ↔�槪 ≠�� �ヴ). 寧ュ 그 �頌� join 回��況 �덱劍頌 ���ヴ, 그壽寧 윈壽솥鋼  鋼 籃�劍頌 虔뭡��玲 ��況 섰 ↔健ヴ. 그靴� 그↔健 玲若頌 윈壽솥槪 권灑�ヴ�, 윈壽솥鋼 깬� string.join ��況 ��읒 ��� � �ヴ.

윈壽솥鋼 껍譁도 珞腱읽槪 靴맑�頌 �⌒ュ �며� 回��≠ �ュ� 궷�� ↔健ヴ. 蘿速 �ヴ, 그↔鋼 split健�� 쇰患ヴ.

Example 1.35. Splitting a string

>>> li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s = ";".join(li)
>>> s
'server=mpilgrim;uid=sa;database=master;pwd=secret'
>>> s.split(";")    1
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s.split(";", 1) 2
['server=mpilgrim', 'uid=sa;database=master;pwd=secret']
1 splitュ 珞腱읽槪 ヴ燁-�뱉 靴맑�頌 �⌒�頌� join� ��≠ 들ヴ. 그 깬솥腱 (“;”)≠ 잽�尤 휸簫��舡槪 ����; 그↔鋼 �橒들 靴맑�� �뱉燁 �ニ↔읒도 寧�寧� 꿩ュヴ.
2 split ュ 묽��乾 듬 纜櫻 乾�況 ��ヴ, 그 乾�ュ �⌒� 勇�健ヴ. (“"劍劍舡, 묽�� 乾��...” 윈壽솥鋼 ヴ舡�읒밀 윈壽솥� ��읒밀 健峀∽ �ュ 輛槪 �� ↔健ヴ.)
Note
anystring.split(delimiter, 1) ュ 傑�� ��ボ健ヴ. 윈壽솥健 �寧� 珞腱읽槪 ↑��밀 �쇰珞腱읽槪 黔� 그靴� 그 �쇰珞腱읽 꽜� 匯� ↔�� (그↔鋼 �橒들 靴맑�� 憬 纜櫻 �뱉頌 �速����) 그 �쇰珞腱읽 딘� 匯� ↔�� (그↔鋼 듬 纜櫻 �뱉頌 �恍健 祿ヴ) 虔꾑��腱 � ┐ 傑��ヴ.

� 居�꺌 � ↔

1.15. � �

odbchelper.py �頌그少� 그 �悚鋼 健靈 잽�尤 健�≠ �꺌 �ヴ.

Example 1.36. odbchelper.py

def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.

    Returns string."""
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

if __name__ == "__main__":
    myParams = {"server":"mpilgrim", \
                "database":"master", \
                "uid":"sa", \
                "pwd":"secret" \
                }
    print buildConnectionString(myParams)

Example 1.37. Output of odbchelper.py

server=mpilgrim;uid=sa;database=master;pwd=secret

ヴ舡�劍頌 ヴ健�� ��≠� �읒, 윈壽솥鋼 �꿴�∽ 健壽� 匯� ↔�槪 �� �ュ� 蟯乾��:



[1] ヴ患 �頌그甦藜� 꿇��鋼 “object(∥譴)”況 ヴ患 籃�劍頌 穢��ヴ. �┱ 꿇�읒밀ュ, 匯� ∥譴ュ ��맸 뱃뭡� 回��況 ≠葉꺌 �ヴュ ↔槪 �藜�ヴ; ヴ患 꿇�읒밀ュ, 匯� ∥譴ュ �쇰�甦맑優≠ ≠��꺌 �ヴュ ↔槪 �藜�ヴ. �健�읒밀ュ, 그 穢�ュ 雨꽉 ニ많�ヴ; �┱ ∥譴ュ 뱃뭡도 回��도 ≠�� 꿩ュヴ (健↔읒 ��밀ュ 寧燁읒 � 腱뭐尤 ヴ�), 그靴� 匯� ∥譴≠ �쇰�甦맑優≠ ≠�� ↔도 껍レヴ. (健↔읒 ��밀ュ 靈 3�읒밀 � 腱뭐尤 ヴ�). 그壽寧 匯� ↔鋼 ∥譴健ヴ. 그↔鋼 순�읒 ���� � � �� 乾�頌밀 ��읒 �弄�� �ヴュ 瑩읒밀 (健↔읒 ��밀ュ 靈 2�읒밀 � 腱뭐尤 ヴ�) 匯� ↔鋼 ∥譴健ヴ.

[2] �靈頌, 그↔숩ヴュ � 손��ヴ. ��� �ュ ��맸 귑橒숄≠��꺌 �ヴ. �� 腱譴ュ 귑橒숄≠��ヴ, 그壽寧 윈壽솥健 靴맑�頌 健��玲 ��槪 ≠玲ヴ�, 그↔鋼 귑橒≠�劍頌 。��� 그↔槪 ��� �頌 ���ュ ↔鋼 꿴��� 꿩ヴ. 읫曳 珞腱읽, 밝腱頌 健��玲 ���梟健 玗鋼 ヴ患 ��-�� ��梟健 ��� �頌 ����� � �ヴ.


<< 밀 珞 � 量 靈 2 � ↑�� � >>