Python是解释型语言,在阅读时容易从代码层面理解。
配置了Python3.5环境。在SublimeText中学习python。Python中的数据类型和字符串与C语言类似,在定义一个变量时,python可以不用先定义出变量的类型。Python内置了四种表示数据集合的数据类型,分别是:list,tuple,dict和set。List中的元素是可变的,tuple中是不可变的,所以用起来更为安全。dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度,dict的key必须是不可变对象。set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来;第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。其条件判断和C语言类似,elif代表elseif。
学习了python的函数的用法,如何调用函数和定义函数:定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。函数的参数和递归函数都和C类似。
此外,python语言还有许多高级特性,如切片,迭代,列表生成式,生成器和迭代器。利用切片可以获取一个list或tuple的部分元素。用C或者Java,迭代是通过下标完成的,而在python中,迭代是用过for…in来完成的。列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。generator非常强大。如果推算的算法比较复杂,用类似列表生成式的for循环无法实现的时候,还可以用函数来实现。这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。Iterator甚至可以表示一个无限大的数据流,例如全体自然数。而使用list是永远不可能存储全体自然数的。
Python中的高阶函数:map/reduce,filter和sorted.返回函数:将函数作为返回值。匿名函数:使用lamda。以及装饰器和偏函数:functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。在一个模块中,我们可能会定义很多函数和变量,但有的函数和变量我们希望给别人使用,有的函数和变量我们希望仅仅在模块内部使用。在Python中,是通过_前缀来实现的。