python学习笔记3-函数

一、函数的定义

函数具有完成重复事件的功能。

函数分为两种:内置函数、自建函数。

二、内置函数

将大量需要重复使用的功能封装,我们可以直接调用的就是内置函数。

1.构造不同的可迭代对象

# list  将可迭代对象转化为列表
# tuple  将可迭代对象转化为元组
# set  构建一个集合
# dict 构造一个字典

# x = range(1,10)
# print(x)
# y = list(x)
# y = tuple(x)
# y = set(x)
# print(y)
x = dict(python1=198,python2=398)
print(x)

2.数学函数

# min最小值、max最大值、sum求和、pow计算指数、abs绝对值
x = [2,34,24,4,7,3,38,78]
print(min(x))
print(max(x))
print(sum(x))

print(pow(2,3)) #  8
print(abs(-234)) #  234

3.排序,组合

sorted( )函数对所有可迭代的对象进行排序操作,保留原对象不变。

x = [3,5,6,27,4,48,456,88]
print(x)
y = sorted(x)
print(y)
#  逆序
z = sorted(x,reverse=True)
print(z)
# x是不变的

zip( )函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

zip( )返回的是一个对象,如果需要展示列表,需要手动list( )转换。

x = [4, 9, 2]
y = [5, 8, 1]
xy = zip(y,x)
print(list(xy))

#  [(5, 4), (8, 9), (1, 2)]

4.all( )、any( )

all( )用于判断所有元素是否都为True

any( )  用于判断是否有元素为True

元素除了0、空、None、False外都算True

三、自定义函数

有四种类型:

1、没有参数,没有返回值

2、有参数,没有返回值

3、没有参数,有返回值

4、有参数,有返回值

def area1():
    print(3.14*10*10)
def area2(r):
    print(3.14*r*r)
def area3():
    return 3.14*10*10
def area4(r):
    return 3.14*r*r

area1()               #314.0
area2(10)             #314.0
print(area3())        #314.0
print(area4(10))      #314.0

返回值总结:

如果没有返回值,直接调用函数,执行函数。

如果有返回值,函数的运行结果,作为一个值来使用。

def area1():
    return 1*100+2*100
print(area1())


def area2(r):
    print(r*100)
area2(2)

四、局部函数

函数中还包含函数,就称为局部函数。

def my(leixing,shuzhi):
    def double(shuzhi):
        return shuzhi*2

    if leixing=="a":
       print(double(shuzhi))

my('a',5)

# 10
def computer(type,n):
    def double(n):
        return 2*n
    def half(n):
        return n/2
    def sqr(n):
        return n*n

    if type =='double':
        return double(n)
    elif type =='half':
        return half(n)
    else:
        return sqr(n)

print(computer('half',10))
print(computer('double',10))
print(computer('sqr',10))

# 5.0
# 20
# 100

五、匿名函数

较于局部函数,省去了定义函数这一部分,直接使用lambda :lambda后面的n是参数,分号后面跟着的是对参数的操作。

def computer(type):
    if type =="double":
        return lambda n:n*2
    elif type == 'half':
        return lambda n:n/2
    else:
        return lambda n:n*n
fun=computer('half')
print(fun(10))

fun=computer('double')
print(fun(10))

fun=computer('test')
print(fun(10))
def computer(mode):
    if mode == 'add':
        return lambda n:n+15
    elif mode =='jian':
        return lambda n:n-15
    else:
        return lambda n:n*6

x = computer('add')   #  computer调用add模式,再将这一个赋值给x
print(x(8))           #  x的值是8
y = computer('jian')
print(y(10))
z = computer('multiply')
print(z(4))

六、函数的作用域

局部变量离开了函数体就会被销毁。

x = 'python功能还行'
def y():
    x = 'python功能很强大'
    print(x)
y()
print(x)

#  python功能很强大
#  python功能还行

在函数体内使用global,函数体内可修改。

message="python还行"
print(message)
def talk():
    global message
    message = "python很不错"
    print(message)
talk()
print(message)

#  python还行
#  python很不错
#  python很不错

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值