`
thecloud
  • 浏览: 951037 次
文章分类
社区版块
存档分类
最新评论

《简明python教程》总结(三)-- 函数、模块

 
阅读更多
函数
函数通过def关键字定义,参数在函数定义的圆括号对内指定,用逗号分割
示例:
#!/usr/bin/python
# Filename: func_param.py
def printMax(a, b):
if a > b:
print a, 'is maximum'
else:
print b, 'is maximum'
printMax(3, 4)# directly give literal values
x = 5
y = 7
printMax(x, y)
输出
$ python func_param.py
4 is maximum
7 is maximum
全局变量与局部变量
局部变量
在函数定义内声明变量的时候,它与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。
示例
#!/usr/bin/python
# Filename: func_local.py
def func(x):
print 'x is', x
x = 2
print 'Changed local x to', x
x = 50
func(x)
print 'x is still', x
输出
$ python func_local.py
x is 50
Changed local x to 2
x is still 50
全局变量
为一个定义在函数外的变量赋值,需告诉Python这个变量名不是局部的,而是全局 的。使用global语句完成这一功能,表明使用的变量为外面的块定义的。没有global语句,是不可能为定义在函数外的变量赋值的
示例
#!/usr/bin/python
# Filename: func_global.py
def func():
global x
print 'x is', x
x = 2
print 'Changed local x to', x
x = 50
func()
print 'Value of x is', x
输出
$ python func_global.py
x is 50
Changed global x to 2
Value of x is 2
默认参数值
为一些函数的参数提供一些默认的值。当函数调用时未指定该形参对应的实参时,则使用函数定义时 为形参定义的默认值
注:函数定义时,参数的默认值应从右向左给出。同C/C++方式。 如 func(a,b=1,c=2)正确,func(a=1,b,c=2)错误
关键参数
对于函数的参数,只想指定其中的一部分,那么可以通过命名来为这些参数赋值——这被称作关键参数 ——我们使用名字(关键字)而不是位置(我们前面所一直使用的方法)来给函数指定实参
#!/usr/bin/python
# Filename: func_key.py
def func(a, b=5, c=10):
print 'a is', a, 'and b is', b, 'and c is', c
func(3, 7)
func(25, c=24)
func(c=50, a=100)
输出
$ python func_key.py
a is 3 and b is 7 and c is 10
a is 25 and b is 5 and c is 24
a is 100 and b is 5 and c is 50
Docstrings--文档字符串
DocStrings是一个重要的工具,帮助程序文档更加简单易懂,应该尽量使用它。可以在程序运行的时候,从函数恢复文档字符串!
示例:
#!/usr/bin/python
# Filename: func_doc.py
def printMax(x, y):
'''Prints the maximum of two numbers.
The two values must be integers.'
''
x = int(x)# convert to integers, if possible
y = int(y)
if x > y:
print x, 'is maximum'
else:
print y, 'is maximum'
printMax(3, 5)
print printMax.__doc__
输出
$ python func_doc.py
5 is maximum
Prints the maximum of two numbers.
The two values must be integers.
分析:
在函数的第一个逻辑行的字符串是这个函数的 文档字符串 。注意,DocStrings也适用于模块和类
文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。
使用__doc__ (注意双下划线)调用printMax函数的文档字符串属性(属于函数的名称)。
help()抓取的即为函数的__doc__属性
建议:
对所写的任何正式函数编写文档字符串。

模块
模块基本上就是一个包含了所有定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。
作用:重用其他程序中的函数和变量。即模块可以从其他程序输入以便利用它的功能。
例:使用标准库模块 sys模块
#!/usr/bin/python
# Filename: using_sys.py
import sys
print 'The command line arguments are:'
for i in sys.argv:
print i
print '\n\nThe PYTHONPATH is', sys.path, '\n'
输出
$ python using_sys.py we are arguments
The command line arguments are:
using_sys.py
we
are
arguments
The PYTHONPATH is ['/home/swaroop/byte/code', '/usr/lib/python23.zip',
'/usr/lib/python2.3', '/usr/lib/python2.3/plat-linux2',
'/usr/lib/python2.3/lib-tk', '/usr/lib/python2.3/lib-dynload',
'/usr/lib/python2.3/site-packages', '/usr/lib/python2.3/site-packages/gtk-2.0']
分析:
import sys 告诉Python,我们想要使用sys这个模块。sys模块包含了与Python解释器和它的环境有关的函数。
当Python执行import sys语句的时候,它在sys.path变量中所列目录中寻找sys.py模块。如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你使用 。
sys.path包含输入模块的目录名列表。sys.path的第一个字符串是空的——这个空的字符串表示当前目录也是sys.path的一部分,这与PYTHONPATH环境变量是相同的。这意味着可以直接输入位于当前目录的模块。否则,你得把你的模块放在sys.path所列的目录之一
字节编译的.pyc文件
输入一个模块相对来说是一个比较费时的事情,Python做了一些技巧,以便使输入模块更加快一些。
一种方法是创建 字节编译的文件 ,这些文件以.pyc作为扩展名。字节编译的文件与Python变换程序的中间状态有关(是否还记得Python如何工作的介绍?)。当下次从别的程序输入这个模块的时候,.pyc文件是十分有用的——它会快得多,因为一部分输入模块所需的处理已经完成了。另外,这些字节编译的文件也是与平台无关的。
创建自己的模块
#!/usr/bin/python
# Filename: mymodule.py
def sayhi():
print 'Hi, this is mymodule speaking.'
version = '0.1'
# End of mymodule.py
记住这个模块应该被放置在我们输入它的程序的同一个目录中,或者在sys.path所列目录之一。
调用模块
示例
#!/usr/bin/python
# Filename: mymodule_demo.py
import mymodule
mymodule.sayhi()
print 'Version', mymodule.version
输出
$ python mymodule_demo.py
Hi, this is mymodule speaking.
Version 0.1
使用 from...import
(from x import a,b,c 表示从模块 x中 导出 变量/函数 a,b,c)
#!/usr/bin/python
# Filename: mymodule_demo2.py
from mymodule import sayhi, version
# Alternative:
# from mymodule import *
sayhi()
print 'Version', version
输出同上
dir()函数
内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。
当为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表
例:
#!/usr/bin/env python
#filename:mymodule.py
import sys
def sayhi():
print 'Hi, this is mymodule speaking.'

version = '0.1'

print dir()
print dir(sys)
返回:其中 第一个[]内的属性为当前模块的,第二个[]内的属性为 sys模块的
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'sayhi', 'sys', 'version']
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'py3kwarning', 'pydebug', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']

分享到:
评论

相关推荐

    《简明 Python 教程》byte-of-python-chinese-edition

    《简明Python教程》的内容不仅限于编程本身,还包括对Python社区和资源的介绍,如标准库的使用和第三方库的获取,这有助于读者进一步扩展知识和技能。最后,书中的附录部分提供了对Python编程中常见问题的解答,帮助...

    简明Python教程.pdf

    《简明Python教程》是一本自由图书,由Swaroop C H编写,旨在于介绍如何使用Python语言进行编程。该书以教材与指南的形式为入门者介绍Python语言。 Python安装 --------- 在开始学习Python之前,需要安装Python...

    Python基础教程---简明Python教程

    "Python基础教程---简明Python教程"是Swaroop C. H.撰写,并由沈洁元翻译的一本针对初学者的指导书籍。这本书旨在帮助读者快速掌握Python编程的基本概念和技能。 1. **Python简介**: Python是一种解释型、面向...

    简明Python教程_byte-of-python-chinese-edition

    《简明Python教程》中文版,也被称为《Byte of Python》,是Python编程语言的一本入门级教程,适合初学者和对编程有一定基础的人群。这本书以其简洁明了的风格,深入浅出地介绍了Python的基本概念和语法,为读者提供...

    简明python教程-中文版( byte-of-python-chinese-edition.pdf )

    #### 一、简明Python教程概览 - **教程目标**:本书旨在作为Python编程的入门教程,适用于编程初学者,尤其是对于计算机基础知识较为有限的读者。 - **作者与翻译**:原作者为Swaroop C.H.;中文版由沈洁元首次翻译...

    简明python教程.pdf_python教程_简明Python教程_

    "简明Python教程"涵盖了Python的基础知识和核心概念,通过学习,读者能够理解Python的基本语法、数据结构、控制流、函数以及面向对象编程等概念,并能进行简单的编程实践。随着对Python的深入学习,读者可以进一步...

    简明Python教程-V4.08c-第4版-最新版

    "简明Python教程-V4.08c-第4版-最新版"是这个经典教程的最新版本,相较于早期版本,可能包含了一些改进、修复和新特性。4.08c版可能涵盖了Python语言的新发展,如新模块的介绍、语法优化或对已有内容的深度解析。...

    简明Python教程-V4.0c-2017-译本.pdf

    在《简明Python教程》中,读者可以了解到以下Python编程的基础知识: 1. **安装Python**: 首先,学习Python需要在计算机上安装Python解释器。教程会指导读者如何下载和安装不同平台上的Python环境,包括Windows、...

    Python初学教程:《简明Python教程》

    ### Python初学教程:《简明Python教程》 #### 知识点概述: 根据所提供的《简明Python教程》部分信息,我们可以归纳出一系列重要的Python基础知识和技术要点,这些内容非常适合Python初学者作为入门指南。 #### ...

    简明Python教程(第四版)

    - **书籍背景**:《简明Python教程》(第四版)是一本由Swaroop C.H.编写的自由图书,旨在帮助初学者掌握Python编程的基础知识。本书最初由沈洁元引入中国并翻译,后由漠伦基于原书第4.0版进行了全新的翻译,形成了...

    简明python教程英文原版

    通过上述总结可以看出,《简明Python教程英文原版》不仅覆盖了Python编程的基础知识,还涉及了高级话题,是一本非常适合自学的教材。无论是对编程完全陌生的读者还是有一定基础的学习者,都能从中获得有价值的信息和...

    简明Python教程-V1.2版.pdf

    本资源是一个 Python 编程语言的教程,涵盖了 Python 语言的基础知识、安装、基本概念、运算符与表达式、控制流、函数、模块、数据结构、面向对象的编程、输入&输出、异常、Python 标准库等方面的内容。 主要知识点...

    简明 Python 教程 Python3

    总的来说,"简明 Python 教程 Python3"涵盖了Python3的基础知识,包括语法、数据结构、函数、模块、异常处理、IO操作、面向对象编程以及控制流等内容,是Python初学者理想的入门资源。通过深入学习和实践,可以快速...

    A Byte of Python(简明Python教程英文最新版)

    #### 一、简明Python教程概览 - **书籍名称**:《A Byte of Python》(简明Python教程英文最新版) - **作者**:Swaroop C.H. - **版权信息**:该书遵循Creative Commons Attribution-NonCommercial-ShareAlike ...

    简明Python教程,简明python教程 电子书,Python

    "简明Python教程"旨在为新手提供一个清晰、全面的Python学习路径。这个教程覆盖了Python的基础知识,帮助读者快速掌握编程技能。 **基础语法** 在Python中,代码是通过缩进来组织的,这被称为"强制性缩进"。这种...

    简明Python教程+python标准库.chm

    `简明Python教程.chm`和`python标准库.chm`都是这种格式的文件,其中包含了丰富的文字、例子和可能的索引,用户可以通过内置的搜索功能快速查找所需信息。 通过这个压缩包,初学者不仅可以学习Python的基本概念,还...

    简明python教程Html版

    "简明Python教程Html版"是一个专门为初学者设计的在线学习资源,旨在帮助读者快速掌握Python的基础知识。 1. **变量与数据类型** Python中的变量无需预声明,可以直接赋值。它支持多种数据类型,如整型(int)、...

Global site tag (gtag.js) - Google Analytics