Python学习记录 函数基础

深入浅出ASAP2标准:手把手教你编写和解析A2L文件(含Python示例代码) 本文深入解析ASAP2标准下的A2L文件,涵盖基础概念、文件结构及Python实现代码,帮助开发者掌握汽车ECU标定和测量中的关键数据管理技术。通过详细示例,展示如何编写和解析A2L文件,提升电控数据管理效率。 阅读详情

2022.08.10 DAY24

1. 函数基础

1. eval()函数
  • 将字符串str作为有效的表达式来求值并返回计算结果。
  • 语法:
    • eval(source[ , globals[ , locals]]) -> value
  • 参数:
    • source:一个python表达式或函数compile返回的代码对象。
    • globals:可选。必须是dictionary。
    • locas:可选。任意映像对象。

示例:

def test_eval():
    str = "print('string')"
    eval(str)

    a = 10
    b = 20
    c = eval("a+b")
    print("c = {0}".format(c))

if __name__ == '__main__':
    test_eval()

结果:

string
c = 30
2. 递归函数
  • 自己调用自己
  • 终止条件
    • 表示递归什么时候结束。一般用于返回值,不再调用自己。
  • 递归步骤
    • 把第n步的值和n-1步相关联。

示例:

def test_01(n):
    """ 递归函数 """
    print("*test01,n = ", n)
    if(n == 0):
        print("over...")
    else:
        test_01(n - 1);
    print("*test01,n = ", n)


if __name__ == '__main__':
    test_01(5)

结果:

*test01,n =  5
*test01,n =  4
*test01,n =  3
*test01,n =  2
*test01,n =  1
*test01,n =  0
over...
*test01,n =  0
*test01,n =  1
*test01,n =  2
*test01,n =  3
*test01,n =  4
*test01,n =  5

递归算阶乘:

def factorial(number):
    """ 递归算阶乘 """
    if number == 1:
        return 1;
    else:
        return number * factorial(number - 1);


if __name__ == '__main__':
    print("5! = {0}".format(factorial(5)))

结果:

5! = 120
3. 嵌套函数(内部函数)
  • 嵌套函数:在函数内部定义的函数
  • 使用说明:
    • 封装 - 数据隐藏
      • 外部无法访问’嵌套函数’
    • DRY
      • 可以让函数内部避免重复代码
    • 闭包

示例:

def test_02():
    """ 嵌套函数 """
    print('outer running')

    def inner01():
        """ 只能内部可用 """
        print('inner01 running')

    inner01()


if __name__ == '__main__':
    test_02()

结果:

outer running
inner01 running
4. nonlocal 关键字
  • nonlocal 用来声明外层的局部变量
  • global 用来声明全局变量

示例:

def outer():
    b = 10

    def inner():
        nonlocal b  # 声明外部函数的局部变量
        print("inner b:",b)
        b = 20

    inner()
    print("outer b:", b)


if __name__ == '__main__':
    outer()

结果:

inner b: 10
outer b: 20
5. LEGB规则
  • Python在查找名称时,是按照LEGB规则查找的:
  • Local --> Enclosed --> Global --> Built in
  • Local 函数或者类的方法内部
  • Enclosed 嵌套函数
  • Global 模块中的全局变量
  • Built in Python为自己保留的特殊名称

测试LEGB:

str = "global"
def outer():
    str = "outer"

    def inner():
        str = "inner"
        print(str)

    inner()

outer()
【突变检验合集】含Pettitt突变检验等 突变检验方法合集 阅读详情

相关推荐

中国知网文献引用导入EndNote9.X,Web of science导入endnote以及谷歌学术导入endnote图文详解,全网最细版本适用EndNote9.x,Endnote20版本

在科研中用到EndNote管理文献,遇到插入文献时,中国知网如何将参考文献导进Endnote9.x或者web of sicence,谷歌学术如何将文章,文献导入进文献管理软件EndNote的详细图文2022版本解释,全网最细的笔记教程,值得大家参考收藏学习

sakura的博客 5176

Python学习记录6:基础知识-函数

一、关于函数 1、关于函数的基本操作: 关键字实参: 调用函数时,明确指出各个实参对应的形参,这样实参在括号内的位置就不重要了(否则与实参位置有关——也就是“位置实参”) def describe_pet(pet_name, animal_type): """显示宠物的信息""" print("\nI have a " + animal_type + ".") prin...

qq_35860865的博客 411

Dify+firecrawl:一个超好用的网页转Markdown API,打造你的第一个能检索爬虫RAG知识库的聊天机器人

Firecrawl是一个超简单的API服务——你扔给它一个URL,它就能把整个网站(包括子页面!)的内容自动抓下来,并且转换成干净、易读的Markdown格式。不用配置网站的站点地图,不用写爬虫规则,API调一下,数据直接到手。接下来我们一起本地部署吧!

