函数:可以被调用,它执行某种行为并且返回一个值,一般都是用callable函数来判断该函数是否可以调用。
import math x=1 y=math.sqrt callable(x) False callable(y) True使用def来定义函数
# coding=gbk def goto(name): return 'mk'+name+'ok'; print(goto('tffff')) mktffffok # coding=gbk def fibs(num): result=[0.1] for i in range(num-2): result.append(result[i]*10) return result; print(fibs(10))文档化函数, 如果想给函数写文档,让其他使用该函数仁能理解的话,可以加入注释(#),另外一个方式就是直接写上字符串,这类字符串在其他地方可能非常好用,如果在函数的开头写下字符串,它就会作为函数的一部分进行存储。 return 可以做为函数的结束,可以不用返回任何东西eg:return;
# coding=gbk def printMax(x,y): '''Prints the maximum of two numbers. The two values must be integers.''' x=int(x) y=int(y) if x>y: print(x,'is maximum') else: print(y,'is maximum') print (printMax.__doc__) Prints the maximum of two numbers. The two values must be integers.1.能否改变参数值 在函数内部给参数重新赋值,会不会改变原来的值,
# coding=gbk def try_to_into(a): a='this go' return a name='one' print(try_to_into(name)) this go事实证明了是可以改变的。 字符串(以及数字和元组)是不可变的,无法被修改,(只能用新的值覆盖)
# coding=gbk def change(n): n[0]='10' return n names=[1,2,3,4,5] change(names) print(names) ['10', 2, 3, 4, 5]另外一种情况,单两个变量同时引用一个列表的时候,其中一个变量修改里面的值得时候,另外一个变量也跟着改变,
names=[1,2,3,4,5] sexs=names sexs[1]=1000 names [1, 1000, 3, 4, 5]如果要改变这个现象,可以复制一个列表副本
names=[1,2,3,4,5] n=names[:] n is names False n==names True n[0]=-100 names [1, 2, 3, 4, 5] n [-100, 2, 3, 4, 5]