Python之旅由此开始
实际上老早就想学习Python了,以前也断断续续看了些,可是老是因为中途有事,把他给丢弃了!追根溯源,还是因为Python离我的工作学习环境太远,平时几乎碰不到。但还为什么要学呢?我认为作为一个程序猿,应该掌握一个比较低级的语言(C语言)和一门较为高级的语言(我选择了Python),所以趁现在有了点时间,可以继续学习了。可是发现以前学的东西,又不知道飞到哪里去了!所以这次采用这种方式,把每次的收获给记录下来。
以前看的是《python学习手册》(第四版),大概看到了十七八章的样子,其中的内容讲的是十分详细,章节后面还有练习,对初学者帮助甚大。但是很多的东西都忘了,而我又不想把以前的再看一遍,所以这次选的是《Div Into Python》,感觉也还不错!尽管有点老了,但对于一个新手而言,应该还是很不错的,应该还是能学很多的。
开头以下面的模块(odbchelper)代码为例来入门
1 def buildConnectionString(params): 2 """Build a connection string from a dictionary of parameters. 3 4 Returns string.""" 5 return ";".join(["%s=%s" % (k, v) for k, v in params.items()]) 6 7 if __name__ == "__main__": 8 myParams = {"server":"mpilgrim", \ 9 "database":"master", \ 10 "uid":"sa", \ 11 "pwd":"secret" \ 12 } 13 print buildConnectionString(myParams)
该模块分为两个部分:1、函数定义;2、测试部分
函数定义几要素:def, :, 缩进, 返回值。
def表示函数定义,没有说明返回值情况,但是Python的函数一定有返回值的,没有则返回None(这是Python内置的特殊数据类型),下面代码进行了测试:
1 >>> def testNone(): 2 print "this function return None" 3 4 5 >>> testNone() == None 6 this function return None 7 True 8 >>>
看,的确返回的是None.
而分号和缩进可以确定了整个函数体,而C语言是通过{}来区分代码块的,但是Python用的是分号和缩进。
至于那个"""三引号,表示的意思是doc string,它是这个函数的一个属性(_doc_)的值,为什么这里会提到属性的概念呢!在这里就需要介绍下Python的语言类型,Python是一种强类型、动态的、面向对象的脚本语言!It's very power!在Python 中一切皆对象,而对象就有属性和方法。
静态类型语言:一种在编译期间就确定数据类型的语言。大多数静态类型语言是通过要求在使用任一变量之前声明其数据类型来保证这一点的。Java 和 C 是静态类型语言。
动态类型语言:一种在运行期间才去确定数据类型的语言,与静态类型相反。VBScript 和 Python 是动态类型的,因为它们确定一个变量的类型是在您第一次给它赋值的时候。
强类型语言:一种总是强制类型定义的语言。Java 和 Python 是强制类型定义的。您有一个整数,如果不明确地进行转换 ,不能将把它当成一个字符串。
弱类型语言:一种类型可以被忽略的语言,与强类型相反。VBScript 是弱类型的。在 VBScript 中,您可以将字符串 '12' 和整数 3 进行连接得到字符串'123',然后可以把它看成整数 123 ,所有这些都不需要任何的显示转换。
测试部分就是利用了一个模块的属性__name__来判断,这段代码是被引用了,还是直接被执行。被引用了__name__而是模块的名字(odbchelper),如果直接执行这个值就是"__main__"。这样一来通过这个__name__属性,方便了模块测试,测试之后对于模块的合并有无影响。That's good!
浙公网安备 33010602011771号