<<  ը 2 ˌ ȍ˂  >>

1 ˌ. 貮

1.1.

˟, ˅.

ס˼ ˂ . ס ۂ ; ס 뫆ˤ ܂ ࡢ. һ ˜ ס f , ˅, ס Dz 킯 貮.

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 , ס˼ ﹚ Dz ը . 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 + otherlist list.extend(otherlist) . һ + Ȑ ț ¡ ՠ, ՠ extend ˍ 챉 .
2 ˼ += Ȑ ϡ. li += ['two'] li = li + ['two'] . += Ȑ , ը, ۹ , ס˼ ȍ-˂ ˂ ۲ ˅. ( 3ˌ )
3 * Ȑ ՠ . li = [1, 2] * 3˼ li = [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 ȍ ˅ ȍ ˅.

˼ Dz ?

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 򸁵˂ 翫: MONDAY 0, TUESDAY 1, .

˼ - ȍ , ݵ ՠ븇, ՠ ﹚ ̈ ˅. ˼ ס һ˂ ̑ނ ˅, Ҽ˞ 񫍂 ˅. 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 ˟̹ ˼ ը . տ %s k˂ ̹; տ %s v˂ . ը ˅ ݵ ը˼ ( , ) ׫ 皵.

(k, v) 즗. һ ס굎 Dz ݡ ˅ Ȃ.

˼ ը ¡ 챉 ˤ ˼ ˼ ࡢ皵 , ը С ˜ ¡ 즗 ǫ, 皵 . ס˼ ը ¡ . ס˼ .

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 Dz ȓ . ˼ , 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() Ы. (˼ ˼ տ ȍ 硒 皵 ; ˼ , ˼ Ǹ 첔һ f ˅.)
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 ˌ ȍ˂  >>