08_Python基础_Python函数

16 篇文章 0 订阅
Python函数
    
    一、定义函数
        自定义函数的语法格式如下:
def 函数名(形式参数列表):
    函数体
    return 返回值
        自定义函数说明:
            1、def关键字表示定义函数
            2、在形参右边的括号后添加英文的冒号
            3、在函数体前要进行缩进(Python中推荐使用4个半角空格)
            4、如果没有返回值,return语句可以省略
# coding=utf-8
def rect_area(width,height):
    area = width * height
    return area
def print_area(width,height):
    area = width * height
    print("{0:0.2f} * {1:0.2f}长方形面积为:{2:0.2f}".format(width,height,area))
        
    二、调用函数
        当定义好函数后,则可以调用函数了。
        使用位置参数调用函数
            在调用函数时传递的实参与定义函数时的形参顺序一致,这种方式是调用函数的基本形式,也是基本的使用方式
        
        使用关键字参数调用函数
            当调用函数时可以使用"关键字=实参"的形式进行,其中关键字的名称就是定义函数时的形参名称
        
        
        三、参数的默认值
            在一些编程语言中有函数重载的概念,也就是可以定义多个同名的函数,但是它们的参数列表是不同的,这样就可以实现传入不同的实参,然而在Python中是不支持的,Python中的参数默认值有点类似这种概念。
        
        四、可变参数
            基于元组的可变参数,形式参数表示形式(*可变参数)
            
            基于字典的可变参数,形式参数表示形式(**可变参数)
            
            
        五、函数中变量的作用域
            变量在模块中创建,作用域是整个模块,称为全局变量。变量也可以在函数中创建,在默认情况下作用域是整个函数,称为局部变量。
# coding=utf-8
x = 20 # 全局变量x
def show_value():
    x = 10    # 局部变量,它会屏蔽全局变量x
    print("函数中x={0}".format(x))
show_value()    # 调用函数
print("全局变量X={0}".format(x))
    注意:尽量不要在模块和函数中定义两个同名的变量,以免产生代码阅读上的混淆
在函数中定义的变量如果加上global修饰则会把它提升为一个全局变量,把上面的代码做如下修改
# coding=utf-8
x = 20 # 全局变量x
def show_value():
    global x    # 把函数中定义的变量提升为全局变量
    x = 10    # 注意这里不可以定为global x = 10
    print("函数中x={0}".format(x))
show_value()    # 调用函数
print("全局变量X={0}".format(x))
    注意:global 修饰变量的时候不可以赋值,赋值要单独再写;这个时候程序两次输出x的值都是10
    六、函数类型
        Python中的任何一个函数都有数据类型,这种数据类型为function,被称之为函数类型
        函数类型的数据与其他类型的数据是一样的,任意类型的数据可以作为函数返回值使用,还可以作为函数参数使用,因而一个函数可以作为另一个函数返回值使用,也可以作为另一个函数参数使用。
    
    
    过滤函数filter()
        这个函数用来对容器中的元素进行过滤处理。它的语法:filter(function,iterable),其中function是一个提供过滤条件的函数,返回布尔值。iterable是一个容器类型数据。
# coding=utf-8
def f(x):
    return x>=50
d = [78,98,39,20,50,64]
filtered = filter(f,d)    # 这里得到的是一个filter object
print(filtered)
d1 = list(filtered) #转换为列表
print(d1)
    映射函数map()
        这个函数用来对容器中的元素进行映射(或者变换),比如我们想把容器中的所有元素都乘以5
        map()函数的语法:map(function,iterable)
        function是一个提供变换规则的函数,返回的是变换后的元素
# coding=utf-8
# 变换函数
def f(x):
    if x>10 and x<100:
        return x / 2
    else:
        return x
d = [20,30,1,5,10]
mapped = map(f,d)
d1 = list(mapped)
print(d1)
    七、lambda()函数
        lambda关键字用来定义匿名函数。这种函数又称为lambda()函数,定义的语法如下
        lambda 参数列表:lambda体
        注意:lambda体部分不能是一个代码块,它只能有一条语句,语句会计算一个结果并返回lambda()函数,注意这里的返回是不用写return的
# coding=utf-8
def calc(opr):
    if opr == '+':
        return lambda a,b:(a + b)
    else:
        return lambda a,b:(a - b)
f1 = calc('+')
f2 = calc('-')
print("20 + 10 = {0}".format(f1(20,10)))
print("20 - 10 = {0}".format(f2(20,10)))
# coding=utf-8
d = [78,98,39,20,50,64]
filtered = filter(lambda x:(x>50),d)
d1 = list(filtered)
print(d1)
mapped = map(lambda x:(x*2),d)
d2 = list(mapped)
print(d2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值