python学习笔记07——函数

Python量化学习笔记07——量化投资——以Python为工具 Part01-C07 函数 1、定义函数 2、函数的参数 3、变量的作用域 阅读详情

python学习笔记07——函数

调用与创建函数

def 函数名():

​ 函数体

函数调用只需要直接写函数名()

# 创建和调用函数
def myfunc():
    for i in range(3):
        print("循环三次")
myfunc()

循环三次
循环三次
循环三次

函数的参数

# 创建和调用函数
def myfunc2(name):
    for i in range(3):
        print(f"中括号里为传入的参数名{name}")
myfunc2("python")

中括号里为传入的参数名python
中括号里为传入的参数名python
中括号里为传入的参数名python

def 函数名(name,times):

​ 函数体(里面一定会用到前面传进来的参数

函数名(实际参数,打印次数)

# 指定打印的次数
def myfunc3(name, times):
    for i in range(times):
        print(f"传递的参数{name}")
myfunc3("python",5)

传递的参数python
传递的参数python
传递的参数python
传递的参数python
传递的参数python
  • 形参:提前占个位
  • 实参:调用函数传递的值

函数的返回值

用return返回

# 函数的返回值
def div(x, y):
    z = x / y
    return z
print(div(4, 2))

2.0

如果函数体没有返回值return,那实际上也会返回一个none

函数的参数

位置参数

实参按照形参的位置进行传递,位置参数在关键字参数(赋值的时候把形参写上去)之前

# 函数的参数
def myfunc4(s, vt, o):
    return "".join((o, vt, s))
print(myfunc4("1", "2", "3"))

321

同时使用位置参数和关键字参数

默认参数

默认参数在后面

默认参数是指def myfunc(s, v=“他们”,t=“你们”)

收集参数

形参前面加星号,可以用.format收集信息

# 收集参数
def myfunc5(*args):
    print("有{}个参数".format(len(args)))
    print("第二个参数是:{}".format(args[1]))
myfunc5("aa", "bb")

有2个参数
第二个参数是:bb

函数可以同时返回多个值

python实际上利用元组打包

字符串format函数既可以元组形式收集也可以元组收集

解包参数

args1 = (1, 2, 3, 4)
def myfunc6(a , b, c, d):
    print(a, b, c, d)
myfunc6(*args1)

kwargs = {'a':1, 'b':2, 'c':3, 'd':4}
myfunc6(**kwargs)

1 2 3 4
1 2 3 4

作用域

变量可以被访问的位置

局部作用域

一个变量在函数内定义的,则其只能在函数内操作

全局作用域

在函数外部定义变量

global语句

# global语句
x = 880
def myfunc7():
    global x
    x = 520
    print(x)
myfunc7()
print(x)

520
520

函数定义了global变量,那么函数外的值也会随着函数内值的变化而变化

def funA():
    x = 520
    def funB():
        x = 880
        print("B")
    funB()
    print("A")
funA()

B
A
不能直接调用内部的funB函数,可以通过funA函数进行调用

nonlocal语句

nonlocal保证内部的不会影响外部的

LEGB

掌握python变量的解析机制

闭包

也称之为工厂函数,

闭包就是外部函数中定义一个内部函数,内部函数引用外部函数中的变量,外部函数的返回值是内部函数;

闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境) 在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures), 是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。 所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。

闭包的特征
特征:

1.嵌套函数

2.内层函数引用了外层函数的变量

3.内层函数作为返回值返回给外层函数

特征2:

自由变量: 既不是局部变量,也不是模块全局变量;在闭包的时候:内层引用外层函数的变量

保存我们要执行代码的环境

执行的代码块和为自由变量提供绑定的计算环境两者的结合

# 定义闭包,完成的功能为:传入一个数求和并输出
def outer_summary():
    sum_data = []
    def summary(num):
        sum_data.append(num)
        print(sum(sum_data))
    return summary
summary = outer_summary()
summary(10)
summary(15)
summary(20)

10
25
45

装饰器

一个函数调用另一个函数

# 装饰器时间函数
import time
def time_master(func):
    print("开始运行")
    start = time.time()
    func()
    stop = time.time()
    print("结束程序")
    print(f"耗费时间{(stop-start):.2f}秒")
def myfunc():
    time.sleep(2)
    print("hello")
time_master(myfunc)

开始运行
hello
结束程序
耗费时间2.01秒

@time_master是装饰器的语法

多个装饰器可以用在同一个函数上

如何给装饰器传递参数?

lambda表达式

匿名函数

一行流

语法如下:

lambda args1, args2,args3,……argsn : expression

