python入门之函数调用内置函数_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函数取出来生成列表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值