Python-函数的初始

一、函数的作用

  有一个需求,求出一个列表的长度

#求s1字符串的长度
s1="1234566"
count= 0
for i in s1:
    count += 1
print(count)

#如果又要求s2="5543322"的长度呢?你只能将求s1的代码重复一遍

  如果使用函数呢?

def  my_len():
    st = "123321123"
    count= 0
    for i in st:
        count += 1
    print(count) 
#调用函数
my_len()
#就可以得到字符串的长度

1、函数结构

Python的代码执行过程,从上之下读取,到def的时候,只将函数名字存入内存,不去读取函数内部的内容,在调用函数的时候,才会返回函数名出,调用函数内部代码

  注:函数在实际工作中,不要在函数体中写print,因为函数的作用是逻辑过程

def   关键字   函数名(设定于变量相同):#冒号的作用是隔开函数名和函数体

  函数体

def  my_len():
    st = "123321123"
    count= 0
    for i in st:
        count += 1

    return count

函数的执行 :函数名+括号

my_len()  #相当于函数的执行者(调用者)

 2、return(返回值)

功能:1,遇到return,结束函数

def  func1():
    print("1")
    print("2")
    return 
    print("3")
    print("4")

func1()

#这里结果只显示1,2,不会显示3和4,因为在函数体执行遇到return的时候,就会停止运行函数体

   2、给函数的调用者返回值

def  func1():
    return 1
def  func2():
    return
def  func3():
    return 1,2,3

print(func1())
print(func2())
a,b,c=func3()
print(a,b,c)

'''
返回值的情况有3种
    func1 的return返回的是数值1  
    func2 的return返回的是数值None 
    func3 的return返回的是一个(1,2,3),类型为元组 
             可以将元组的值分别赋给a,b,c    
'''      

稍后整理会,敬请期待

3、函数的传参

#从实参角度   单个的参数默认用argv表示

  1、位置参数

  2、关键字参数

  3、混合参数  关键字参数必须在位置参数后边

  三元表达式

#从形参角度 

  1、位置参数

  2、默认参数

  3、动态参数 (*args,**kwargs) 万能传参

    args:接收所有位置参数,以元组的形式

    kwargs:接收所有的关键字参数,并放入字典中

参数的位置

函数的执行:* 打散肝功能,将提供的可迭代对象的没个元素,才开放入到*args里面中

 *args的* 是函数的定义中加*,是将你所传入的位置参数聚合,添加到一个元组中,

**kwargs的* 是函数的定义中加**,是将你所传入的关键字参数聚合,添加到一个字典中

函数的进阶

内置的名称空间,可以引用,不可以修改,如果想要引用需要用到global

global的作用

    1、声明没有的全局变量

    2、在函数内更改已有的全局变量

nonlocal的作用  :只对局部变量进行引用和改变,并且之后的引用也是改变只有的

    1、不能操作全局变量

    2、在修改了变量后,之后的引用都会改变

函数名:

    1、可以相互赋值

    2、可以当做函数的参数

    3、可以当做容器类函数的参数

      

原文地址:https://www.cnblogs.com/fan-yi/p/8848007.html