1.程序越写越大,越来越复杂怎么办?得把它们分解为小的部分进行组织,这样容易编写,也容易让人明白。那么,把程序分解为小的部分有哪些方法?主要有3中,其一函数(function),就像代码的积木,可以反复使用,是用来完成某个工作的代码块(block);其二对象(object),可以把程序中的各部分描述为自包含的单元;其三模块(module),就是包含程序各部分的单独的文件。
ps:以上书里对三者的解释并不清楚,期待后面学习过程中逐渐明白差异。
2.Q:用循环可以让代码多次运行,那还需要多次调用函数吗?
A:如果希望在程序的不同位置打印地址,而不是全部都一次完成,循环就实现不了,而函数就可以。
3.使用函数的两个原因:其一,一旦定义了函数,就可以通过调用反复使用;其二,每次函数运行时可以让它有不同的表现(后者通过下文的参数实现);其三,函数还可以向你发回一些东西,要让函数返回一个值,需要在函数中使用关键字return。
4.函数后括号的作用:用来传递参数(argument)。怎么理解参数?就是指你交给函数的一条信息。调用函数时,我们把参数放在括号里,通过这种方式将参数传入函数。
5.实参和形参的区别?可以说没区别,硬要说有区别,可以这么理解:谈到传递部分(调用函数)时应当称作实参(argument),而谈到接收部分(函数内部)时应该称为形参(parameter)。
6.对于函数而言,函数内的名字只是在函数运行时才会创建,在函数运行之前或者完成运行之后甚至根本不存在。函数运行结束时,其中的所有函数内的名字都不再存在。
7.变量作用域(scope)是什么?就是程序中使用变量的部分。
8.局部变量(local variable)和全局(global variable)变量差异?前者只在包含其本身的函数内部使用,后者可在更大的程序的主部分使用。
9.如果你试图从函数内部改变一个全局变量的值,会发生什么?Python会创建一个新的局部变量,为的是防止函数无意地改变全局变量。不过,有些情况下你确实想要在函数中改变一个全局变量,那该怎么做呢?可以用Python的一个关键字global来做到。
10.动手试一试第13章书上的第3小题,看看将局部变量强制为全局变量后,和函数外部的全局变量冲突时(即二者命名相同)程序的运行结果。代码如下: