python函数的使用

2023-10-27

"""
创建函数  函数名([形参1,形参2,形参n])
    代码块
    函数名必须要符合标识符的规范
    (可以包含字母,数字,下划线,但是不能以数字开头)
函数中保存的代码不会立刻执行,需要调用函数代码才会执行

函数中的参数
在定义函数时,可以在函数名后面的()中定义数量不等的形参
多个形参用逗号隔开
形参(形式参数)定义形参就相当于在函数内部声明了变量,但是并不赋值
实参:将会赋值给对应的形参,偶几个形参就传几个形参

关键字参数
关键字参数,可以不按照形参定义的顺序去传递,而是直接根据参数名去传递参数
"""
# def fn(a,b):
#     print(a+b)
# fn(10,20)
#
# def sc(a,b,c):
#     print(a*b*c)
# sc(10,2,30)

"""
不定长参数
定义一个函数,可以求任意数字的和
    #定义一个变量,来保存结果
"""
"""
返回值,返回值就是函数执行以后返回的结果
可以通过return来指定函数的返回值
可以直接使用函数的返回值,也可以通过变量来接收函数的返回值
return 后面跟什么值,函数就会返回什么值
return后面可以跟任意的对象,返回值甚至可以是一个函数

如果仅仅写一个return 或者不写return ,则相当于return None
在函数中,return后的代码都不会执行,return一旦执行函数自动结束

break:用来退出当次循环
continue:用来跳过当次循环
reture 用来结束函数
"""
# def sum(*nums):
#     result = 0
#     for n in nums:
#         result+=n
#     print(result)
# sum(100,22,44,5,6,7,55,41)
# def fn():
#     return 10
# #fn和fn()的区别
# print(fn)    #fn是函数对象,打印fn实际是在打印函数对象<function fn at 0x000001DA5956D8B8>
# print(fn())  #fn()是在调用函数,打印fn()实际上在打印fn()函数返回值10

"""
help()是python中的内置函数
通过help()函数可以查询python中的函数的用法
语法:help(函数对象)
"""

"""
递归式函数:在函数中自己调用自己
无穷递归:如果这个函数被调用,程序就会内存溢出,类似于死循环
递归函数的两个要点
1:基线条件:
        问题可以被分解为最小问题,当满足基线条件时,递归就不执行了
2:递归条件:
        将问题继续分解的条件
"""
#递归案例
# def hui_wen(s):
#     if len(s) <2:
#         return True
#     elif s[0]!=s[-1]:
#         return False
#
#     return hui_wen(s[1:-1])
# print(hui_wen('ABCDEFGFEDCBA'))

"""
函数式编程

在python中,函数是一等对象
一等对象一般具有以下几个特点
1、对象是在运行时创建的
2、能赋值给变量或作为数据结构中的元素
3、能作为参数传递
4、能作为返回值返回

高阶函数
高阶函数至少要符合以下两个特点中的一个
1、接收一个或者多个函数作为参数
2、将函数作为返回值返回
"""
# l=[1,2,3,4,5,6,7,8,9]
# def fn(lst):
#     new_list=[]
#     for n in lst:
#         if n%2==0:
#             new_list.append(n)
#     return new_list
# print(fn(l))

"""
map()函数可以对可迭代对象中的所有元素做指定的操作,然后将其添加到一个新的对象中返回
"""
# l=[1,2,3,4,5,6,7,8,9]
# r=map(lambda i:i**2 ,l)
# print(list(r))

"""
sort()
该方法用来对列表中的元素进行排序
sort()方法默认是直接比较列表中的元素大小
在sort()可以接受一个关键字参数,key
key需要一个函数作为一个参数,当设置了函数作为参数
每次调用都会以列表中的一个参数作为参数来调用函数,并且使用函数的返回值来比较元素的大小
"""
# l=['bbbbb','aaaaaaa','h','lllllllll','iiiiiii']
# l.sort()
# print(l)

"""
sorted()
这个函数和sort()的用法基本一致,但是sorted可以对任意的序列进行排序
并且使用sort()排序不会影响原来的对象,而是返回一个新对象
"""
# l=[1,5,4,6,7,0,3,4]
# print("排序前",l)
# print(sorted(l, key=int))
# print("排序后",l)

"""
闭包
形成闭包的条件
1、函数嵌套
2、将内部的函数作为返回值返回
3、内部函数必须要使用到外部函数的变量
"""
# def make_avg():
#     #创建一个列表,用来保存数值
#     nums=[]
#     #创建一个函数,用来计算平均值
#     def avg(n):
#         #将n添加到列表中
#         nums.append(n)
#         #求平均值
#         return sum(nums)/len(nums)
#     return avg
# avg=make_avg()
#
# print(avg(10))
# print(avg(20))
"""
装饰器的使用
"""

def add(a,b):
    """
    求任意两个数的和
    """
    r=a+b
    return r

add(10,20)
def mul(a,b):
    """
    求任意两个数的积
    """
    r=a*b
    return r
mul(10,45)
def begin_end(old):
    """
    用来对其他函数进行扩展,使其他函数可在执行打印开始之前执行,执行后打印执行语句
    参数:old
    """
    #创建一个新函数
    def new_function(*args,**kwargs):
        print("开始执行。。。。。")
        result=old(*args,**kwargs)
        print("执行结束。。。。。")
        #返回函数的执行结果
        return result
    #返回新函数
    return new_function
f=begin_end(add)
f2=begin_end(mul)
@begin_end
def say_hello():
    print("大家好")
say_hello()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python函数的使用 的相关文章

