python组合函数_Python basic系列中11个函数的组合,python,基础,构成

# python 基础系列11-函数的构成

# 引入sys库

import sys

import copy

from functools import reduce

def func():

print('aaaaaa')

return

def func2(x, y):

print('bbbbb')

return x + y

def func3(x, y='xxx'):

print(x, y)

return x + y

def func4(**war):

print(war)

def func5(*a):

print(a)

def func6(*a,**b):

print(a,b)

def func8(*a,**b):

pass

def func7(*a,**b):

return 1,2

if __name__ == '__main__':

print(1)

func()

rs = func2(1, 2)

print(rs)

# 缺省参数

rs3 = func3('as2')

# rs3 = func3('as2','sssx')

# 不定长参数

func4(a=1, b=2, c=3, d=4)

func5(1,2,3,4,5)

func6(1,2,3,4,a=1, b=2, c=3, d=4) #常用用法

#无返回值

func7()

#返回多个值,可以用变量接收

var = func8()

var1,var2 = func8()

# python 基础系列 -作用域

# 引入sys库

import sys

import copy

from functools import reduce

#全局变量

a=11

b=22

def func():

global a

#局部变量

a=3

print(a)

return 4

mylist = [1,2,3]

def func2(var):

var[0] = 'a'

#局部变量

print(var)

pass

def func3(var):

var1=var[:]

var1[0] = 'a'

#局部变量

print(var1)

pass

if __name__ == '__main__':

# 作用域

print(a)

#在函数内修改全局变量,使用 global 关联全局变量

func()

print(a) #这里的a值就发生了变化

#函数内部修改参数--传引用 ,我们发现2者值一致 都为 ['a', 2, 3]

# func2(mylist)

# print(mylist)

#为了解决上面的问题我们多加了一个赋值拷贝过程(注意是拷贝过程,而不是赋值)

func3(mylist) #['a', 2, 3]

print(mylist) #[1, 2, 3]

# python 基础系列-函数嵌套

# 引入sys库

import sys

import copy

from functools import reduce

def fun1():

print(1)

def fun2():

global fun1

def fun1():

print('aaaaa')

def fun3():

print(3)

def fun4():

print(4)

if __name__ == '__main__':

#函数嵌套

fun2()

fun1() #要先申明这个函数

# python 基础系列-匿名函数

# 引入sys库

import sys

import copy

from functools import reduce

if __name__ == '__main__':

print()

#匿名函数一般做一些简单的函数

f = lambda x:x*x

rs= f(2)

print(rs)

#支持默认参数

func=lambda x,y =1 :x+y

print(func(4))

#用途:跳转表 举例子

mylist = [lambda x:x*x,lambda x:x+1,lambda x:x-1]

for func in mylist:

print(func(3)) #传参

# python 基础系列 -递归

# 引入sys库

import sys

import copy

from functools import reduce

def func(list):

if list == []:

print('列表为null')

return 0

return list[0]+func(list[1:])

def cost(money,day=0):

if money <= 0 :

print('没钱了,花了',day)

return 0

else:

money = money // 2

day +=1

cost(money,day)

def func2():

print('a_1')

func2()

if __name__ == '__main__':

#递归就是函数中包含对自身的调用:

print(9/4)

print(9//4)

mylist= [1,2,3,4,5]

sum = 0

while mylist:

sum += mylist[0]

mylist = mylist[1:]

print(sum)

#递归求和方法:

mylist2 = [1, 2, 3, 4, 5]

print(func(mylist2))

money = 10000

#每天花一半的钱,求花多少天

cost(money)

#递归 效率高,但是内存消耗大 ,普通循环 内存小,效率稍低,py内部会设置一个最大值,会报错

func2()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值