冒号左边是传入的参数,右边是表达式

# lambda表达式
squareY = lambda y : y * y
print(squareY(3))

9

lambda是一个表达式,可以放在列表里面

# lambda表达式
squareY = lambda y : y * y
print(squareY(3))
yy = [lambda x : x * x, 2, 3]
print(yy[0](yy[1]))

4

生成器

让函数在退出后还保持原来的状态

yield表达式替代return语句

## 生成器
def counter():
    i = 0
    while i<=5:
        yield i
        i += 1
counter()
for i in counter():
    print(i)
    
0
1
2
3
4
5

yield暂停状态

递归

函数自己调用自身的过程

# 递归
def funC(i):
    if i > 0:
        print("aaa")
        i -= 1
        funC(i)
funC(3)

aaa
aaa
aaa

求一个数的阶乘

# 求一个数的阶乘迭代
def fact(n):
    result = n
    for i in range(1, n):
        result *= i
    return result
print(fact(4))

# 求一个数的阶乘递归
def fact2(n):
    if n == 1:
        return 1
    else:
        return n * fact2(n-1)
print(fact2(4))

24
24

递归——斐波那契数列

递归——汉诺塔

函数文档、类型注释

help(函数名)

知道函数的名字

times._name_

times._annotations_

doc # 查看函数文档

高阶函数

min、max等

functools

偏函数

partial

# 偏函数
square = functools.partial(pow, exp = 2)
print(square(2))

4

@wraps装饰器

金蝶云星空开发环境安装与配置全攻略 企业数字化转型过程中,ERP系统的开发环境搭建是关键基础环节。以金蝶云星空为例,其开发环境配置涉及硬件选型、软件组件安装、数据库连接等多方面技术要点。合理配置开发环境不仅能提升开发效率,还能避免常见的性能瓶颈问题。本文从实际工程实践出发,详解如何从零搭建金蝶云星空开发环境,包含SQL Server数据库配置、Visual Studio插件集成等核心技术环节,特别针对BOM表操作等内存敏感场景给出优化建议,帮助开发者快速构建稳定的开发环境。 阅读详情

相关推荐

COT Buck和普通Buck的区别

传统的电流模控制的调制原理,由时钟脉冲信号 clk 的上升沿触发开始一个新的开关周期,d 由低变高,主开关闭合,流过它的电流和电感电流相等,并以固定斜率逐渐增大,直至 iL *Ri 与斜坡补偿信号 se 的和等于控制信号 vc;此时,比较器的输出电平由低变高,导通时间产生器被触发,其输出 d 由低变高,并产生一个固定的导通时间 Ton;然后 PWM 比较器的输出由低变高,导通时间产生器被触发,主开关闭合,电感电流逐渐增大,直到导通时间产生器计满固定的时间 Ton,d 变为低电平,主开关断开,周期结束。

模拟芯片设计 1129

Python偏函数

原文链接 偏函数 Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。 在介绍函数参数的时候,我们讲到,通过设定参数的默认值,可以降低函数调用的难度。而偏函数也可以做到这一点。举例如下: int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数

Mr.Yan的专栏 866

机器学习第四个算法ANN(人工神经网络)

我是在14年9月刚读研的时候听到一个说法叫“类人脑算法”很火热,之后搞了很长一段时间相关的蓄水池算法等,但大都没有摸到门路而中途放弃了。现今看来,还是缺少一些知识背景,也不善于在网络上学习,随时间推移,也逐渐明白这是机器学习的一小部分,并且逐渐发展的名称叫做人工神经网络的算法,如果网络层较多,又会有个别名,叫做深度学习。其中个用到的最著名的算法是背向传输算法(backpropagation),而这个

legalhighhigh的博客 1万+

chatgpt赋能python:Python循环3次的方法

Python是一种优秀的编程语言,循环是编程中不可或缺的基本操作。本文介绍了在Python中如何循环3次的两种方法,分别是使用for循环和while循环。通过这两种方法,我们可以轻松实现循环3次的需求。当然,这只是循环的一个简单例子,Python中有更多的循环控制语句和循环方法,可以帮助我们更加高效地完成编程任务。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的。

www_xuhss_com的博客 3152

CarMaker快速入门

本合集是小明师兄推出的CarMaker汽车仿真,CarMaker无论是传统动力学、动力系统开发、底盘系统开发还是目前智能驾驶辅助系统及智能驾驶系统开发有着非常重要的作用,可以有效节省开发周期和开发成本,基于仿真快速实现算法开发和系统验证。...

小明师兄的博客 1万+

