python基础学习之函数基础和部分内置函数
在函数调用的时候,必备参数必须要传入
函数定义:
def 函数名:
代码块pass
return 返回值
函数名命名规则: 字母、数字和下划线组成,和变量命名规则一致
pass在这里表示什么都没有,不执行任何操作
return 后面可以返回任意表达式,但不能是赋值语句
return没有写返回值的话,默认None
注意 return 和 print 的区别,return是函数的返回值,返回值可以赋值给变量,而print只是打印出来
def test():
print(“我最帅”)
return 我是大帅哥
个人理解,return的内容 才是函数最终执行结果,其中的print内容只是执行过程
print(test())
函数参数:
必备参数:必须要传入,否则报错:
def func(x):
print(x)
func(1)
x就是必备参数
默认参数:提前传好的,如果你不传,就使用默认值
def func(x, y=None):
print(x)
print(y)
func(1)
func(1, 2)
注意:默认参数要位于必备参数
列表的后面
不定长参数:
def func(*args, **kwargs):
print(args)
print(kwargs)
调用1:func(1, 2, 3, a=4, b=5, c=6)
调用2:func(*(1, 2, 3), **{'a': 4, 'b': 5, 'c': 6})
注意事项:
1、在函数调用的时候,必备参数必须要传入
2、在函数调用的时候,默认参数可以不传入值,不传入值时,会使用默认参数
3、在函数调用的时候,不定长参数可以不传入,也可以传入任意长度。其中定义时,元组形式可以放到参数最前面,字典形式只能放到最后面
内置函数(简单)
len 求长度
min 求最小值
max 求最大值
sorted 排序
reversed 反向
sum 求和
bin 转换为二进制
oct 转换为八进制
hex 转换为十六进制
ord 字符转ASCII码
chr ASCII码转字符
# enumerate 返回一个可以枚举的对象【好像没什么用】
li = [1, 2, 3, 4, 5, 6, 7]
print(list(enumerate(li)))
print(dict(enumerate(li)))# exec
exec('print(1+1)') #把字符串'print(1+1)'当做代码执行
# eval
print(eval('2+2')) #把字符串‘2+2’当做代码执行【好像也没啥用】
# filter 【掌握】
# 针对判断,保留True的值
def axe(x):
if x < 5:
return True
else:
return False
li = [1,2,3,4,5,6,7,8,9,0]
b = filter(axe,li)
print(list(b))# map【掌握】
li = [1,2,3,4,5,6,7,8,9,0]
def axe(x):
if x < 5:
return 10
else:
return 11
print(tuple(map(axe,li)))map函数的意思,是把传入的序列类型放置到定义的函数中运行,并获取结果用list表示出来。
# zip 【掌握】【一一对应的拉链函数】
li = [1,2,3,4,5,6]
tu = (1,2,3,4,5)
print(dict(zip(li,tu)))
print(list(zip(li,tu)))max、min、len等等
max/min和zip的高阶运用
取出自定义列表中age最大的一项
people = [
{'name':'asdf','age':100},
{'name':'gsff','age':1000},
{'name':'asqf','age':10000},
{'nam4':'atdf','age':100000},
]分解思考:需要比较的是people是个列表,每个元素是个字典,我们需要比较的是age的大小,首先需要取出age的值,比如第一个age,people[0]['age'],遇到这种情况,max/min函数中有个key参数,即表现为max(people,key = lambda x : x.['age']),该表达式的意思是,max函数开始迭代people列表,发现其元素为字典,就讲people列表按照匿名函数进行迭代,提取age的值在进行大小比较。
取出年纪最小的人名和年纪(即那一组数据)
dic = {'lili_age':22,'longxiu_age':33,"lixitong_age":3}
print(min(zip(dic.values(),dic.keys())))分解思考,单个字典项的大小比较是key值比较,即逐个字符比较,按照abcdefg的顺序,后面的为大,数字和字母无法比较,会报错,多个字典之间无法比较大小。用zip函数转换字典项,想年龄值放到前面,即zip(dic.values(),dic.keys()),生成新的迭代内容,然后在用min函数取出来生成列表。
最新文章
- ajax-异步JavaScript和XML
- 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之序列化
- 【学习篇:他山之石,把玉攻】JavaScript Date() 对象 及 格式化
- C# 如何将List拆分成多个子集合
- golang使用 mongo
- Spark MLib 基本统计汇总 2
- maketrans translate
- 在Ubuntu 14.04 64bit上安装numpy和matplotlib库
- 删除浏览器浏览器删除cookie方法
- page.Response.WriteFile(newpath);
- 如何进去bios设置
- 深入了解setInterval方法
- 【Unity与23种设计模式】装饰模式(Decorator)
- [Swift]LeetCode344. 反转字符串 | Reverse String
- 关于hibernate查询结果类的封装
- swift项目初始化并添加忽略文件Swift.ignore
- 关于《汇编语言(王爽)》程序6.3使用16个dw 0的问题
- Scala学习笔记——断言和单元测试
- Java-Runoob-高级教程-实例-方法:08. Java 实例 – break 关键字用法
- JavaWeb多文件上传及zip打包下载
热门文章
- Zabbix 触发器配置多监控项阈值
- TCP之“3次握手,4次挥手”问题——实例分析
- SPOJ SUBST1 New Distinct Substrings(后缀数组 本质不同子串个数)题解
- 云原生系列2 部署你的第一个k8s应用
- Java中的Lambda匿名函数后续
- HTML a Tag All In One
- LeetCode &; Binary Search 解题模版
- c++ 使用PID获取顶级窗口句柄和标题
- CodeMirror动态修改代码(关键: editor.getDoc().setValue(data); editor.refresh();)
- DHCP (Dynamic Host Configuration Protocol )协议的探讨与分析