Python(day6)-函数

一 为何要有函数?
不加区分地将所有功能的代码垒到一起,问题是:
代码可读性差
代码冗余
代码可扩展差

如何解决?
函数即工具,事先准备工具的过程是定义函数,拿来就用指的就是函数调用

结论:函数使用必须是:先定义,后调用

 

二:函数的分类
  1.内置函数:built-in
  2.自定义函数:
    def 函数名(参数1,参数2,...):
      '''注释'''
      函数体

可以先看个例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'''
************
************
************
hello world
************
************
************
'''
 
def print_tag(tag,count,line_num):
    for in range(line_num):
        print(tag*count)
 
def print_msg(msg): #msg='hello world'
    print(msg)
 
print_tag('*',20,3)
print_msg('hello world')
print_tag('*',20,3)

  

1、定义阶段

1
2
3
4
5
6
def foo():
    print('from foo')
    bra()
 
def bra():
    print('from bra')

 

1
2
def func():  #语法没问题,逻辑有问题,引用 一个不存在的变量名
    adfkgjklgnlfijg

  

2、调用阶段

调用函数的形式
语句形式
  func()

表达式
  res=func2(10)
  res=10*func2(10)


函数调用当做参数传入另外一个函数
res=func2(func2(10))

1
foo()  #执行函数语句形式<br><br>================================<br><br>res=foo()   #执行函数表达式形式 <br>print(res)

 3、定义阶段:只检测语法,不执行代码

1
2
3
def func():
    if 1>2
       print('hahahaha')

4、定义函数的三种形式

无参函数

def func():

  pass

有参函数

def func(x):

  print(x)

空函数

def func()

  pass 

函数的使用:先定义,后调用
如何定义函数之定义函数的三种形式
1.定义无参函数:函数的执行不依赖于调用者传入的参数就能执行时,需要定义为无参函数
1
2
3
def print_tag():
     print('*************************')
print_tag()

2.定义有参数:函数的执行需要依赖于调用者传入的参数才能执行时,需要定义为有参函数

1
2
3
4
5
def func(x,y,*args):
    print(x,y)
    print(args)
 
func(1,2,3,4,5,6)
1
2
3
4
5
6
7
8
def max2(x,y):  
     if x > y:
         return x
     else:
         return y
 
 res=10*max2(20,2)    #取大值乘10
 print(res)

  

1
2
3
4
5
6
7
8
9
def max2(x,y):
    if x > y:    #如果x值比y大
        return x    #返回x值给函数max2
    else:
        return y  #否则返回y值
 
#11,23,100
res=max2(max2(11,23),100)  #比较x 、y的值,取大值接着比较
print(res)

  

3 定义空函数:

1
2
3
#3 定义空函数:函数体为pass
# def func(x,y,z):
#     pass

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def auth():
    '''用户认证'''
    pass
 
def get():
    '''download file'''
    pass
 
def put():
    '''upload file'''
    pass
 
def check_hash():
    '''check file hash value'''
    pass

 总结

函数的使用必须遵循:先定义后使用的原则

函数的定义:与变量的定义是相似的,如果没有事先定义函数而直接引用,就相当于在引用一个不存在的变量名

补充:函数里没有return 默认返回none值

包含多个值,默认识别返回值成元组格式

返回值:可以返回任意类型

return的效果:只能返回一次值,终止函数的执行

posted @ 2017-07-31 16:55  百思不得姐  阅读(86)  评论(0编辑  收藏  举报