首页 > 代码库 > Python基础11- 函数之自定义函数

Python基础11- 函数之自定义函数

自定义函数语法结构:
def fun1([x],[y],....):
  语句1
  语句2

使用def语句来定义函数,在def后依次写出函数名、小括号、参数(可无)、冒号,然后缩进写函数体

 

1、无参函数:
def test():
  print ‘这是不带参数的函数‘

test()

 

2、带参数的函数
def test1(x,y):    #x,y为形参(提供给使用者的接入)
  print x * y

test1(2,3)      #调用时称为实参

 

3、带参数有返回值的函数
def test2(a,b):
  print a
  print b
  c = a + b
  return c

sum = test2(3,5)    #若函数有返回值,调用是需要有变量来存储返回值
print sum

 

4、带参数返回多个值 -- 返回一个元组(多个变量同时接收到一个元组)
def test3(a,b):
  print a
  print b
  c = a + b
  d = a * b
  e = a / b
  return c,d,e

result = test3(6,3)
print result

 

实例:游戏移动后坐标点返回
def move(x,y,step,angle=0):
  nx = x + step * math.cos(angle)
  ny = y - step * math.sin(angle)
  return nx,ny

zb = move(100,100,60,math.pi/6)
print zb

 

5、函数的预定义值(默认参数)
def test4(x,y,z,h=4):
  print x
  print y
  print z
  h = x + y + z + h
  return h

sum = test4(1,2,3)
print sum

 

def test5(h=4,x,y,z) -报错,有预定义值参数时,该参数只能放到最后

 

实例:求x的n次方:
def power(x,n):
  s = 1
  while n > 0:
    n = n - 1
    s = s * x
  return s

print power(3,4)

 

有多个预定义值的时候,既可以按顺序重新设定预定义值,也可以不按顺序设定
唯一区别就是:不按顺序设定时需要把参数名给加上,如:
def student(name,gender,age=8,city=‘shenzhen‘):
  print ‘name is:‘,name
  print ‘gender is:‘,gender
  print ‘age is:‘,age
  print ‘city is:‘,city

student(‘James‘,‘M‘,7)
student(‘Polo‘,‘M‘,city=‘Guangzhou‘)

 

Python基础11- 函数之自定义函数