今天继续学习函数,对应书的第8章节。
第一章是大大的图,今日的任务是建立一个列表,熟悉len和range函数的用法,然后构建一个output函数,并成功运行。
具体来说
第5-8行:建立列表
第9行,len函数:测算list列表包含的参数个数
第10行,range函数:列出从0到参数。贴一段网上的range函数的描述,就秒懂了:
>>>range(1,5)#代表从1到5(不包含5)
[1,2,3,4]
>>>range(1,5,2)#代表从1到5,间隔2(不包含5)
[1,3]
>>>range(5)#代表从0到5(不包含5)
[0,1,2,3,4]
(来源:http://www.cnblogs.com/buro79xxd/archive/2011/05/23/2054493.html)
第12-13行,定义output函数
第15-16行,遍历range函数形成的列表,调用list列表中对应的值,通过output函数打印
以下是我的尝试,问题主要出在,当我敲完所有代码后,运行发现不能正确显示,就像下图显示区前3行显示的一样,因此我采用了排除法来解决问题:
(1)检查16-17行的循环,方法是不用output函数,通过遍历直接print,结果发现可以输出。说明循环没有问题
(2)检查output函数,方法是不调用list函数,直接用output(i),结果显示也没有问题,说明output函数也没有问题
(3)那么就困惑了,为何组合会有问题,然后发现仔细核对了原图,发现第13行,print 后面不能加(),去掉()之后就可以成功运行了。那么问题在于,print后面什么时候该加括号,什么时候不该加呢?我在网上没有找到相应的答案,只说是因为版本升级,现在print函数化了,那按理说,都应该加上()。为什么我加了反而报错了呢?等待解答。