多IMU车载GNSS/INS数据集及介绍

文章目录前言非常棒的GINS数据集采集轨迹采集时间MEMS IMU详细信息IMU测量值方程及相关误差建模参考噪声参数安装参数文件格式描述 前言 “本文作者感谢武汉大学多源智能导航实验室和牛小骥教授提供了本文所需的GNSS/INS数据集。” 本博文介绍数据集链接为多IMU车载GNSS、INS数据集,欢迎大家下载,由于是开源数据集,因此下载不需要积分 非常棒的GINS数据集 这是一套非常好的用于GNSS/INS组合导航应用的车载数据集,本数据集采集于湖北省武汉市一处工业园区,为开阔天空场景,GNSS R

十八与她的博客 6442

python循环3次停止_Python 基础 — 循环

点击上方蓝字“Python圈子”,进行关注~python 有两种循环的方法while 循环。当条件为真的时候,永远循环下去,如果条件为假,跳出循环或不循环。语法:while 条件当你执行下面代码,程序会一直打印 hello world。那是因为 a < b 这个条件是成立的。= 如果你想停止这个死循环,有 3 种办法:第一种,把条件弄成不成立的,这样程序就只会循环一次= 第二种,在...

weixin_39950867的博客 4691

第二十届全国大学生智能车竞赛-地瓜机器人智慧医疗挑战赛技术解析与实战指南

本文深入解析了第二十届全国大学生智能车竞赛-地瓜机器人智慧医疗挑战赛的核心技术。内容涵盖从零搭建数字孪生环境、实现AI视觉任务(二维码识别、引导线追踪、目标检测)、在边缘设备部署轻量化大模型进行图生文描述,到遥操作与自主控制的平滑切换,并提供了基于ROS2的系统集成与赛场实战指南,助力参赛者高效备赛。

weixin_29252171的博客 2778

python基础知识

age=20 print("我的名字是%s,我的性别是%s"%("张三","男"))# %s为字符占位 print("我的年纪是%d岁"%age)# %d为数字占位 print("www","baidu","com",sep=".")# sep表示分割 print("hello",end="")# end=""表示不间隔,不换行 print("hello",end="\n")# end="\n"表示换行 print("hello",end="\t")# end="\t"表示间隔,相当于tab键 print.

qq_62243433的博客 1994

VMware16虚拟机:安装Windows10系统---超详细教程

VMware16虚拟机:安装Windows10系统---超详细教程

MQ0522的博客 3万+

YOLOv8-Pose 姿态识别 RK3588 实战:从模型训练到 RKNN 部署,精度与推理速度双提升

本教程从YOLOv8-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实时性+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随时交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

FJN110的博客 365

一步一步学Python3(小学生也适用) 第十六篇:循环语句While循环

一、Python循环语句 我们在上一篇学习了Python条件判断语句,可以有效解决我们在多条件下,判断哪个条件语句为True时,并执行相应的代码块。这一篇我们将开始学习Python循环语句。 在Python中,循环类型主要有两种: 第一种:While循环,主要作用是:在给定的判断条件为True时执循环体,否则退出循环。 第二种:for循环,重复执行语句。 当然由第一种和第二种各种嵌套的循环也非常常见。 二、循环控制语句: 在循环时我们有时需要根据判断条件更改语句的执行顺序,这样我们就需要使用循环控制语句.

老树Python 680

HFSS实战项目——基片集成波导(SIW)带通滤波器

设计了一款直接耦合的SIW带通滤波器, 采用直接耦合的形式, 工作频率覆盖19~21 GHz, 通带内插入损耗小于1.5 dB, 回波损耗小于-20 dB, 带外抑制特性良好.

2401_87464239的博客 4897

Python3 基础学习笔记 C07【函数】

Python3 自学笔记第七章【函数】 - 7.1 定义函数 一个简单的函数,命名为 example(),其中,关键字 def 来告诉Python我们要定义一个函数,这就是函数定义 def example(): print(&amp;quot;Hello world!&amp;quot;) example() 输出结果如下: Hello world! - 7.1.1 向函数传递信息 在函数定义 def exam...

BOB'S BLOG 2101

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Python学习笔记07_函数式编程

高阶函数Higher-order function 变量可以指向函数,即:函数本身也可以赋值给变量。 函数名也是变量。 把函数作为参数传入,这样的函数称为高阶函数。 map/reduce map()函数,接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。<<< def f(x): return x *

分享数据科学家的自我修养 485

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python学习笔记07:函数与lambda表达式深度解析

python的函数和lambda表达式

