函数:可以被调用,它执行某种行为并且返回一个值,一般都是用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]