python入门与提高实践,Python基础06:功能增强与实践,基础知识,学习,函数,加强,及,练习...
1、了解递归
1.1递归的作用
① 递归作为一种编程思想, 在我们日常开发中,若需要遍历一个文件夹下面所有的文件,
为了化简代码
,更加高效,通常会使用递归来实现;
② 帮我们完成一写高级算法,例如:快速排序等。
1.2 递归的特点
函数内部自己调用自己,且必须要有出口。
1.3 应用练习 体会递归
# 应用练习:求解3以内数字累加和:3 + 2 + 1
# 6 = 3 + 2以内数字累加和
# 2以内数字累加和 = 2 + 1以内数字累加和
# 1以内数字累加和 = 1
def sum_numbers(num):
# 1.如果是1,直接返回1 -- 出口
if num == 1:
return 1
# 2.如果不是1,重复执行累加:当前数字 + 当前数字-1累加和
result = num + sum_numbers(num-1)
# 3.返回累加结果
return result
sum_result = sum_numbers(3)
print(sum_result)
# 体会递归特点:函数内部自己调用自己;必须要有出口。
练习后发现若未设置出口,执行后会报错:超出最大递归深度,因此在以后的递归书写中要注意书写递归的出口。
2、lambda
2.1 作用
简化代码量
,节省计算机的内存开销。如果一个函数有一个返回值,并且只有一句代码,可以使用 lambda简化。
2.2 lambda语法
lambda 参数列表 : 表达式
需要注意的是:
① lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用。
② lambda函数能接收任何数量的参数但只能返回一个表达式的值。
应用练习:
# 练习:返回数100
# 1、函数
def fn1():
return 100
print(fn1)
print(fn1())
# 2、lambda表达式 匿名函数
# lambda 参数列表 : 表达式
fn2 = lambda: 100
print(fn2) #返回的是lambda内存地址
# 100返回值,调用函数
print(fn2())
通过练习后对比发现,lambda表达式可以简化代码量;直接打印lambda表达式,输出的是此lambda的内存地址。
2.3 lambda 参数
lambda的参数形式与之前所学的函数参数
函数的参数介绍及使用
基本一致,这里作回顾总结。
# lambda 参数
# 1、无参数
fn1 = lambda: 100
print(fn1())
# 2、一个参数
fn2 = lambda a: a
print(fn2('Python'))
# 3、默认参数/缺省参数
fn3 = lambda a, b, c = 10: a + b + c
print(1, 2)
print(1, 2, 3)
# 4、可变参数*args
fn4 = lambda *args: args
print(fn4(10, 20))
print(fn4(10, 20, 30, 40))
# 注意:这里的可变参数传入到lambda之后,返回值为元组。
# 5、可变参数**kwargs
fn5 = lambda **kwargs: kwargs
print(fn5(name='lisa'))
print(fn5(name='Lisa', age=18))
python入门与提高实践,Python基础06:功能增强与实践,基础知识,学习,函数,加强,及,练习...相关推荐
- 01 -Python入门- Lesson1 为何要学习 Python 编程
01 Python入门 Lesson1 为何要学习 Python 编程 文章目录 01 Python入门 Lesson1 为何要学习 Python 编程 1.欢迎学习这门课程! 2.课程概述 Less ...
- python入门(1)python的前景
python入门(1)python的前景 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于 ...
- python入门(7)Python程序的风格
python入门(7)Python程序的风格 Python采用缩进方式,写出来的代码就像下面的样子: # print absolute value of an integer: a = 100 if ...
- 《Python入门》Linux 下 Python Web开发环境搭建笔记
之前写过 Windows 7下Python Web开发环境搭建笔记,今天写一下在Linux系统下搭建Python Web的开发测试环境. 我使用的系统是:ubuntu 14.04 server,Cen ...
- python入门与提高实践 老男孩_跟老男孩学Linux运维:MySQL入门与提高实践
第10章 MySQL数据库日志知识与企业应用实践 10.1 MySQL常用日志文件知识 10.2 错误日志的介绍与配置 10.3 普通查询日志的介绍与配置 10.4 二进制日志的介绍与配置 10.5 ...
- 编程语言python入门要电脑什么配置能带动-对于几乎是零基础的人,直接学 Python 编程合适吗?...
在众多高大上的自学指导中,尝试做一股清流,把要讲清楚的都讲清楚,除了一堆资料之外,你能在学之前就有一个非常明显的结果倾向. 本文以<小白带你学Python>为内容方向,试图在繁杂的信息里, ...
- 《Python入门到精通》Python基础语法
「作者主页」:士别三日wyx 此文章已录入专栏<Python入门到精通> 2021最新版Python小白教程,针对0基础小白和基础薄弱的伙伴学习 Python基础语法 1. Hel ...
- python入门教程非常详细-Python 基础教程
关于脚本第一行的 #!/usr/bin/python 的解释,相信很多不熟悉 Linux 系统的同学需要普及这个知识,脚本语言的第一行,只对 Linux/Unix 用户适用,用来指定本脚本用什么解释器 ...
- python入门教程非常详细-Python编程入门教程:从入门到高级,非常详细
本文的资料和内容是我下载的,觉得非常有用,于是转过来大家瞧瞧: 这里给初学Python的朋友提供一些建议和指导吧.大神请无视, 俗话说:授人以鱼不如授人以渔.所以我这里只是阐述学习过程,并不会直接详细 ...
- python入门教程非常详细-Python该怎么入门?Python入门教程(非常详细)
Python要学多久可以学会,达到精通呢? 任何知识都是基础入门比较快,达到通晓的程序是需求时日的,这是一个逐渐激烈的进程. 通晓任何一门编程语言,都需求通过大量的实践来积累经验,解决遇到的各种疑难问 ...
最新文章
- 饿了么UI框架element的表格多个弹窗问题
- 关于“航天•轻舟机器人国赛技术交流会”邀请函
- angular中集中页面传参(我只是知识的搬运工)
- 解决Spring Cloud中Feign/Ribbon第一次请求失败的方法
- wireshark如何对指定ip进行嗅探
- 计算机专业教学工作小结,计算机专业教学的工作总结
- login.html id=9453,SN100C Sublizenzierung und Aufnahme in die ISO 9453
- arm nodejs_ARM发布Cortex A78C增强版大核架构
- java工作面试必备知识 Java常用类库与技巧
- webex无法用计算机呼叫,WebEx使用指南.PDF
- 系统架构设计师-考试大纲
- 鸿蒙分布式内核,鸿蒙系统:微内核,分布式
- auto semicolon insertion 自动分号补齐的坑
- 保姆级教程!Windows右下角扬声器有红叉,点击声音设置输出显示“未安装任何音频输出设备”?
- ICP经营许可证需要多久能够下证
- 云讯健身管理系统-9
- 双非计算机保研北邮经验贴|纯干货(面向平民)
- jquery input的value赋值
- 财富可敌42个国家:金融巨鳄索罗斯的传奇
- 无人便利店系统代理发展前景分析
热门文章
- C++ auto 关键字的使用
- bad src image pointers
- elasticsearch collapse折叠聚合
- ModuleNotFoundError: No module named ‘config‘
- 相似图片检测:感知哈希算法之aHash,dHash,pHash的Python实现
- OSError: exception: access violation writing and reading
- Imagemagick常用指令
- 主梁弹性模量计算_收藏 | 钢结构计算公式
- python中io.textio_Python文件读写概述(IO操作、文件读写、stringiobytesio、序列化),python,的,小,总结,StringIOBytesIO...
- 安卓 python termux_Android Termux 安装 Linux 就是这么简单