飞行的猪哼哼

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
1. 函数的基本定义:

def printMax(a,b):
    if a>b:
        print(a,'较大值')
    else:
        print(b,'较大值')
printMax(20,30)

2.文档字符串(函数的注释):
解释:函数体开头部分注明函数的作用
用三个双引号或者单引号来实现。
用help(函数名.__doc__)函数打印出文档字符串来。这是前后两个下划线。
例如:
def printMax(a,b):
    '''用于比较两个数的大小,返回最大值'''
    if a>b:
        print(a,'较大值')
    else:
        print(b,'较大值')
printMax(20,30)
help(printMax.__doc__)


运行结果:
30 较大值
No Python documentation found for '用于比较两个数的大小,返回最大值'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.

3.函数的返回值
return  :    两个作用:     i:返回值   ii:退出
例如:
def printMax(a,b):
    '''用于比较两个数的大小,返回最大值'''
    if a>b:
       return a
    else:
        return b
c = printMax(20,30)
print(c)

4 全局变量 和 局部变量:
i:函数体中如果要修改全局变量必须用global修饰一下。
ii:局部变量和全局变量同名,则在局部,全局变量隐藏。
例题:
a = 3  #全局变量
def test01():
    b = 4  #局部变量
    print(b*10)
    global a  #修改全局变量需要增加global声明
    a = 300
    print(locals()) #打印输出全部的局部变量
    print(globals())  #打印输出全部的全局变量

test01()
print(a)

运行结果:
{'b': 4}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x019BC230>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/Users/Lenovo/PycharmProjects/mypro01/mypython01.py', '__cached__': None, 'a': 300, 'test01': <function test01 at 0x01A4A6A8>}
300

5. 默认值参数
def test01(a,b,c=10,d=20):   #默认参数值必须在普通参数值的后面
    print(a,b,c,d)
test01(8,9)
test01(3,4,5)
test01(3,4,5,6)


运行结果:
8 9 10 20
3 4 5 20
3 4 5 6


6.命名参数
def test01(a,b,c,d):   #默认参数值必须在普通参数值的后面
    print(a,b,c,d)
test01(d=1,b=2,c=5,a=0)

运行结果:
0 2 5 1

7.可变参数
i:  一个*表示将多个参数收集到元组当中。
ii:两个**表示将多个参数收集到字典当中。
例题:
def test01(a,b,*c):
    print(a,b,c)

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

def test02(a,b,**c):
    print(a,b,c)

test02(1,2,name='任善文',age=21)

def test03(a,b,*c,**d):
    print(a,b,c,d)

test03(1,2,3,4,5,name='小暖猫',age=21)

运行结果:
1 2 (3, 4, 5)
1 2 {'name': '任善文', 'age': 21}
1 2 (3, 4, 5) {'name': '小暖猫', 'age': 21}


8.强制命名参数:
解释:可变参数后面增加新的参数,传递的实参必须都要赋值。
代码:
def test01(*a,b,c):
    print(a,b,c)

test01(1,2,4,5,b=3,c=4)

运行结果:
(1, 2, 4, 5) 3 4

9.lambda 表达式
注释:I:用来声明匿名函数,只允许包含一个表达式
          II:基本语法格式:lambda 变量1,变量2,变量3:表达式
例如:
f = lambda a,b,c:a+b+c
print(f)
print(f(2,3,4))

运行结果:
<function <lambda> at 0x02E0A6A8>
9

g = [lambda a:a*2,lambda b:b*3,lambda c:c*4]
print(g[0](6),g[1](7),g[2](9))

运行结果:
12 21 36

解释:相当于给a,传递6,给b传递7,给c传递9。[]中的0,1,2代表元组下标。()代表传递进去的数。


10.eval() 函数
用于执行操作
代码:
a = 10
b = 20
c = eval("a+b")
print(c)

dict1 = dict(a=100,b=200)

d = eval("a+b",dict1)
print(d)


运行结果:
30
300

posted on 2019-07-30 14:54  飞行的猪哼哼  阅读(37)  评论(0)    收藏  举报