一、函数

1.函数定义

def 关键字 -- 定义

func 函数名 -- 和变量定义规则一样

()必须要写格式

: 声明语句结束

def my_len():

​ 函数体

def func(a:int,b:str):

​ print(a,b)

func(1,2)

2.函数的好处

​ 1.减少代码重复性(冗余)

​ 2.代码可读性高

​ 3.将功能进行封装(造工具)

3.调用函数

​ 函数名+()

​ 多次调用就是执行多次

​ 可以循环使用

def func():

print("test")

func()

4.函数的返回值

return 的内容返回给了函数的调用

return 返回一个内容(就是内容本身) 可以返回任意类型

return下方的代码不执行,终止这个函数

return 终止函数,切记不能终止循环

return 返回多个内容的时候是元组形式

return 没有写返回值的时候返回的是None,不写return返回的也是None

5.位置传参

def yue(a,b,c=1): # 形参 c = 1是默认参数

​ print("test")

yue(True,(1,),c=3) # 实参 位置参数 > 默认参数

函数的参数

形参:函数定义的时候叫做形参

​ 位置参数

​ 默认参数

​ 混合参数

实参:函数调用的时候叫做实参

​ 位置参数

​ 关键字参数

​ 混合参数

传参:将实参传递给形参的过程叫做传参

6.函数的动态函数

*args,**kwargs(能够接收函数的位置参数和动态的关键字参数)

定义阶段(*args,**kwargs) 聚合

​ *args -- tuple

​ **kwargs -- dict

使用阶段*args,*kwargs打散

​ *args - 源数据类型

​ *kwargs - 打散的是字典的键

优先级:位置 > 动态位置 > 默认 > 动态关键字

lst = [12,23,323,32,32,4]

def func(*args):

​ print(*args)

func(lst[0],lst[1]) # 笨的方法

func(*lst)

7.函数的注释

"""

每次写函数的时候需要写注释

函数名.__doc__ 查看函数的注释

函数名.__name__ 查看函数的名字

"""

8.名称空间

内置空间:python解释器自带的

全局空间:当前文件(.py文件)

局部空间:函数体开辟的空间

加载顺序:内置>全局>局部

取值顺序:局部>全局>内置

作用域:

全局作用域:内置+全局

局部作用域: 局部

9.函数嵌套

函数中套函数

函数嵌套调用

函数嵌套参数的传递

函数嵌套返回值的传递

10.global nonlocal

global:修改全局空间的变量对应的值

nonlocal:在外层的函数中,修改局部空间的变量值,完全不涉及全局变量,只修改离他最近的一层,最近的一层没有变量继续向上找,直到找到最外层函数

三元运算符

a = 10

b = 20

c = a if a > b else b

变量名 = 条件成立的结果 条件 条件不成立的结果

二、函数名的应用

1.函数名指向的是函数的内存地址,加上()就执行这个函数

func()

2.函数名就是一个变量

age1 = 12
age2 = age1
age3 = age2
print(age3)
def fuc():
print(666)
f1 = fuc
f2 = f1
f2()
f1()

3.函数名可以作为容器类类型的元素

def func1():

 	print('in func1')

def func2():

 	print("in func2")

def func3():

     print("in func3")

lst = [func1,func2,func3]

for i in lst:

     i()

4.函数名可以作为函数的实参。

def func1():print("in func1")
def func2(argv):
argv()
print('in func2')
func2(func1)

5.函数名可以作为函数的返回值

def func1():
print("in func1")
def func2(argv):
print("in func2")
return argv
ret = func2(func1)
ret()