2501_91673550的博客 2991

Python学习记录(基础篇:函数)

函数

qq_43814415的博客 251

晶圆测试厂wafer map管理建议

按照Recipe设定bin定义 应有版本管理概念,一般使用最新版本做为活动版本即可 Bin明细中应包含 BinID、BinCode、BinName、BinType、BinColor、Description BinID可使用数字类型 BinCode可参照实际机台的Bin,用于匹配 有些公司也将BinID、BinCode理解为SBin和HBin 即 Software Bin & Hardware Bin 一般也将BinID对应到客户的Bin BinType

凯神做开发 1万+

学习心得——COMSOL Multiphysics with MATLAB联合仿真及寻优计算

学习心得——COMSOL Multiphysics with MATLAB联合仿真及寻优计算

weixin_41678956的博客 8658

零基础学习Python之零基础入门:函数的基本用法详解_我的学习Python记录9

一、什么是函数? **函数**是组织好的、可重复使用的代码块(比喻:做奶茶的配方卡) √ **作用**:提高代码复用性、降低复杂度、方便维护 √ **组成要素**:函数名、参数、返回值、函数体

🚀免费专栏:✅穿越之灵脉重构师:重启天元代码系列✅Python筑基系列✅创新语言开发系列✅代码故事茶馆✅AI筑梦工作站 601

动态库加载失败终极指南:从libbz2.so.1错误看Linux依赖管理本质

本文以经典的libbz2.so.1加载错误为例,深入剖析Linux动态链接库管理的核心机制。文章不仅提供从ldd检查、符号链接创建到LD_LIBRARY_PATH设置等实战解决方案,更系统性地讲解了动态链接器的寻库路径、版本管理及依赖问题预防策略,帮助开发者从根本上理解和掌握Linux依赖管理本质。

weixin_29212429的博客 447

【无标题】Python 学习记录:从九九乘法表到自定义函数(零基础学习第二天)

昨天先接触了一些基础内容,今天开始学 if-else 判断、while 循环和 for 循环,做了九九乘法表和素数判断,还练习了列表格式化输出,最后在画五个五角星的时候第一次用到了 def 函数。def 函数是我今天画五个五角星的时候学会的。第二天的学习让我认识到,Python 的语法本身并不难,难的是把判断、循环、列表和函数这些“零件”组合起来解决实际问题。这段代码让我第一次真正感受到函数的价值:把重复的绘制过程打包成一个 draw_star(),主程序只需要调用它,不用关心内部是怎么画的。

AIDairyOfDJY的博客 217

【SECS】初识SECS协议

项目标题的第一位和第二位告诉下面有多少字节表示项目的长度。而项目的长度是指项目标题后面的字节数,这里第一个字节就是项目标题。1个字节可以表示的最大长度是0-255,所以只要项目标题后面的字节数小于等于254,都是0x01。

weixin_48618536的博客 1643

MuJoCo Playground 机器人强化学习入门教程(一)

MuJoCo Playground 包含 DM 控制套件、机器人运动和机器人操作环境。env每个环境还与一个环境配置相关联,如果需要,可以覆盖该配置。env_cfg请注意,环境配置包含 sim_dt 和 ctrl_dt。ctrl_dt 决定每个 env.step 的时间间隔。因此,每个 env.step 的模拟步长为 ctrl_dt / sim_dt 倍。其他值得注意的参数还有 vision_config,我们将在基于视觉的笔记本中详细讨论!现在,我们将专注于特权观察。

2506_90492529的博客 4615

python学习记录六(函数基础补充)

在学习完函数编程后,发现又有一个很小但是很重要的问题,那就是python变量的作用域,本文整理了python中变量的作用(全局变量和局部变量) 作用域 既然要谈到局部变量和全局变量,那么就不可避免的需要说一下python中的作用域划分python中主要有4个作用域分别为 Local function:局部作用域(函数内部) enclosing function locals:外部嵌套函数...

周末饺子配啤酒的博客 207

GFPS技术原理(一)-简介

GFPS(谷歌快速配对服务)利用BLE技术简化设备配对流程,相比传统方式大幅提升用户体验。首次配对时,设备广播包含型号ID和安全密钥的BLE信号,手机检测后弹出配对通知,用户点击即可完成安全连接并将设备与Google账户绑定。该技术支持跨设备同步、电量显示、找回设备等功能,后续配对更加便捷。GFPS通过BLE实现快速发现、一键配对和安全连接,结合Google后端服务提供元数据支持,已成为出海设备的认证标准。其核心优势在于简化操作步骤并增强功能性,特别适合非技术用户群体。

十多年蓝牙协议软件开发,擅长蓝牙协议分析 2062