m1m2m3mmm的博客 499

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【2021-07-27学习笔记】python中的isinstance()函数

一.作用 isinstance()是python中的bulitin函数。用于判断对象是否属于某种类型或某类,返回一个布尔值 二.语法 isinstance(__obj,__class_or_tuple) 两个参数,第一个参数传需要判断判断的object,第二个参数传class或者type,也可以是tuple。三.实例 t1=isinstance("24",str) print(t1) #True t2=isinstance(24,int) print(t2) #True t3=isin

m0_45334833的博客 702

Python3学习笔记-07(函数-01)

一、函数的定义语法:def 函数名(参数列表): 函数体例:def hello(): print('Hello World!')二、函数的调用语法:函数名(参数列表)例:#定义函数 def hello(): print('Hello World!') #调用函数 hello()输出结果如下:Hello World!三、参数的传递在 python 中,类型属于对象,变量是没...

笑笑是一个码农 577

Python入门学习笔记————07(函数,list相关问题)

汉诺塔问题 规则: 1. 每次移动一个盘子 2. 任何时候大盘子在下面,小盘子在上面 方法: 1. n=1: 直接把A上的一个盒子移动到C上面,A-&gt;c 2. n=2: 1.把小盘子从A放到B上,A-&gt;B 2.把大盘子从A放到C上,A-&gt;C 3.把小盘子从B放到C上,B-&gt;c 3. n=3: 1. 把A...

weixin_42492218的博客 205

学习笔记(10):Python基础-函数-07

本周课程主要讲解Python语言基础、编程技巧,帮助学员实现编程思维从无到有。

weixin_50745076的博客 120

学习笔记(07):Python入门教程-函数的非固定参数

您观看课程学习后 可入群领取【超全Python资料包+17本学习电子书】 即使之前你从未写过1行代码,也能在学完本课程后,达到Python入门水平,能开发300-500行代码的小程序,掌握基本的编程思维、软件设计方法。无论你日后想做人工智能、数据分析,还是WEB开发、爬虫、大数据等,都应该先把这部分基础掌握。 ...

weixin_44402465的博客 183

python学习笔记B-07:序列结构之列表--列表的常用函数和方法

以xx_函数名(列表名)的形式出现的是函数;以xx_列表名.xx_方法名的形式出现的是方法。列表名.index(“xx”),获取列表中xx的索引位置。列表名.count(“xx”),计算列表中xx的数量。sum():计算列表中各元素之和。max():获取列表元素最大值。min():获取列表元素最小值。len():计算列表元素数量。

datouhaiyu的博客 313

学习笔记(07):Python 面试100讲(基于Python3.x)-请详细描述print函数的用法

本课程搜集了各大互联网公司的Python面试题以及类似的题目。课程体系包括Python语言本身的知识、Python SDK、Web、Python爬虫以及算法等内容。所以的源代码都使用Python3.x编写。Python相关知识包括基本语法、正则表达式、字符串、数据库、网络、Web等。算法包括了一些出镜率高的内容、如与链表、树、数组相关的算法。...

I'm George 的博客 619

python核心编程学习笔记-2016-07-18-02-enumerate()函数

2.13节 在for循环中,常常将range()和len()联用于字符串索引,前者循环索引,后者循环元素。如 foo = 'abc' for i in range(len(foo)): print foo[i], '(%d))' % i 输出 a (0) b (1) c (2) 用enumerate()函数可同时循环索引和元素,如 for i, ch in enumerate(f

mengzm的博客 292

Python入门学习笔记:Python函数

使用def 语句定义一个函数a语法# 函数体# 进行一些操作return result # 可选的返回值说明用于声明一个函数,告诉 Python 这是一个函数的定义。函数名,一个有效的标识符,规则和变量名一致。形参,可以是0 ~ n 个,参数之间用逗号分隔。定义函数执行的具体操作。指定函数的返回值,没有则返回None。return之后的代码不会执行。示例# 定义一个 lambda 函数,接收两个参数 a 和 b,返回它们的和​print(add(3, 5)) # 输出: 8。

PQI_JiXian的博客 1775

Python中str()函数的使用(学习笔记)

Python中str()函数的使用 1、str() 函数将对象转化为适于人阅读的形式。 2、 将整形转化为字符串形式 >>> a=123 >>> str(a) '123' 3、 >>> list=["abcd","123456"] >>> str(list) "['abcd', '123456']" ...

不吃辣的IT男 2万+
上一篇: python学习笔记06——字典&集合
下一篇: python学习笔记08——永久存储
好好敲代码呀
博客等级 码龄7年 1粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值