Python-函数的分类、定义、调用

函数的用法和底层分析

       函数是可重用(功能单一,切割好)的程序代码块。

       作用:实现代码复用,实现代码一致性(修改函数代码,所有调用该函数的地方都能得到体现)

       函数对代码实现了封装,并增加了函数调用、传递参数、返回计算结果等内容。

函数的基本概念

       一个程序由一个个任务组成;函数就代表了一个任务或者一个功能

       函数是代码复用的通用机制

Python函数的分类

  • 内置函数

Str()/list()/len(),可以拿来直接使用

  • 标准库函数

通过import语句导入库,使用其中定义的函数

  • 第三方库

Python社区提供高质量的库。下载安装这些库,通过import语句导入并使用

  • 用户自定义函数

用户自定义,适应自身需求

函数的定义和调用

语法:

      def 函数名([参数列表]):

              “文档字符串”

              函数体/若干语句

核心要点:

使用def来定义函数,然后就是一个空的函数名

  • Python执行def时,会创建一个函数对象(内存:堆),并绑定到函数名变量(内存:栈)上,堆的地址给了栈,反复调用栈(函数名变量)找到堆(函数对象)地址 

参数列表

  • 圆括号内是形式参数列表,有多个参数则使用逗号隔开
  • 形式参数不需要声明类型,也不需要指定函数返回值类型
  • 无参数,也必须保留空括号
  • 实参列表必须与形参列表一一对应

Return返回值

  • 如果函数体中包含return语句,则结束函数执行并返回值
  • 如果函数体中不包含return语句,则返回None值

调用函数之前,必须先定义函数,即:先调用def创建函数对象

  • 内置函数对象会自动创建。例如:str,python启动后都创建好了
  • 标准库和第三方库函数,通过import导入模块时,会执行模块中的def语句

#测试函数的定义和调用

 

#标识符的规则,字母下划线开头,字母、下划线、数字

#函数的定义

def test01():

    print("*"*10)

    print("test function")

    print("0"*10)

 

print(id(test01())) #

print(type(test01()))#函数对象 function 类型

print(test01())

 

#函数的调用

test01()

 

#循环体调用函数,实现代码的重用,提高编程的效率

for i in range(10):

    print("--------")

    test01()

形参和实参

Def printMax(a,b):

实现两个数的比较,并返回较大的值

If a>b:

    Print(a,”较大值”)

Else:

    Print(b,”较大值”)

Print(10,20)

Print(30,5)

 

def printMax(a,b):  #形参用于定义的时候
   
if a>b:
       
print(a,"较大值")
   
else:
       
print(b,"较大值")
printMax(
300,20#实参用于调用的时候
printMax(30,50)

 

文档字符串(函数的注释)

       用三个单引号或者三个双引号

       help 注释 。help(函数名.__doc__)  用户打印函数的注释

def printMax(a,b):  #形参用于定义的时候
 #   '''单引号注释'''

    """双引号 函数的注释"""

   
c = """
    """ 
#三个单引号或者双引号可以定义字符串
   
c= '''
    '''
   
if a>b:
       
print(a,"较大值")
   
else:
       
print(b,"较大值")
printMax(
300,20#实参用于调用的时候
printMax(30,50)

#help 注释 。help(函数名.__doc__)  用户打印函数的注释
help(printMax.__doc__)

 

返回值

Return返回值

如果函数体中包含return语句,则结束函数执行并返回值

如果函数体中不包含return语句,则返回None值

要返回多个返回值,使用列表、元组、自动、集合将多个值“存起来”即可

#测试返回值的基本用法
def my_avg(a,b):
   
return (a+b)/2 #return作用 1)返回值 2)结束函数的运行
c = my_avg(10,12)
print(c)

def my_add(a,b):
   
print("计算两个数的值:{0},{1},{2}".format(a,b,(a+b)))
   
return #没有写返回值,默认返回None。如果没有return,返回也是None
print(my_add(11,16))

def test03(x,y,z):
   
return [x*10,y*10,z*10] #返回多个值,使用列表
print(test03(1,2,3))

 

你可能感兴趣的:(Python)