IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python--函数详解(一) -> 正文阅读

[Python知识库]python--函数详解(一)

目录

一、认识函数

什么是模块化编程?

什么是函数?

函数的作用?

函数的定义与使用?

函数的特征与注意要点:

二、关于函数的参数?

带有参数的函数,定义例子?

三、函数中的参数类型

四、函数的返回值?

五、函数的变量作用域

六、nonlocal 关键字?


???????

一、认识函数

什么是模块化编程?

模块化编程指把程序进行封装(函数封装,面向对象,文件等等)

什么是函数?

函数是一个具有特定功能的代码块

函数的作用?

函数就是把代码进行封装,以提高代码的重用性,提高开发效率,降低后期的维护成本

函数的定义与使用?

#定义函数【基本结构】
def 函数名([参数列表]):
    当前函数的具体功能的代码
    当前函数的具体功能的代码
    。。。。。。。。。。。。
#函数的封装完并不会进行执行,只是对函数进行定义了
#如果想要使用定义的函数,那么只需要用语法来进行函数的调用
#具体功能的代码编写一定要缩进

#函数的调用
函数名()    

#例子
def love():   #定义函数love
    print('I')   #具体功能
    print('love')  #具体功能
    print('you')  #具体功能
love()   #函数的调用

函数的特征与注意要点:

?1、函数定义后,不调用不执行

2、Python 不能再函数定义前进行调用

3、函数的调用不受次数的影响

4、函数的命名要遵守命名规范:? ?

?????????字母数字下划线,不能用数字开头

? ? ? ? ? 严格区分大小写,不能使用关键字

? ? ? ? ? ?命名最好有意义,且不要使用中文

? ? ? ? ?函数的命名不能重复

二、关于函数的参数?

函数在定义时,可以在参数的位置进行定义(形参)

如果函数有形参,那么在调用的时候必须传递参数(实参)

实参将传递给行参的过程,本质上就是变量的赋值操作

带有参数的函数,定义例子?

#在定义函数时,在小括号内可以定义形参(形式上的参数)
def love(who):
    print(f'我爱你{who}')

love('小白')

运行结果:
我爱你小白

如果没有传入‘小白’
运行结果:
TypeError: love() missing 1 required positional argument: 'who'

也就是有形参的函数时,要在调用的时候传入相对应的实际参数值

三、函数中的参数类型

普通参数、默认参数、收集参数、命名关键字参数、关键字参数收集

1、普通参数

普通参数,也就是位置参数,也叫顺序参数,也是必须传递的参数

#普通参数例子:

def love(x,y):
    print(x,y)
love(1,2)

2、默认参数

在定义形参时候,指定一个默认的值

#指定默认值的参数例子:

def love(x,y=100):
    print(x,y)
love(1)

#运行结果
#1 100

#如果在调用的时候,往参数里面增加参数,那么会覆盖掉默认值,例如:

def love(x,y=100):
    print(x,y)
love(1,99)

#运行结果
# 1 99

注意要点:指定默认参数必须放到普通参数的后

3、收集参数

定义:收集参数为专门用来收集多余的参数,或者理解为不确定需要传递多少个实参,直接用一个形参来接收

在定义函数的时候,如果需要收集参数,那么这个形参前面需要加一个‘*’号 ?例如*args 也可以换成是*name 等

# 收集参数的例子
def func(a,b,c,d,*args):
    print(a,b,c,*args)
func(1,2,3,4,4,4,3,5,6)

4、命名关键字参数

关键字参数定义在收集参数后面

关键字参数必须通过形参的名字来进行传递

#name 必须指定参数值
def func(a,b,c,*args,name):
    print(a,b,c,args,name)

func(1,2,3,4,4,4,3,5,name=6)
#运行结果:
#1 2 3 (4, 4, 4, 3, 5) 6

5、关键字参数收集

定义: ?关键字参数通过**kwargs进行定义,传参的是字典。

def func(a,b,c,*args,**kwargs):
    print(a,b,c,args,kwargs)

func(1,2,3,4,4,4,3,5,name='aaaa',age = '18',sex = 'ccc')

#运行结果:
#def func(a,b,c,*args,**kwargs):
    print(a,b,c,args,kwargs)

func(1,2,3,4,4,4,3,5,name='aaaa',age = '18',sex = 'ccc')

四、函数的返回值?

return 调用带有返回值的函数时,函数中的返回值会返回到函数调用处

函数中使用return进行返回时候,return 后的数据将不在运行,意味着函数到这里结束。


#没有返回值的函数,或者可以理解为,没有指定返回内容

#m例子:
def love(a,b):
    print(f'{a} 我喜欢你{b}')
love('林佳赟','啊')

#返回结果:(没有指定返回值)
#林佳赟 我喜欢你啊


#指定返回值的例子

def love(a,b):
    res = (f'{a} 我喜欢你{b}')
    #可以在函数体内使用return 返回任意内容
    return res
print(love('林佳赟','啊'))
#返回结果
#林佳赟 我喜欢你啊

五、函数的变量作用域

作用域:当前起作用的,可以用的范围区域

变量的作用域分为两种,全局变量及局部变量

?全局变量:

函数内部使用global 定义的变量,就是全局变量

在函数外部,使用golbal定义的变量,也是全局变量

OLD_URL = 'http://oldboyedu.com'


def bb():
    global OLD_URL

    OLD_URL = OLD_URL + '#m'


if __name__ == '__main__':
    bb()

    print(OLD_URL)

#运行结果
#http://oldboyedu.com

?局部变量:

函数内定义的变量,局部变量,在函数外部不能用

在函数外定义的不可变数据类型,函数可以访问,但不能更改

在函数外定义的可变数据类型,函数可以访问并更改(字典、列表)


#函数内定义的变量,局部变量,在函数外部不能用

def flist():
    vlist = 'baby'
print(vlist)


#返回结果
#  print(vlist)  NameError: name 'vlist' is not defined



#在函数外定义的不可变数据类型,函数可以访问,但不能更改
num = 10
def func():
    print(num)
func()
#返回结果
#  10


#在函数外定义的可变数据类型,函数可以访问并更改(字典、列表)
vlist = [1,2,3,4,5]
def fuc_list():
    vlist[2] = 'baby'
    print(vlist)

fuc_list()

#运行结果
#  [1, 2, 'baby', 4, 5]

六、nonlocal 关键字?

在内函数中如果想要使用外层函数的变量,那么需要使用nonlocal关键字进行引用

#变量和函数都有作用域
#在内函数中如何使用上一层函数中的局部变量?

def outer():
    num = 10
    def inner():
        print(num)
    inner()
outer()

#运行结果
#  10

def outer():
    num = 10
    def inner():
        num += 1
        print(num)
    inner()
outer()
#运行结果
#UnboundLocalError: local variable 'num' referenced before assignment



def outer():
    num = 10
    def inner():
        nonlocal num
        num += 1
        print(num)
    inner()
outer()
#运行结果
# 11

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:34:38  更:2021-11-30 15:36:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:53:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码