python--初识函数

什么叫函数?

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。

定义一个函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

返回值

1.没有返回值

  • 写return
  • 不写return
  • 有时写return None,不常用

2.有一个返回值:直接用return接收

3.有多个返回值:返回多值需要多值接收,返回值是元组,不能修改返回值所以要使用元组

 

def func_1()
    return 1,2
r1,r2 = func_1()
print(r1,r2)

$1,2
def func_1()
    return 1,2,3
r = func_1()
print(4)

$(1,2,3)

在终端输入,python内部有机制,下面分别对列表,元组,字典进行解包操作
>>>1,2
1,2
>>> a,b,c = ['a','b','c']
>>> a
'a'
>>> b
'b'
>>> c
'c'
>>> a,b,c = (1,2,3)
>>> a
1
>>> b
2
>>> c
3
>>> d1 = {'k1':'kk','v1':'vv'}
>>> a,c = d1
>>> a
'k1'
>>> c
'v1'

 

函数的参数

实际的要交给函数的内容,简称实参

在定义函数的时候它只是一个形式,表示这里有一个参数,简称形参

以下是调用函数时可使用的正式参数类型:

  • 位置参数
  • *args :按位置传参的值组成一个元组
  • 默认参数
  • **kwargs :按关键字传参,组成一个字典

参数顺序: 位置参数,*arge,默认参数,**kwargs

动态参数的另一种传参方式 :

def func_1(*args) :
   print(args)

li = [1,2,3,4]
func_1(*li) 
#实参的星老师说是顺序打散,我的理解是解包
也就是说args = 1,2,3,4
如果直接传列表,args类型为以列表形式存储的元组
如果传*li,args类型为以列表各个值单独存储的元组

def func_2(**kwargs) :
   print(kwargs)
dic_1 = {'k1':'kk','v1':'vv'}
func_2(**dic_1)

参数解包  

# 参数解包:将整个list当做参数传给函数
list = [1, 2, 4]
def add_fn(a, b, c):
    return a + b + c
sum = add_fn(*list)
print("参数解包:", sum)
# ------------------------------
def func(*args)
   print(args)

func(*list)
# ------------------------------
所谓的解包(Unpacking)实际上可以看做是去掉()的元组或者是去掉{}的字典。
user = {'name': "Trey", 'website': "http://treyhunner.com"}
defaults = {'name': "Anonymous User", 'page_name': "Profile Page"}

print({**defaults, **user})

${'page_name': 'Profile Page', 'name': 'Trey', 'website': 'http://treyhunner.com'}
# --------------------------------
#值的解压
msg='hello'
l=[1,2,3]

# a,b,c,d,e=msg
# print(a,b,c,d,e)

# a,_,_,_,e=msg
*_,a = msg
# a,*_,e=msg
print(a)
# print(e)

  

  

主要内容:本文详细介绍了一种QRBiLSTM(分位数回归双向长短期记忆网络)的时间序列区间预测方法。首先介绍了项目背景以及模型的优势,比如能够有效利用双向的信息,并对未来的趋势上限和下限做出估计。接着从数据生成出发讲述了具体的代码操作过程:数据预处理,搭建模型,进行训练,并最终可视化预测结果与计算分位数回归的边界线。提供的示例代码可以完全运行并且包含了数据生成环节,便于新手快速上手,深入学习。此外还指出了模型未来发展的方向,例如加入额外的输入特性和改善超参数配置等途径提高模型的表现。文中强调了时间序列的标准化和平稳检验,在样本划分阶段需要按时间序列顺序进行划分,并在训练阶段采取合适的手段预防过度拟合发生。 适合人群:对于希望学习和应用双向长短时记忆网络解决时序数据预测的初学者和具有一定基础的研究人员。尤其适用于有金融数据分析需求、需要做多一步或多步预测任务的从业者。 使用场景及目标:应用于金融市场波动预报、天气状况变化预测或是物流管理等多个领域内的决策支持。主要目的在于不仅能够提供精确的数值预计还能描绘出相应的区间概率图以增强结论置信程度。 补充说明:本教程通过一个由正弦信号加白噪构造而成的简单实例来指导大家理解和执行QRBiLSTM流程的所有关键步骤,这既方便于初学者跟踪学习,又有利于专业人士作为现有系统的补充参考工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值