python 函数和函数名的应用的更多相关文章

  1. python之路day10-命名空间和作用域、函数嵌套,作用域链、闭包

    楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print ...

  2. python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域

    复习 1.字符串的比较: -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 2. 函数的参数 : 1)实参与形参:       -- 形参:在函数定义时()中出现的参数       ...

  3. python中通过字符串名来调用函数

    强调:eval()函数功能虽然强大,但是也很危险,这个方法需要慎重使用. 利用python中的内置函数 eval() ,函数说明: def eval(*args, **kwargs): # real ...

  4. python基础之函数名的使用,闭包以及迭代器

    内容梗概: 1. 函数名的使⽤用以及第⼀一类对象 2. 闭包 3. 迭代器 1.函数名一. 函数名的运⽤.函数名是一个变量, 但它是⼀个特殊的变量, 与括号配合可以执行函数的变量.1.1 函数名的内存 ...

  5. python基础(13):函数名的使用、第一类对象、闭包、迭代器

    1. 函数名的运用 函数名是⼀个变量,但它是⼀个特殊的变量,与括号配合可以执⾏函数的变量. 1.1 函数名的内存地址 def func(): print("呵呵") print(f ...

  6. Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器

    Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器 一丶关键字:global,nonlocal global 声明全局变量: ​ 1. 可以在局部作用域声明一 ...

  7. Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归

    Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 目录 Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 内容纲要 1.函数名的第一类对象及使用 2.f ...

  8. Python使用property函数定义的属性名与其他实例变量重名会怎么样?

    首先如果定义的属性名与该属性对应的操作方法操作的实例对象同名就会触发无穷的递归调用,相关部分请参考<Python案例详解:使用property函数定义与实例变量同名的属性会怎样?> 但如果 ...

  9. Python函数二(函数名,闭包,迭代器)之杵臼之交

    函数名的使用: 函数名可以作为值,赋值给变量. 函数名可以作为参数传参给函数. 函数名可以作为返回值. 函数名可以作为元素存储在容器里. 闭包:在嵌套函数内,使用外层局部变量(非全局变量)就是一个闭包 ...

随机推荐

  1. c++字符数组

    题目描述 题目描述 输入一个英文句子(长度不会超过100),和他的长度,统计每个字母出现的个数. 输入 第一行包括一个整数,表示句子的长度,长度不会超过100.数字后可能会有多余的无效字符 请gets ...

  2. 关于AndroidStudio在编译时无法解析和拉取依赖的问题和无法访问Jcenter服务器的问题

    问题描述:在编译时出现如下错误:Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the....一般是被墙了.偶 ...

  3. ASP.NET Core系列(一): .NET Core简介及安装开发环境

    大家都知道Java是跨平台的,.NET因为不具有跨平台的特性,被越来越多的开发者诟病,之前有各种间接的跨平台的方案,比如mono.但是由于各种兼容问题,最终 .NET Core出现了,它可以让程序在W ...

  4. [Usaco2007 Open]Fliptile 翻格子游戏题解

    问题 B: [Usaco2007 Open]Fliptile 翻格子游戏 时间限制: 5 Sec  内存限制: 128 MB 题目描述 Farmer John knows that an intell ...

  5. 学习 Python 心得

    脚本式编程: 通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕.当脚本执行完成后,解释器不再有效. 让我们写一个简单的 Python 脚本程序.所有 Python 文件将以 .py 为扩展名.将以 ...

  6. 个人永久性免费-Excel催化剂功能第103波-批量打开多文件或多链接

    有时简单的东西,却带来许多的便利,为了让大家可以记住并容易找寻到此功能,也将这么简单的功能归为一波,反正已经100+波了,也无需为了凑功能文章而故意罗列一些小功能带忽悠性地让人觉得很强大. 使用场景 ...

  7. 个人永久性免费-Excel催化剂功能第92波-地理地址与经纬度互转功能

    GPS设备和手机LBS的兴起,在地理信息存储过程中,在程序.应用级别是需要用经纬度去定位,而在数据分析的级别,特别是省市区镇街的分析,用到的是人可识别的文本类型存储,从设备中采集下来的数据和人工维护的 ...

  8. Spring 自动生成getter和setter方法 tostring方法

    添加maven依赖 <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency& ...

  9. [剑指offer] 6. 旋转数组的最小数字

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...

  10. Flutter学习笔记(10)--容器组件、图片组件

    如需转载,请注明出处:Flutter学习笔记(10)--容器组件.图片组件 上一篇Flutter学习笔记(9)--组件Widget我们说到了在Flutter中一个非常重要的理念"一切皆为组件 ...