我原来在想我这部分写什么呢?读完大大的代码解释之后要真的全部自己写对代码的认识,那绝对跟大大差了好几个数量级。可是完全复制粘贴大大的文章又不道德。我想我可以这样,把这部分当做读书笔记。重点句摘抄(也就是复制粘贴了),然后附上自己对这段程序的认识。等我找到更好的方法,这个模块的内容还会改动的。
一般程序都是通过{}来标识代码块的,而在python中,是通过缩进来识别代码块的。
缩进几个空格或者tab都是可以的,只要保持一致就可以。
行开头的空格才算缩进。当需要书写子代码块时,用缩进。
想想,写文章也是用缩进格式来进行排版,所以其实写python和写文章还是一脉相通的。
不过python的用格式代表的逻辑更严密。归属于“主模块”的子模块会缩进更多,以表示这个子模块从属于上一级缩进的"主模块“。
如下代码是从一个有名的python的框架django里摘取出来的。
Python入门学习过程(5-1)别看代码很多,很吓人,仔细看下三个箭头,你会发现这三部分至少从格式上是处在同一缩进位置,应该是从逻辑上是同一层。
仔细看看这些行python代码,是不是像文章一样啊,如果英文不好,至少眯缝着眼睛,能看出这"文章"有多少层逻辑含义。
将这三块逻辑含义翻译成中文,意思就更明确了(如果A.......否则....。假如B.......)
就顺带说下python的判断语句,if elif else.
假如在初冬出门,会看天气情况来应对,如果下雪。。。。。,如果下雨.........其他情况。。。。。。
用python写这个逻辑就是 if 下雪: xxxxx elif 下雨: xxxxxx else:xxxxxx
python除了缩进用的老多,来代表逻辑以外,还喜欢在if 等末尾 加“:” 代表下面还有“内容”。
接下来就讲,末尾还加":"的函数定义了。
Python编程中对于某些需要重复调用的程序,可以使用函数进行定义,基本形式为:
def 函数名(参数1, 参数2, ……, 参数N):
执行语句
return xxxx
为什么有函数呢?
举个例子,平常生活中,偷懒的时候,都希望有个人来帮我们干活。只要给那个人说明任务,然后吩咐一声,他就去干了,干完后,还把劳动成果送给我们。
在程序中,这个“佣人”就叫函数。参数是啥意思呢?就是对应干活必要的说明。
然后return 就是干完的结果返回给“主人”。
上我们每日一练的代码。
Python入门学习过程(5-1)这里的def output(k,v): 就是我们定义了一个“仆人”叫 output。然后给他吩咐了k,v2个参数。
细心的同学看到,明明是def output(k,v="lists"):嘛,为啥?
因为“主人”懒,懒得每次都给仆人说2个参数了,就给“仆人”说,“如果v那个没有给你说是啥意思,你就当主人说的是 “lists”“。
真的很懒啊,这种吩咐(传参数)的办法就叫默认参数,默认,顾名思义,约定好的参数,不用说也知道。
def 函数完毕后,“仆人”函数就自己执行去了。有人又说,为什么没有return呢,仆人不一定要返回结果,这里只打印出来不用处理并产出结果,就不返回了。
你看,定义好函数后,只要轻轻一调用,哈哈,“仆人”就可以自己去忙乎了。
在这个例子里,output如果有返回,那就这么调用。
xxx =output(k,v)
xxx就是得到的“劳动成果“了。
而且函数实现可以写很多,可以参看上面那个摘抄的django的源码中的,append(self.....的实现。
明天我们会讲到break,pass,for。
我的感悟
如果print k 只会输出左边的一列
Python入门学习过程(5-1)同理,print v 只会输出右边的一列
Python入门学习过程(5-1)程序短的话,print和函数可以执行一样的内容
Python入门学习过程(5-1)由此想到,把函数删了是不是也可以
Python入门学习过程(5-1)
网友评论