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)]
print li
变异的列表生成式
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] #显示前五个
print li
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341