python学习阶段总结记录:4.python基础-函数

数字列表:range(): min():数字列表最小值 max():数字列表最大值 sum():数字列表求和 len():获取列表中数字得数量 str() 得到字符串 list() 得到列表 int() 得到整数 float() 得到浮点数 complex() 得到复数 ...

m0_62458657的博客 207

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

python学习记录基础(六)---函数

学习地址http://www.sikiedu.com/classroom/14/introduction 关键字 def +函数名字 带参数的函数 带参数的返回值 介绍一个空值None,下面的返回值,可以接收也可以不接收的 位置参数,关键字参数 关键字参数必须在位置参数的后面的,关键字参数前面的就是位置参数 定义含数的时候,我们给个默认值,不传递就是默认值,但是带默认值的参数必须放在不带默认值的后面 局部变量和全局变量 局部变量跟全局变量重名的情况 ...

qq_37335907的博客 197

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Python基础知识学习记录 2021——1030(eval()函数,递归函数)

文章目录

Lime_Tr的博客 267

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

学习python记录:基础---11.0函数入门

def print_info(): # 函数体 """ 用来打印个人信息的# :return: 返回到函数的调用处# """ # info = '我叫岳岳我今年18岁我的爱好是女'# return info # 不是说一定要有。

ws008168的博客 106

学习python记录:基础---11-1函数进阶

python 高阶函数

ws008168的博客 101

负基础学python编程_负基础小白学习廖雪峰python教程记录(四)函数式编程

高阶函数前言变量可以指向函数>>> f = abs>>> f(-10)10函数名也是变量>>> abs = 10>>> abs(-10)Traceback (most recent call last):File"", line1, in Type Error:'int' object is not callable传入函数一...

weixin_34463228的博客 121

python常用函数与机器学习基础知识记录

python常用函数与机器学习基础知识记录

想买很多漂亮衣服但是买不起的博客 448

python基础学习(22)坐标点显示及numpy函数记录

一、坐标点显示 import matplot.pyplot as plt import matplotlib.pyplot as plt if __name__ = '__main__': y = np.zeros(5) x1 = np.linspace(0, 10, 5) x2 = np.linspace(0, 10, 5) plt.plot(x1, y, 'o') plt.plot(x2, y + 0.5, 'o')

JYliangliang的博客 3626

Python基础学习记录(5/12)——函数与Lambda表达式

函数(BIF,自定义函数)与lambda函数(匿名函数)

qq_40160983的博客 187

第020讲:函数:内嵌函数和闭包 | 学习记录(小甲鱼零基础入门学习Python)

(标答出处: 鱼C论坛) 《零基础入门学习Python》 测试题: 0.如果希望在函数中改变全局变量的值,应该使用什么关键字? global 1.在嵌套的函数中,如果希望在内部函数修改外部函数的局部变量,应该使用什么关键字? nonlocal 2.python的函数可以嵌套,但是要注意一下访问的作用域问题哦,请问一下代码存在什么问题? def outside(): ...

一只没有脚的猪的博客 1213

第018讲:函数:灵活即强大 | 学习记录(小甲鱼零基础入门学习Python)

(标答出处: 鱼C论坛) 《零基础入门学习Python》 测试题: 0.请问一下那个是形参那个是实参 def MyFun(x): return x**3 y=3 print(MyFun(y)) x是形参,y是实参,函数体内的是形参,实际传输进去的是实参 1.函数文档和直接用#为函数写注释有什么不同 函数文档是为了让别人更好的理解你的函数 2.使用关键字参数,可以避免什么问题的...

一只没有脚的猪的博客 846

Python基础知识学习记录 2021——1103(嵌套函数,nonlocal 关键字,LEGB 规则)

文章目录嵌套函数(内部函数)nonlocal 关键字LEGB 规则 嵌套函数(内部函数) 嵌套函数: 在函数内部定义的函数! 【操作】嵌套函数定义 def f1(): print('f1 running...') def f2(): print('f2 running...') f2() f1() 执行结果: f1 running... f2 running... 上面程序中,f2()就是定义在 f1 函数内部的函数。f2()的定义和调用都在 f1()函

Lime_Tr的博客 235

第017讲:函数 - Python的乐高积木 | 学习记录(小甲鱼零基础入门学习Python)

(标答出处: 鱼C论坛) 《零基础入门学习Python》 测试题: 你有听说过DRY吗? DRY(Don’t repeat yourself),进行编程时相同的代码不要重复写,最好只写一次,然后可以在其他地方直接引用。 都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢? DRY原则,必变重复,最好直接引用 函数可以有多个参数吗? 可以的,理论上你想要有多少个就可以有多少...

一只没有脚的猪的博客 607
上一篇: Python学习记录 函数基础
下一篇: Python学习记录 面向对象编程
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值