python
# #第一种情况
# def happy_birthday(name,age):
# print('祝'+name+'生日快乐')
# print(str(age)+'岁生日快乐')
#
# happy_birthday('哈哈',age=18)
#默认值传参
def happy_birthday(name='名字',age=18):
print('祝' + name + '生日快乐')
print(str(age)+'岁生日快乐')
happy_birthday()#祝名字生日快乐 18岁生日快乐
# happy_birthday(19)#TypeError: can only concatenate str (not "int") to str
happy_birthday(age=19)#祝名字生日快乐 19岁生日快乐
happy_birthday('哈哈')#祝哈哈生日快乐 18岁生日快乐
def fun(a,b=20):#正常
pass
def fun(a=20,b):#报错
pass
可变参数
def fun(*para):
print(type(para))
for item in para:
print(item)
fun(10,20,30,40)#传的个数可以改变
# <class 'tuple'>
# 10
# 20
# 30
# 40
fun([11,22,33,44])
# <class 'tuple'>
# [11, 22, 33, 44]
#在调用前加加*可以让4个值分开不在一个列表中
#是对这个系列进行系列解包操作
fun(*[11,22,33,44])
# <class 'tuple'>
# 11
# 22
# 33
# 44
#个数可变的关键参数
def fun2(**kwpara):
print(type(kwpara))
for key,value in kwpara.items():
print(key,'-----',value)
#调用
fun2(name='哈哈',age=18,height=170)#关键字参数
d={'name':'哈哈','age':18,'height':170}
#fun2(d)#TypeError: fun2() takes 0 positional arguments but 1 was given
fun(**d)
#如果参数为字典则必须加上**进行系列解包操作
返回值
def get_sum(num):
s=0
odd_sum=0
even_sum=0
for i in range(1,num+1):
if i%2!=0:
odd_sum+=i
else:
even_sum+=i
s+=i
return odd_sum,even_sum,s
a,b,c=get_sum(10)
print(a)
print(b)
print(c)
result=get_sum(10)
print(type(result))
print(result)
def calc(a,b):
s=a+b
return s
result=calc(10,20)
print(result)
#结果:30
变量的作用域
# 全局变量
a=100
def calc(x,y):
return a+x+y
print(a)
print(calc(10,20))
print('-'*30)
def calc2(x,y):
a=200#局部变量和全局变量的的名称相同时局部变量的优先级更高
return a+x+y
print(calc2(10,20))#230
print(a)#100
def calc3(x,y):
global s
s=300
return s+x+y
print(calc3(10,20))#330
print(s)#300
匿名函数(lambda)
type数据类型为函数类型的表达式为————function
def calc(a,b):
return a+b
print(calc(10,20))
print('-'*30)
s=lambda a,b:a+b
print(s(10,20))
print('-'*30)
lst=[10,20,30,40,50]
for i in range(len(lst)):
print(lst[i])
print()
print('-'*30)
for i in range(len(lst)):
result=lambda x:x[i]#根据索引取值,result的类型是function,相当于列表取值
print(result(lst))
student_scores=[
{'name':'哈哈','score':98},
{'name':'喝喝','score':95},
{'name':'呜呜','score':100},
{'name':'小二','score':65}
]
#对序列进行排序
student_scores.sort(key=lambda x:x.get('score'),reverse=True)
print(student_scores)
#以上为降序
#[{'name': '呜呜', 'score': 100}, {'name': '哈哈', 'score': 98},
# {
原文地址:https://blog.csdn.net/xia_dong/article/details/140642938
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!