慢慢的开始进入状态啦,被明老师说我什么都不会后我觉得是该反思下自己这个学期的学习了,虽然我对实验没有很大的兴趣,但是既然名老师要求我开始做实验,我就跟着小丹师姐好好学学,用Tanger师兄的话来说就是:做实验有利于你理解生物信息学数据处理的原理,也许有一天,未来做生物信息的学弟学妹会看到这段话,就像我在码迷上看到free_mao的博文一样,生物信息还是基于生物的,生物原理必须要理解,不然和做计算机有什么区别呢?以前对书本的知识不够重视,语言的学习进度很缓慢,现在希望能分享一些学习心得体会给大家,避免大家走弯路太多。
废话不多说了,开始说说最近看的函数的话题,函数在语言里可以说是代码重用的基本单位,代码重用就是,在一个大的类或者模块里面,有些表达式需要被多次使用,假如没有函数的存在,就会使代码变得异常的臃肿,原谅我的语文不好,用了臃肿这个词,就是你在编写程序的时候,把需要重复的表达式写成函数,然后需要的时候调用函数就可以了,这样极大的缩短了代码的长度,在函数中包装代码,使其成为可再利用的工具,可以在很多程序中调用它,而且函数可以吧复杂的程序分割成可管理的部分,而且每一部分都可以独立的进行开发,这极大的增加了python代码的可读性,使代码更加简单易读。
python函数是由def来定义的,def定义的语句是一段可执行的代码,实际上python本身就是可执行的伪代码,意思就是说,def语句在运行的时候,会创建一个新的函数对象并将其赋值给一个变量名,上面提到python本身就是可执行的伪代码,所以python中所有的语句都是实时运行的,没有像独立编译时间这样的流程,因为def是一个语句,所以他能出现在语句可以出现的地方,函数往往存在于模块中中,只要调用了模块,就可以在语句中嵌套函数,去实现不同的函数定义,这是完全合法的。
例如:
import os
if test:
os.listdir()
或者:
if test:
def func():
...
else:
def func()
func()
再看看作用域:
作用域说起来是函数外的一个概念,但是它却跟函数息息相关,先说说作用域的定义,作用域相当于是变量定义以及查找的地方,因为变量在所有语言里都是个至关重要的东西,所以对作用于理解有利于更好的理解变量的含义和类别。
先说说说变量的种类:变量一般地分为全局变量和局部变量,其实在python中还有个个内置的储存变量的地方,就是python的内置模块里面的函数,我们称之为顶层变量。有一些很有用的法则:比如def语句内的变量默认为局部变量,def语句与def语句之间的变量相互独立,变量名可以相同,但却待变着完全不同的意思
然后说说作用域法则:内嵌的模块是全局作用域,即每个模块都是一个全局作用域,对于外部的全局变量就成为一个模块对象的属性,但是在一个模块中能够像变量一样轻松使用,这就是说导入模块后,可以任意使用模块中的函数
By milkcookie
FAFU