首页 > 其他分享 >函数

函数

时间:2023-03-07 18:24:39浏览次数:24  
标签:f2 return 函数 func print def

函数的定义与调用:

1. 函数必须先定义,后调用
2. 函数在定义阶段,如果有参数,调用阶段也需要给对应的参数
3. 函数在定义阶段只检测语法是否正确,不执行具体的代码功能
4. 函数在调用阶段会执行具体的函数体代码
5. 如何调用函数?# 函数名()

函数的底层原理:

1. 申请一块内存空间,存储函数体代码
2. 把函数体代码绑定给函数名
3. 通过调用函数(函数名())来执行函数体代码

 函数的分类:

内置函数:
在python解释器提前存在,可以直接调用

自定义函数:
就是我们自己写的函数
分为三大类:
无参:def func():
            print('')
        
有参:def func(x,y):
                    print(x,y)
                func(1,2)

空函数:def func():
            pass            

函数的返回值:

# 返回值:函数执行完毕之后,返回的结果
res = my_func1()  # 把函数的执行结果赋值给res变量,结果就是None
print(res)  # None
# 1. 当函数没有返回值的时候,没有return的时候,返回的是None
# 2. 当函数中只要return关键字的时候,返回的结果仍然是None
# 3. 当return后有数据的时候,写什么就返回什么
# 4. 当return后面跟多个数据的时候,会组织成元组形式返回
# 5. 如果你想返回多个值得时候,最后使用容器类型包一下
# 6. 在函数中,只要遇到return关键字,代码立刻终止执行,一个函数最多只有有一个return关键字
# 7. return 只能出现在函数中。if else中绝对不能出现

函数在调用时可以当参数调用

res = add(add(1,2),10)
print(res)

 函数练习题:

# 写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作

# 写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

通过elif判断区分每一个种类,然后再修改res字典中的值

 

代码的优化:

查看代码
 def login():
    print('登录')
def transfer():
    print('转账功能')
def banlance():
    print('查询余额')
def withdraw():
     print(‘提现’)
func_dic={
        '1':['登录':login],       #函数不带为函数的内存地址                                                           
       '2':[‘转账’:transfer],                                                                                                 
       '3':[‘查询余额’:check_banlance],                                                                                       
       '4':[‘提现’:withdraw] 
     }
while True:
    for k in func_dic:
        print(k,func_dic[k][0])   #输出的为指令查找单

    choice = input(‘请输入指令’).strip()
    if choice in func_dic:
        func_dic[choice][1]( )      #v()为调取函数
    else:
        print('输入的指令不存在')

函数的嵌套:

1.函数的嵌套调用:在调用一个函数的过程中又吊钟其他的函数
def max2(x,y):
    if x>y:
        return x
    else:
        return y

def max4(a,b,c,d):   #可以把比较的值拆分出来然后再比较
    #第一步:比较a,b得到res1
    res1 = max2(a,b)
    #第二步:比较res1,c得到res2
    res2 = max2(res1,c)
    #第三步:比较res2,d得到res3
    res3 = max2(res2,d)
    return res3

闭包函数:

核心点:名字的查找关系是以函数定义阶段为准“”
“闭”函数指的该函数是内嵌函数
“包”函数指的该函数包含对外层函数作用域名字的引用(不是对全局作用域)
def f1():
    x=333
    def f2():
        print(x)   x=333
    f2()
# 无论外面套多少层,已定义阶段为准,就和套麻袋一样,永远是最里面一层
def f1():
    x=3333333
    def f2():
        print(x)
    return f2  #不加括号得到的是f2的内存地址
f = f1()    #f1()= f2       #将f2的内存地址传入的f
f() #你得到一个可以随时访问的值,但这个值外面无论如何操作都无法更改

 

标签:f2,return,函数,func,print,def
From: https://www.cnblogs.com/whxx/p/17189066.html

相关文章

  • mysql 去除重复字符串的函数
    CREATEDEFINER=`root`@`localhost`FUNCTION`deleteManyChar`(in_strvarchar(2000))RETURNSvarchar(2000)CHARSETutf8COLLATEutf8_unicode_ciBEGINDECLAREv_r......
  • cuda错误检查函数
    cuda大部分库函数的返回值都是cudaError_t,所以可以用一个函数来接收其他库函数的返回值,从而判断该库函数是否正常执行这个函数可以用宏来实现#defineCHECK(call)......
  • 阿里云函数计算 FC 助力高德 RTA 广告投放系统架构升级
    作者:赵庆杰(阿里云函数计算)、林雪清(阿里云函数计算)、杜玲玲(高德)、王壁成(高德)导言2023年春节,经历了三年的疫情后,我们终于在春天迎来了曙光。国人的出行热情空前高涨:......
  • 阿里云函数计算 FC 助力高德 RTA 广告投放系统架构升级
    作者:赵庆杰(阿里云函数计算)、林雪清(阿里云函数计算)、杜玲玲(高德)、王壁成(高德)导言2023年春节,经历了三年的疫情后,我们终于在春天迎来了曙光。国人的出行热情空前高涨:回家看......
  • 生成函数相关
    P6295有标号DAG计数考虑不一定弱联通的DAG的EGF,ln一下得到答案。\(F[i]\):\(i\)个点的有标号DAG数量\(F[i]=\sum_{j=1}^{i}(-1)^{j-1}\dbinom......
  • 从青铜到王者,揭秘 Serverless 自动化函数最佳配置
    作者:丛霄背景介绍全托管的Serverless计算平台能给用户带来更少的运维代价、更强的稳定性和更快的弹性能力。Serverless的目标之一是免运维,但仍旧存在一些障碍,在Serv......
  • C++笔记-函数指针
    函数指针语法://fcnPtrisapointertoafunctionthattakesnoargumentsandreturnsanintegerint(*fcnPtr)();特点:函数指针的类型(参数和返回值)都必须和......
  • Java函数(方法)的默认值问题
    Java函数(方法)的默认值问题 Java不能为函数(方法)设置默认参数。原因是“默认参数”和“方法重载”同时支持的话有二义性的问题,但使用“方法重载”可以间接地实现”默认......
  • vba 内置函数
    一.测试函数IsNumeric(x)‘是否为数字,返回Boolean结果,TrueorFalseIsDate(x)‘是否是日期,返回Boolean结果,TrueorFalseIsEmpty(x)‘是否为Empty,返回Boolean结果......
  • 指针与函数
    指针变量作为函数的参数如果想再函数内部修改外部变量的值,需要将外部变量的地址传递给函数  函数内部想要操作(读或写)外部数组元素,将数组名传递给函数  ......