一、函数的类型
def sum_2(): ## 函数的定义
num1 = 10
num2 = 20
result = num1 + num2
print "%d + %d = %d" % (num1, num2, result)
sum_2() ## 函数的调用
2、有参函数(形参和是参之间的传递)
def sum_2_1(num1, num2):
result = num1 + num2
print "%d + %d = %d" % (num1, num2, result)
sum_2_1(7, 98)
3、collatz(number)函数,参数为偶数打印number//2;奇数打印3*number+1
方法一:
def collatz(number):
if number%2 == 0:
print number//2
else:
print 3*number+1
collatz(2)
方法二:print number // 2 if number % 2 == 0 else 3 * number + 1
二、函数的四大形参
def getInfo(name, age):
print name, age
getInfo(age=12, name='westos')
2、默认参数
def mypow(x, y=2):
print x ** y # **为幂次方
mypow(4, 3)
3、可变参数:形参的个数不确定
def mysum(*args):
print args # *args:是可变参数;args是元组类型的数据
sum = 0
for i in args:
sum += i
print sum
mysum(1, 2, 3, 4)
# 对list,tuple,set解包时,只需要在函数调用的变量面前加*
nums = [1,3,5,7] # 列表类型,对列表或集合进行解包
mysum(*nums)
4、关键字参数(**kwargs是一个字典,可以传递任意多的key-values)
def getStu(name, age, **kwargs):
print name, age
print kwargs
getStu('westos', '20', hobbies=['code', 'runuing'], gender='farman')
三、函数的返回值
函数的返回值:当函数结果还需要进一步操作时,给一个返回值。使用return关键字用来返回函数的执行结果;若没有返回值,则默认返回null。Python中可以间接返回多个值(返回类型时元组)。执行return后,后面代码不会执行。
实例1:
def mypow(x,y=2):
return x**y,x+y
a,b = mypow(2,5) ## 使用两个变量对返回值进行接收
print mypow(3,2) ## 此时,返回的是(9,5)
四、函数的局部、全局变量
局部变量:在函数内定义的普通变量,只在函数内作用;函数结束,变量就自动删除
全局变量:在函数外定义;定义时,存放于函数上方。
global a ## 可以在局部变量中申明全局变量
不同函数内部可以定义相同的局部变量,且相互之间不会产生影响
实例:
a = 1
def fun():
global a
a = 3
print a ## 此时的a为全局变量
fun()
print a