• Python基础05-函数及函数式编程


    函数及函数式编程

    数学中的函数指一种映射的变换关系,如f(x)=2x+1,转换为Python函数为:

    def f(x):
        return x*2 + 1
    

    Python中的函数可以理解为一种预先设定的处理过程。
    一般过程都会包含输入、处理、和输出三个部分。输入及函数参数,可以有多个,输出即返回值,有可以有多个。
    过程分为定义和调用。定义是对参数、处理过程和返回值的描述,调用是使用实际的参数运行函数并得到实际的返回值。

    函数定义和调用

    def add(x, y): # 定义函数
        return x+y
    
    print(add(1,3)) # 调用函数
    

    案例: 用户注册/登录函数

    users = {"张三": "123456"}
    
    def reg(username, password):
        if users.get(username): # 如果用户中存在username这个key
            print("用户已存在")
        else:
            users[username] = password # 向users字典中添加元素
            print("添加成功")
    
    def login(username, password)
        if not users.get(username):
            print("用户不存在")
        elif users['username'] == password:
            print("登录成功")
        else:
            print("密码错误")
    

    参数和返回值

    1. 函数没有return默认返回None
    2. 参数支持各种对象,包含数字,支付串,列表,元组,也可以是函数和类
    3. 参数默认值: 有默认值的参数必须放在最后面, 如```def add(x, y=1, z=2):
    4. 不定参数: *args和**kwargs, 如def func(*args, **kwargs):可以接受任意长度和格式的参数
    5. 参数及返回值类型注释(Python3)
    def(x:int, y:int) -> int: # x,y为int型,函数返回为int型,只是注释,参数格式非法不会报错
        return x+y
    

    函数作为参数

    如: 装饰器

    def a():
        print("I'm a")
    def deco(func):
        print("call from deco")
        func()
    
    deco(a) # 输出"call from deco"并调用a(),输出"I'm a"
    

    函数嵌套

    如闭包

    def a():
        a_var = 1
        def b:() # 嵌套函数
            a_var += 1
    

    函数递归

    自己调用自己,直到满足需求
    案例: 求N!

    def factorial(n):
        return 1 if n == 0 or n == 1 else n * factorial(n-1)
    
  • 相关阅读:
    菜鸟系列k8s——快速部署k8s集群(3)
    菜鸟系列docker——docker容器(7)
    菜鸟系列Fabric源码学习 — 区块同步
    菜鸟系列Fabric源码学习 — peer节点启动
    菜鸟系列Fabric源码学习 — orderer服务启动
    递归科赫雪花
    汉诺塔递归函数hanoi
    字符串格式化与.format()
    turtle风轮绘制
    接口签名2
  • 原文地址:https://www.cnblogs.com/superhin/p/12746376.html
Copyright © 2020-2023  润新知