python学习-缺省参数/不定长参数/拆包/递归/匿名函数/两个变量交换

#缺省参数
def add(a,b=10,c=10):
    result=a+b+c
    return result
print(add(30,c=6))

#不定长参数,*args:返回的是元组,**kwarges:返回的是字典
def addq(a,b,c=10,*args,**kwargs):
    print(a,b,c)
    print(args)
    print(kwargs)
addq(1,2,3,44,55,name='hh',age=14)

#拆包
d=(11,12,13)
c=(55,66)
e={'name':'alex','age':20}
addq(1,2,3,*d,**e)
addq(1,2,3,*c,**e)

数字、字符串、元组为不可变类型,列表、字典为可变类型

#计算4!=4*3*2*1
#方法一:
i=1
result=1
while i<=4:
    result*=i
    i+=1
print(result)

#方法二:递归(自己调自己)
#4*3!
'''注意递归一定要避免进入死循环,一旦进入死循环肯定会造成内存溢出,程序崩溃'''
def getNums(num):
    if num>1:
        return num*getNums(num-1)
    else:
        return num
result=getNums(4)
print(result)

 

num=[1,242,3,44454]
#升序
num.sort()
print(num)
#降序
num.sort(reverse=True)
print(num)
#逆序
num.reverse()
print(num)

######匿名函数#######
#以name排序
a=[{'name':'joe','age':10},{'name':'alex','age':5},{'name':'cam','age':22}]
a.sort(key=lambda x:x['name'])
print(a)

#:前面是参数,:后面为返回值
sum=lambda x,y:x+y
print(sum(1,2))

def test(a,b,fun):
    result=fun(a,b)
    return result

a=input('请输入匿名函数:')
#a存储的是一个字符串,eval(a)相当于把字符串a的“”双引号去掉
b=eval(a)
print(test(10,2,b))

# sum=test(3,2,lambda x,y:x+y)
# print(sum)

 

#数据交换
a=10
b=5
print(a,b)
a,b=b,a
print(a,b)

 

# a=100  #不可变类型
a=[100]   #可变类型
 
def summ(num):
    #可以直接修改可变类型
    # num+=num
    #不可直接修改可变类型
    num=num+num
    print(num)

summ(a)
print(a)

 

posted on 2019-07-21 12:59  cherry_ning  阅读(262)  评论(0)    收藏  举报

导航