初识Python(二)

函数

函数通过def关键字定义。def关键字后跟一个函数的 标识符 名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。

def max(a,b):

    if a>b:

  print a

    else:

  print b

max(3,5)

5

使用global语句,可以将一个变量声明为全局变量,即使在函数内部也可以为函数外部的变量赋值

x=10

def func():

      global x

      x=20

      print x

func()

20

默认参数值,当用户没有给相应参数提供值时将采用默认的参数值,对于没有默认值的参数必须提供值

>>> def say(a,b=2):

print a*b

>>> say('hello')

hellohello

>>> say('hello',3)

hellohellohello

关键参数,用户可以在使用时通过名称来给自己想赋值的参数赋值

>>> def say(a,b=23,c=32):

print 'a is',a,'b is',b,'c is',c

>>> say(a=12,c=12)

a is 12 b is 23 c is 12

return语句,默认Python每个函数最后都暗含一个return None语句,表示该函数没有任何返回值

>>> def say():

return 3

>>> say()

3

文档字符串,类似于函数,类等的说明

>>> def say():

'''这是一个函数


用于返回一个字符串'''

print 'aaa'


>>> help(say)

Help on function say in module __main__:

say()

    这是一个函数

    

    用于返回一个字符串

>>> print say.__doc__      另一种查看文档字符串的方法  注意双下划线

这是一个函数


用于返回一个字符串

模块

如果你想要在其他程序中重用很多函数,就需要使用模块,模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。

模块可以从其他程序 输入 以便利用它的功能。这也是我们使用Python标准库的方法。首先,我们将学习如何使用标准库模块。

>>> import sys          导入sys模块

>>> print 'path is',sys.path       使用sys模块中的path变量

path is ['C:\\Python23\\Lib\\idlelib', 'C:\\WINDOWS\\system32\\python23.zip', 'C:\\Python23', 'C:\\Python23\\DLLs', 'C:\\Python23\\lib', 'C:\\Python23\\lib\\plat-win', 'C:\\Python23\\lib\\lib-tk', 'C:\\Python23\\lib\\site-packages']

当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。每个Python模块都有它的__name__,如果它是'__main__',这说明这个模块被用户单独运行,我们可以进行相应的恰当操作。

if __name__ == '__main__':

    print 'This program is being run by itself'

else:

    print 'I am being imported from another module'

创建你自己的模块是十分简单的,你一直在这样做!每个Python程序也是一个模块。你已经确保它具有.py扩展名了。

def sayhi():
    print 'Hi, this is mymodule speaking.'
version = '0.1'

上面是一个 模块 的例子。你已经看到,它与我们普通的Python程序相比并没有什么特别之处。我们接下来将看看如何在我们别的Python程序中使用这个模块。

记住这个模块应该被放置在我们输入它的程序的同一个目录中,或者在sys.path所列目录之一。

import mymodule

mymodule.sayhi()

print 'Version', mymodule.version

你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。

>>> def say():

return None

>>> x=10

>>> dir()

['__builtins__', '__doc__', '__name__', 'say', 'x']

当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。

>>> import sys

>>> dir(sys)

['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'exc_clear', 'exc_info', 'exc_traceback', 'exc_type', 'exc_value', 'excepthook', 'exec_prefix', 'executable', 'exit', 'exitfunc', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'getwindowsversion', 'hexversion', 'maxint', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'version', 'version_info', 'warnoptions', 'winver']

注意,输入的模块同样是列表的一部分。

>>> import sys

>>> def say():

return None

>>> x=10

>>> dir()

['__builtins__', '__doc__', '__name__', 'say', 'sys', 'x']

posted @ 2011-07-22 00:15  何塞穆里尼奥  阅读(454)  评论(0编辑  收藏  举报