函数

函数

引子:

求1-15的和;

求23-26的和;

求55-68的和。

def sum(a,b):
 s=0
 for i in range(a,b+1):
    s+=i
 return s

print(sum(23,26))

程序而言:函数就是对程序逻辑进行结构化或者过程化的一种编程方法。

bulit-in function 内置函数 BIF

函数的定义

声明函数的一般形式:

def function_name(arg1,arg2,...argn):
    ```statements```
    func_statements
    return Value
def add(x,y):   
    '''求和'''
    return x+y

print(add.__doc__) #求和       返回函数说明

函数参数种类

形参和实参

  • 形参
    • 只有在调用时才分配内存单元,调用结束后释放所分配的内存单元。因此,形参只在函数内部有效,函数调用结束返回主调用函数后则不能在使用该形参变量。
  • 实参
    • 实参是一个确定的值,能够传递给形参。
      • 作为位置参数或者关键字参数传递。

默认值参数

关键字参数

不定参数

在Python中不定参数主要是指args 和**kwargs两个魔法变量。

他们俩主要用于函数定义,我们可以将不定数量的参数传递给一个函数。

  • *args用来接受任意非键值对
def uncertain_para(para,para2,*args):
    print('普通位置参数',para,para2)
    print('不定参数',args)
    print(type(args))
uncertain_para(1,2,3,4,'a','b')
uncertain_para([1,2,3],'ab','cd','ef')
#普通位置参数 1 2
#不定参数 (3, 4, 'a', 'b')
#<class 'tuple'>
#普通位置参数 [1, 2, 3] ab
#不定参数 ('cd', 'ef')
#<class 'tuple'>
  • **kwargs用来接受不定长度的
def un_para_key(**kwargs):
    print(kwargs)
    print(type(kwargs))

un_para_key(a=1,b=2,c=3)
#{'a': 1, 'b': 2, 'c': 3}
#<class 'dict'>

def un_para_key(x,y,*z,**kwargs):
    print(x,y,z)
    print(kwargs)
    print(type(kwargs))

un_para_key(1,2,3,4,5,'a','b',a=1,b=2,c=3)
#1 2 (3, 4, 5, 'a', 'b')
#{'a': 1, 'b': 2, 'c': 3}
#<class 'dict'>

练习:

def func1(p):
    digit_number = 0
    space_number = 0
    alpha_number = 0
    else_number = 0
    for i in p:
        if i.isdigit():
            digit_number += 1
        elif i.isspace():
            space_number += 1
        elif i.isalpha():
            alpha_number += 1
        else:
            else_number += 1
    return (digit_number,space_number,alpha_number,else_number)

print(func1("asd8uas d7asy as8yzx##@"))

函数属性

内嵌函数

作用域

bar()整个函数都处于外部foo()函数的作用域里(foo()是我们可以从外部访问的一个对象区域)。除了在foo()内部,其他地方无法对bar()进行调用。

作用域的类型

Python中使用一个变量时并不需要预先声明它。但是在真正使用的时候,他必须绑定到某个内存对象(被定义,赋值)。这种变量名的绑定将在当前作用域引入新的变量,同时,屏蔽外层作用域中的相同变量

a=6688
def foo():
    # a=666
    print(a)  #报错
    a=888
    print(a)
foo()
内容概要:本文提出了一种基于融合鱼鹰算法和柯西变异的改进麻雀优化算法(OCSSA),用于优化变分模态分解(VMD)的参数,进而结合卷积神经网络(CNN)与双向长短期记忆网络(BiLSTM)构建OCSSA-VMD-CNN-BILSTM模型,实现对轴承故障的高【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)精度诊断。研究采用西储大学公开的轴承故障数据集进行实验验证,通过优化VMD的模态数和惩罚因子,有效提升了信号分解的准确性与稳定性,随后利用CNN提取故障特征,BiLSTM捕捉时间序列的深层依赖关系,最终实现故障类型的智能识别。该方法在提升故障诊断精度与鲁棒性方面表现出优越性能。; 适合人群:具备一定信号处理、机器学习基础,从事机械故障诊断、智能运维、工业大数据分析等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决传统VMD参数依赖人工经验选取的问题,实现参数自适应优化;②提升复杂工况下滚动轴承早期故障的识别准确率;③为智能制造与预测性维护提供可靠的技术支持。; 阅读建议:建议读者结合Matlab代码实现过程,深入理解OCSSA优化机制、VMD信号分解流程以及CNN-BiLSTM网络架构的设计逻辑,重点关注参数优化与故障分类的联动关系,并可通过更换数据集进一步验证模型泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值