《跟老齐学python》学习笔记二(第一季第三章第一节-第一季结束)

没错,优秀的我已经开始函数部分了(其实前边忘光了,开课之后明显感觉时间不够用啊)

  • 全局变量
x = 2
def funcx():
x = 9
print "this x is in the funcx:-->", x
funcx()
print "--------------------------"
print "this x is out of funcx:-->", x

输出

this x is in the funcx:--> 9
--------------------------
this x is out of funcx:--> 2

在函数内多了一个global x,这句话的意思是在声明x是全局变量,也就是说这个x跟函数外面的那个x是同一个,接下来通过x=9将x的引用对象变成了9

x = 2
def funcx():
global x
#跟上面函数的不同之处
x = 9
print "this x is in the funcx:-->", x
funcx()
print "--------------------------"
print "this x is out of funcx:-->",x

输出

this x is in the funcx:--> 9
--------------------------
this x is out of funcx:--> 9
  • 当函数的参数个数不确定的时候,可以通过如下方法
def func(x,*arg):
    print(x)
    result = x
    print(arg)
    for i in arg:
        result += i
    return result
print(func(1,2,3,4,5,6,7,8,9))

结果为

1
(2, 3, 4, 5, 6, 7, 8, 9)
45

从上面例子可以看出,如果输入的参数个数不确定,其他参数全部通过*arg,以元组的形式由arg收集起来。

  • 更优(zhuang)雅(b)的方式
>>> def add(x, y):
...
return x + y
...
>>> bars = (2, 3)
>>> add(*bars)
5

先把要传的值放到元组中,赋值给一个变量bars,然后用add(bars)的方式,把值传到函数内。注意,元组中元素的个数要跟函数所要求的变量个数一致。使用一个星号,以元组形式传值,用**的方式,是以字典的形式传值。

  • 几个特殊函数,filter、map、reduce、lambda、yield……
  • 函数尽量达到的要求
    1 尽量不要使用全局变量。
    2 如果参数是可变类型数据,则在函数内不要修改它。
    3 每个函数的功能和目标要单纯,不要试图一个函数做很多事情。
    4 函数的代码行数尽量少。
    5 函数的独立性越强越好,不要跟其他的外部东西产生关联。
展开阅读全文

没有更多推荐了,返回首页