python第十四课--排序及自定义函数
1.排序 特点: 1).升序:从小到大 2).降序:从大到小 课堂实现选择排序:参看老郭选择排序.py文件 2.函数:(方法/method) 自定义函数: 概念:它表示一段作用范围(作用域),当中封装了一段业务逻辑代码,此范围有名字, 我们需要调用函数名,才能去执行它; 好处: 1).代码的复用性变强 2).代码的扩展性和维护性变好 3).代码的阅读性变好 函数有五要素: ①.函数修饰符:必须都是def开头 ②.函数返回值:函数执行完毕可能存在有返回值/没有返回值两种情况 ③.函数名:标识符(规则和规范),自己定义函数的名字 ④.形参列表定义在函数名后的小括号内,可以没有也可以定义多个 ⑤.函数体封装的功能代码 格式: ① ③(④): ⑤ ② 函数的内存执行过程: 栈: 特点:分为栈顶部分和栈底部分,满足先进后出,只运行栈顶的内容; 函数method一旦被执行了,先进栈(入栈) --> 在栈顶开辟空间执行, 如果执行到一半调用了别的函数method02,那么method就被压栈了(顶->底), method02在开辟空间执行,等到method02执行完毕了,它就被弹栈(出栈)了, 然后method01获取了执行权,它会先升栈(底->顶),到method执行完毕了,它就被弹栈(出栈)了 【注意事项】: 1).形式参数也称形参,实际参数也称实参 2).形式参数出现在定义函数的时候,没有具体的内容,只是开了个口 3).实际参数出现在函数调用的时候,将实际参数给到形式参数 --> 称为参数传递, 之后参与运算的全部都是实参而已 4).return关键字有两层含义: ①.表示函数的结束②.将结果返回给函数的调用者/调用处 5).python中没有函数重载的现象: 什么是函数重载? 在同一个作用范围内定义相同名字的函数,但是形参不同(个位、位置), 在调用函数的时候,通过传入的参数的不同,能得知到底需要执行哪一个函数 python中如果在相同的作用域中定义多个重名的函数, 最后的一个函数,会将之前所有的同名函数全部覆盖, 所以只能调用最后一个同名函数执行 6).与return同一作用范围内的后面不要显示的书写任何代码,因为永远不可能被执行到,不会报错 7).return后面也可以不定义任何有效的数据,但是这样会将None值返回给调用处,一般没有什么意义 4中最常见的自定义函数模型 1).无参无返回值 2).无参有返回值 3).有参无返回值 4).有参有返回值 参数的定义和使用细节: 分类: 1).默认参数: #在设计自定义函数的时候,就存在一个默认值,就算在调用的时候不显示的传入实参,也不会报错 #会用默认值来代替参与后期的运算
def m1(name='zs',age=23):
print(name,age)
m1("李四")
# m1(18)
2).一般参数: #定义函数的时候有几个参数,在调用函数的时候就需要显示的传递几个实参, #而且要保证位置不能传错,否则会造成数据内容的不合理
def m2(name,age,sex):
print(name,age,sex)
m2("王五",30,"男")
3).关键字参数:
def m3(name,age,sex): print(name,age,sex) m3(age=25,name="钱八",sex="女")
4).#可变参数:(重要) 格式: def 函数名(*args,**kwargs): 函数体 参数的讲解: *args:可以接受0~无穷多个单值,将它们存入到一个元祖中使用 **kwargs:接可以受0~无穷多个键值对,将它们存入到一个字典中使用
def m4(*args,**kwargs): print(args,type(args)) print(kwargs,type(kwargs)) # m4() m4(10,0,3.14,True,"abc",name="老郭",hobby="开车")
python第十四课--排序及自定义函数的更多相关文章
- python第十四课--排序及自定义函数之自定义函数(案例二)
案例二: python中定义有/无返回值的函数,演示python没有函数重载这一说 需求:自定义函数:计算两个整数的和值两个原则:1).有没形参有,两个 2).有没返回值可有可无 def my_sum ...
- python第十四课--排序及自定义函数之案例二:冒泡排序
案例二:冒泡排序 lt1=[45,12,56,-32,-3,44,75,-22,100] print('排序前:'+str(lt1)) 自定义函数:实现冒泡排序(升序)原则:1).有没有形参?有,接受 ...
- python第十四课--排序及自定义函数之自定义函数(案例五)
演示函数的定义和使用细节: 默认参数:#在设计自定义函数的时候,就存在一个默认值,就算在调用的时候不显示的传入实参,也不会报错.#会用默认值来代替参与后期的运算 def m1(name='张三',ag ...
- python第十四课--排序及自定义函数之自定义函数(案例四)
整理:4中最常见的自定义函数模型1).无参无返回值2).无参有返回值3).有参无返回值4).有参有返回值 #定义无参无返回值自定义函数 def func1(): print('hello method ...
- python第十四课--排序及自定义函数之自定义函数(案例一)
案例一: 演示自定义函数的使用:包含:1).定义格式的掌握2).函数的好处 自定义函数:实现打印矩形的操作两个原则需要考虑:1).有没有形参?有,2个 2).有没有返回值?没有. def printR ...
- python第十四课--排序及自定义函数之案例一:选择排序
案例一:选择排序使用选择排序的思想实现列表数据的升序排序 lt=[45,12,56,-32,-3,44,75,-22,100] length=len(lt) # print('排序前:'+str(lt ...
- python第十四课--排序及自定义函数之自定义函数(案例三)
return关键字的使用:1).结束函数 2).将结果返回给函数的调用者/调用处 [注意事项]1).与return同一作用范围内的后面不要显示书写任何代码,因为永远不可能被执行到,不会报错. 2).r ...
- python第二十四课——set中的函数
集合中常用的一些函数: 1.add(obj):追加一个obj元素到集合中 pop():从集合中随机弹出一个元素 remove(obj):删除集合中和obj匹配的元素 clear():清空集合 s1={ ...
- python六十四课——高阶函数练习题(一)
1.lt = ['sdfasdfa', 'ewqrewrewqr', 'dsafa12312fdsafd', 'safsadf'] --> 得到长度列表2.tp = ('TOM', 'Lilei ...
随机推荐
- 添加List集合覆盖问题
今天在做一个项目的时候,发现了这样一个问题,为了让大家看得更直接明了,我直接放代码: public void InsertObjectToList(){ List<NewsProtetype&g ...
- Media change: please insert the disc labeled
问题描述和重现步骤: 今天安装完Ubuntu后准备安装openssh-server apt-get install openssh-server 结果发现下面的错误. Media change: pl ...
- Oracle安装后遇到错误:The Network Adapter could not establish the connection
http://note.youdao.com/noteshare?id=e6baee7ea7b7f60d7a265124e2bdd46c&sub=988945C6DDE843D5A7D6588 ...
- Jetty源码解析(web.xml的处理机制)
org.eclipse.jetty.webapp 包下的 StandardDescriptorProcessor类.该类对象会在WebAppContext的doStart方法启用 注册了遍历web.x ...
- 为什么不要 "lock(this)" ? lock object 并是readonly(转载)
一. 为什么要lock,lock了什么? 当我们使用线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待.但当不同的线程都需要访问某个资源的时候,就需要同步机制了,也就是 ...
- lua模块化
main.lua local main = require("my") main.greeting() my.lua local foo = {} local function g ...
- Linux学习6-Linux常用命令(2)
目录处理命令 命令名称:mkdir 命令英文原意:make directories 命令所在路径:/bin/mkdir 执行权限:所有用户 功能描述:创建新目录 语法:mkdir -p[目录名 ...
- “使用IDEA,配置文件是yml,无法获取[环境变量],值是null”的问题处理
为了便于隐藏用户名和密码,我们有时会用到“环境变量”. Spring Boot提供了很好的机制,可以在配置文件中,如application.yml书写以下格式,然后在代码中@Value就可以获取“环境 ...
- UVA11624(KB1-J)
Fire! Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and the owner of ...
- axios上传图片(及vue上传图片到七牛))
浏览器上传图片到服务端,我用过两种方法: 1.本地图片转换成base64,然后通过普通的post请求发送到服务端. 操作简单,适合小图,以及如果想兼容低版本的ie没办法用此方法 2.通过form表单提 ...