递归
计算阶乘:
递归函数一定要设置结束条件,否则就会死掉
#encoding:utf-8
#传统方法
i = 1
result = 1
while i<=4:
result = result*i
i+=1
print(result)
#递归方法
def jiecheng(num):
if num>1:
return num*jiecheng(num-1)
else:
return num
num = jiecheng(4)
print(num)
匿名函数
nums = [33,3,2,5,6,44,67,345,98,64];
nums.sort()
print(nums)
nums = [33,3,2,5,6,44,67,345,98,64];
nums.sort()
print(nums)
infor = [{"name":"xjx","age":119},{"name":"fly","age":22},{"name":"liulf","age":23}]
infor.sort(key = lambda x:x['name'])
print(infor)
运行结果:
[2, 3, 5, 6, 33, 44, 64, 67, 98, 345]
[{'age': 22, 'name': 'fly'}, {'age': 23, 'name': 'liulf'}, {'age': 119, 'name': 'xjx'}]
匿名函数作为实参
def test(a,b,func):
result = func(a,b)
return result
num2 = test(11,2lambda x,y:x+y)
num = test(11,22)
print(num)
把匿名函数当参数传入,python语言是动态语言
def test(a,b,func):
result = func(a,b)
return result
func_new = input("请输入一个匿名函数:")
num = test(11,22,func_new)
print(num)
请输入一个匿名函数:lambda x,y:x*y
242
交换两个变量
#传统方法
a = 4
b = 5
c = 0
c = a
a = b
b = c
print("a = %d,b = %d"%(a,b))
#python特有方法
a = 4
b = 5
c = 0
a,b = b,a
print("a = %d,b = %d"%(a,b))
a是变量,是不可变类型,不能修改
a = 100
def test(num):
num+=num
print(num)
test(a)
print(a)
结果:
200
100
a是列表,是可变类型,可以修改
a = [100]
def test(num):
num+=num
print(num)
test(a)
print(a)
结果:
[100, 100]
[100, 100]
num = num +num 与num+=num不是一个东西,他们有不同的意思。如例子所示:
a = [100]
def test(num):
num = num +num
print(num)
test(a)
print(a)
[100, 100]
[100]
网友评论