python 函数和函数名的应用
一、函数
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 函数和函数名的应用的更多相关文章
- python之路day10-命名空间和作用域、函数嵌套,作用域链、闭包
楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print ...
- python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域
复习 1.字符串的比较: -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 2. 函数的参数 : 1)实参与形参: -- 形参:在函数定义时()中出现的参数 ...
- python中通过字符串名来调用函数
强调:eval()函数功能虽然强大,但是也很危险,这个方法需要慎重使用. 利用python中的内置函数 eval() ,函数说明: def eval(*args, **kwargs): # real ...
- python基础之函数名的使用,闭包以及迭代器
内容梗概: 1. 函数名的使⽤用以及第⼀一类对象 2. 闭包 3. 迭代器 1.函数名一. 函数名的运⽤.函数名是一个变量, 但它是⼀个特殊的变量, 与括号配合可以执行函数的变量.1.1 函数名的内存 ...
- python基础(13):函数名的使用、第一类对象、闭包、迭代器
1. 函数名的运用 函数名是⼀个变量,但它是⼀个特殊的变量,与括号配合可以执⾏函数的变量. 1.1 函数名的内存地址 def func(): print("呵呵") print(f ...
- Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器
Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器 一丶关键字:global,nonlocal global 声明全局变量: 1. 可以在局部作用域声明一 ...
- Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归
Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 目录 Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 内容纲要 1.函数名的第一类对象及使用 2.f ...
- Python使用property函数定义的属性名与其他实例变量重名会怎么样?
首先如果定义的属性名与该属性对应的操作方法操作的实例对象同名就会触发无穷的递归调用,相关部分请参考<Python案例详解:使用property函数定义与实例变量同名的属性会怎样?> 但如果 ...
- Python函数二(函数名,闭包,迭代器)之杵臼之交
函数名的使用: 函数名可以作为值,赋值给变量. 函数名可以作为参数传参给函数. 函数名可以作为返回值. 函数名可以作为元素存储在容器里. 闭包:在嵌套函数内,使用外层局部变量(非全局变量)就是一个闭包 ...
随机推荐
- nu.xom:Document
Document: 机翻 Document(Document doc):创建此文档的副本. Document(Element root):使用指定的根元素创建新的Document对象. DocType ...
- web前端笔试篇(一)
[ 题外话 ]:本博主作为一名准毕业生,即将面临毕业就业问题,即将到大四了,不准备考研的我,那么该去干嘛呢?毫无疑问,那就是实习,那么即使是实习,那么在要想进入自己心仪的企业之前,笔试这一关终究是无法 ...
- javascript之正则表达式(一)
正则表达式:定义一套规则,检查字符串的用的.换句话说,就是记录文本规则的代码.适用于进行文字匹配工具,例如:(1)测试字符串的某个模式(2)替换文本(3)根据模式匹配从字符串中提取一个子字符串.语法: ...
- 【CYH-02】NOIp考砸后虐题赛:坐标:题解
代码: 这道题也并不难,用排序+简单动规即可.因为@Kevin_Wa 大佬放的是c++,所以我来一发Pascal. var min,max,i,a1,b1,c1,d1,n:longint; a,b,c ...
- c++小游戏——职业战争
#include<iostream> #include<cstdlib> #include<ctime> #include<cstring> #incl ...
- 个人永久性免费-Excel催化剂功能第38波-比Vlookup更好用的查找引用函数
谈起Excel的函数,有一个函数生来自带明星光环,在表哥表姐群体中无人不知,介绍它的教程更是铺天盖地,此乃VLOOKUP函数也.今天Excel催化剂在这里冒着被火喷的风险,大胆地宣布一个比VLOOKU ...
- Docker部署web环境之Lanmp
1. 案例一 整套项目多容器分离通过docker-compose部署lanmp环境 中方文档参考网址: docker/kubernets网址 http://www.dockerinfo.net/doc ...
- cesium 学习(四) Hello World
一.前言 之前的文章都是基础,搭建环境.部署Cesium.学习资料等等.现在简单入手,一个Hello World页面开发. 二.Hello World 感觉Hello World没有什么特别需要讲的, ...
- C#程序从Excel表格中读取数据并进行处理
今天做了一个Excel表格数据处理的事情,因为数据量表较大(接近7000条)所以处理起来有点麻烦,于是写了一个程序, 先将程序记下以便将来查找. using System; using System. ...
- Java NIO学习系列六:Java中的IO模型
前文中我们总结了linux系统中的5中IO模型,并且着重介绍了其中的4种IO模型: 阻塞I/O(blocking IO) 非阻塞I/O(nonblocking IO) I/O多路复用(IO multi ...