027-87227388

初学Python之第一个入门小程序

发布时间:2020-12-16 浏览:1361

去年夏天开始接触Python,刚开始觉得这个语言相当简洁精练,断断续续的学了一些基础知识,打算今年好好地系统学一下。先把以前看深入Python时做的笔记整理一下,以免像以前那样学了后面的就忘了前面的基础知识。

     第一个Python示例小程序:

1
2
3
4
5
6
7
8
9
10
11
12
def buildConnectionString(params):
    """Build a connection string from a dictionary
       Returns string.
    """
    return ";".join(["%s=%s" %(k,v) for k, v in params.items()])
 
if __name__ == "__main__":
    myParams = {"server":"temp",\
                "database":"db_temp",\
                "uid":"sa",\
                "pwd":"dont know"}
    print buildConnectionString(myParams)

  运行结果:

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

函数声明

     首先,函数声明以关键字def开始,接着为函数名,然后为参数,参数放在小括号里,多个参数之间用逗号分隔。

     其次,函数没有定义返回的数据类型,Python不需要指定返回值的数据类型;甚至不需要指定是由有返回值。实际上,每个Python函数都返回一个值,如果函数执行过return语句,它将返回指定的值,否则将返回None空值。在Python中参数不需要指定数据类型,Python会判定一个变量是什么类型,并在内部将其记录下来。

 

文档化函数

     可以通过给出一个 doc string (文档说明的字符串来文档化一个 Python 函数。定义 buildConnectionString 函数的 doc string

1
2
3
4
5
def buildConnectionString(params):
 
"""Build a connection string from a dictionary of parameters.
 
Returns string."""

   三重引号表示一个多行字符串。在开始与结束引号间的所有东西都被视为单个字符串的一部分,包括硬回车和其它的引号字符。您可以在任何地方使用它们,但是您可能会发现,它们经常被用于定义 doc string

     在三重引号中的任何东西都是这个函数的 doc string,它们用来说明函数可以做什么。如果存在 doc string,它必须是一个函数要定义的第一个内容 (也就是说,在冒号后面的第一个内容)。在技术上不要求给出函数的 doc string,但应该尽可能为每个函数都添加doc string,它 在运行时可作为函数的属性。

 

万物皆对象

     在Python中,函数同其它东西一样也是对象(刚开始觉得很新奇)。

 

1
2
3
4
5
6
7
>>> 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 程序作为模块导入。模块是指一个可以交互使用,或者从另一 Python 程序访问的代码段。 只要导入了一个模块,就可以引用它的任何公共的函数、类或属性。模块可以通过这种方法来使用其它模块的功能。

     (2)当使用在被导入模块中定义的函数时,必须包含模块的名字。所以不能只使用 buildConnectionString,而应该使用 odbchelper.buildConnectionString。

     (3)访问函数的 __doc__ 属性并不是通过函数调用。

代码缩进

     Python 函数没有明显的 begin 和 end,没有标明函数的开始和结束的花括号。唯一的分隔符是一个冒号 (:),接着代码本身是缩进的。

     代码块是通过它们的缩进来定义的。这里所说的“代码块”是指:函数、if 语句、for 循环、while 循环,等等。开始缩进表示块的开始,取消缩进表示块的结束。不存在明显的括号,大括号或关键字。

测试模块

     所有的 Python 模块都是对象,并且有几个有用的属性。可以使用这些属性方便地测试你所编写的模块。下面是一个使用 if __name__ 的技巧。

if __name__ == "__main__":

  首先,if 表达式无需使用圆括号括起来。其次,if 语句以冒号结束,紧跟其后的是缩进代码。

     模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于你如何应用模块。如果 import 模块,那么 __name__ 的值通常为模块的文件名,不带路径或者文件扩展名。但是你也可以像一个标准的程序一样直接运行模块,在这种情况下 __name__ 的值将是一个特别的缺省值,__main__,这样你可以很方便地测试单个模块。