随机推荐

  • SQL 删除表数据行与重置自动增长字段

    delete 语句 delete from tablename 表名 where ID 列名 x 表示删除数据表中ID列的值为x的数据行 在ID列设置了自动增长主键列的情况下 这种删除方式将会保留该数据行所占用的自动增长值 此后添加数据时此
  • Linux内嵌链表(sys/queue.h)详解

    Linux 内嵌链表 sys queue h 详解 queue 简介 SLIST STAILQ LIST TAILQ CIRCLEQ 例程 queue 简介 C语言不像C 语言可以使用STL 在编程中需要用到链表时 通常需要程序员重新设计链
  • java中数据库重连

    当数据库重新启动 而导致程序无法连接 需要重启tomcat才能重连的解决办法 方法一 将连接池由DBCP改为C3P0 c3p0连接池本身具有数据库重连机制
  • 传统的目标检测算法

    1 基于滑动窗口的目标检测算法 滑动窗口 gt gt 特征提取 gt gt 分类器 图 滑动窗口目标检测流程 对输入的图像设置不同大小的滑窗 确定步长遍历整个图像 每次滑动完成后对当前选择框进行特征提取 SIFT HOG等 并使用事先训练好
  • python+opencv学习之路(一 )学习打开图片

    python opencv学习之路 一 学习打开图片 载入opencv和numpy模块 import cv2 import numpy as np 读取图片 img cv2 imread 1 jpg cv2 IMREAD COLOR 1 j
  • Android学习路线:如何成长为高级工程师

    博主参加了2014 CSDN博客之星评选 帮我投一票吧 点击给我投票 前言 之所以写这篇文章 是因为最近博客和我的开发群 215680213 中 不少小伙伴都让我讲讲android学习路线 所以我决定写一篇博客 来说明这个问题 既然有不少小
  • C++知识点37——拷贝构造函数

    无论是C 自定义的类还是STL内部的容器类 会显式的定义类的对象在拷贝 赋值和销毁时执行的操作 一个类通过五个成员函数来控制这些操作 拷贝构造函数 拷贝赋值运算符 移动构造函数 移动赋值运算符和析构函数 其中 拷贝构造函数和移动构造函数定义
  • 【SpingBoot】SpringBoot实现卷积神经模型代码

    下面是一个基本的卷积神经网络 CNN 模型代码示例 导入依赖
  • Ubuntu 经验 :设置EFI分区

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net boyStray article details 88915155 ubuntu18默
  • VMware报错,无法连接到虚拟机,并且vmware-vmx.exe应用程序无法正常运行,报错0xc000007b

    试了很多修复 启动 禁用之类的方法发现不适用 最终发现是安装的其他软件导致C 库发生改变 解决 控制面板 程序 卸载程序 找到下图中的两个 右键 卸载 修复 之后VMware就能正常使用了
  • StringBuffer/StringBuilder与使用加号“+”直接拼接字符串的区别

    StringBuffer StringBuilder拼接字符串与使用加号 拼接字符串的区别 一 使用 拼接字符串 1 字符串常量内存分析 2 String类型特性 3 使用 拼接字符串时内存分析 二 StringBuffer StringB
  • 分布式系统一致性研究,paxos算法

    感谢eric的敦促 感谢shuai的感召 我尝试记录一点混乱的思考 什么是分布式系统 毋庸置疑 Internet和DNS是两个典型的成功的分布式系统 那么 分布式系统是不是就是计算机网络 1990年 Sun Microsystems 公司提
  • Spring 的创建和使用

    目录 一 创建 Spring项目 二 存储 Bean 对象到Spring中 1 添加Spring配置文件 2 创建一个 Bean 对象 3 将 Bean 存储到 Spring 容器中 三 从 Spring 中获取并使用 Bean 对象 1
  • flutter Could not get unknown property ‘ndkVersion’

    使用的 flutter 版本为 3 7 2 编译运行 如下 Could not get unknown property ndkVersion for object of type com android build gradle inte
  • QSqlite3创建数据库表格时出现的create error QSqlError(““, ““, ““)

    QSqlite3创建数据库表格时出现的create error QSqlError 这个问题卡了很长时间 连接数据库成功了 但是创建表格时一直失败 通过 qCritical lt lt file lt
  • stm32学习笔记 AFIO重映射功能 以TIM2的CH1可以从PA0挪动到PA15的引脚上距离为例

    首先在STM32F103C8T6引脚定义的图里找到是否有可以复用的引脚 因为我们的TIM2 CH1 ETR的数据是在引脚PA0上显示 如果要换 根据此表只能换到PA15 如图PA15 默认 是调试端口所以如果要想让其作为普通IO口或者复用定
  • Blazor + Ant Design + .NET 5快速开发框架(1) - 项目创建

    目录 序言 模式选择 项目创建 序言 net 5发布至今已经有一段时间了 但是在国内一直不温不火 虽然心里可惜 但是没有什么办法 作为 net开发的一员 只能在前进的道路上留下一笔 这次使用Blazor是微软新出的前端框架 采用c 代替Ja
  • MathType丢失Mplugin.dll文件解决方法

    MathType有着强大的功能 能够进行多种数学符号编辑 所以用来编辑公式确实很方便 但是在对MathType进行安装时也会遇到很多问题 比如Mplugin dll文件缺失 这样就导致了MathType无法正常安装或者使用 具体解决方法如下
  • Linux各类下载方式

    FTP 基于TCP协议的文件存储与下载协议 两个端口 20与21 20端口用于数据的传输 21端口用于身份验证 SCP 是Linux系统下基于ssh协议的远程文件拷贝命令 scp filename username hostname pat
  • python函数的使用

    创建函数 函数名 形参1 形参2 形参n 代码块 函数名必须要符合标识符的规范 可以包含字母 数字 下划线 但是不能以数字开头 函数中保存的代码不会立刻执行 需要调用函数代码才会执行 函数中的参数 在定义函数时 可以在函数名后面的 中定义数