天天看点

python - 函数

*********************函数****************************

                                                     ---乐高积木之函数

定义函数

• def关键字,依次写出函数名、括号、括号中的参数和冒号 :

• 在缩进块中编写函数体,函数的返回值用 return 语句返回。

def func():

pass

return

总结:

定义函数时,函数不执行

调用函数时,函数才执行

## 有参数的函数

***********形式参数**********

#!/usr/bin/env python

#coding:utf-8

def add(x,y):

  print x + y

#实参,x=1,y=2

add(1,2)

***********默认参数**************

def mypow(x,y=2):

   print x**y

mypow(2)

*************可变参数********

def add(*args):

   sum = 0

   for i in args:

      sum += i

   print sum

add(1,2,3)

***************关键字参数************

kwarges实质是一个字典

参数总结

• 必选参数

•默认参数:默认参数一定要用不可变对象

•可变参数:*args 是可变参数,args 接收的是一个 tuple

•关键字参数:**kwarges是关键字参数,kwarges 接收的是一个dict

•对于任意函数,都可以通过类似 func(*args, **kw) 的形式调用它

多种参数混合使用时,其参数顺序为:必选参数,默认参数,可变参数,关键字参数

#返回值

***函数中如果没有return时,默认返回None;

#实质上python只能返回一个值;

#间接通过元组返回多个值;

def fun(*args):

    """

    :param args:

    :return:

    return max(args),min(args)

print fun(11,2,34,5,66)

[root@python code.6]# python canshu.py 

(66, 2)

[root@desktop code4]# python test.py 

(4, 1)

函数的作用域

变量的作用域

• 局部变量:只能在函数内部使用的变量

• 全局变量:在整个程序中使用的变量

• global关键字:强制将局部变量转换为全局变量

*global关键字必须要先声明,在赋值;

#全局变量

num = 1

def fun():

    # global声明num为全局变量

    global num

    # 局部变量

    num = 5

高级特性

迭代

是否可以for循环遍历的对象;

isinstance判断是否可迭代;

列表生成式

生成列表的公式

需求: 生成一个列表, 返回1-100中偶数的平方;

方法1:

li = []

for i in range(2,101,2):

  li.append(i**2)

print li

方法2:

li = [i**2 for i in range(2,101,2)]

变异的列表生成式

In [17]: # for 循环嵌套 if 语句

[i**2 for i in range(2,20) if i%2==0]

Out[17]: [4, 16, 36, 64, 100, 144, 196, 256, 324] 

In [20]: # for 循环嵌套 for 循环 , 两个字符串的全排列

[i+j for i in 'xyz' for j in '123']

Out[20]: ['x1', 'x2', 'x3', 'y1', 'y2', 'y3', 'z1', 'z2', 'z3']

练习:找出/etc下文件中以.conf结尾的文件;

提示:

- os.listdir("/etc")

- s.enswith(".conf")

import os

li=[i for i in os.listdir("/etc") if i.endswith(".conf")][:5] #显示前五个

 本文转自 huanzi2017 51CTO博客,原文链接:http://blog.51cto.com/13362895/2058888

上一篇: python - test3
下一篇: 文件地址