函数的定义
def 函数名([参数列表,可选]):
函数的调用
函数名([参数列表,可选])
函数的参数
形参
定义函数时,函数的参数名称叫做形式参数
实参
调用函数时,函数的参数名称叫做实际参数
函数的默认参数必须从右到左
def fun(x,y=100):
print x,y
如果没有传入参数y值,则y默认为100;如果赋值给y则按照赋值运行
函数的局部变量
只能在程序的特定部分使用的变量为函数的局部变量
例子
#!/usr/bin/python
def fun():
x = 1
y = 1
print locals() //定义为内部变量
fun() //且需要调用函数后才能正确的声明变量,如不调用则未执行
print locals() //返回一个字典
函数的全局变量
在一个文件顶部定义的变量可供文件中的任何函数调用,这些变量称为全局变量
例子1
#!/usr/bin/python
x = 100
def fun():
global x //将局部变量声明为全局变量
x += 1
fun() //且需要调用函数后才能正确的声明变量,如不调用则未执行
函数的返回值
函数被调用后会返回一个指定的值,默认返回None;可以使用return指定返回值,返回值可以为任意类型,return后函数终止
函数的多类型传值
例子
def fun(x,y):
print x + y
t = (1,2)
fun(*t)即可将元祖中的元素传到函数中处理
高阶函数
允许将函数本身作为参数传入另一个函数;允许返回一个函数。允许返回一个函数。
map()函数
map的第一个参数为自定义函数,第二个参数为自定义可迭代对象
例子
#定义一个函数f2求平方,使用map函数,求list1的值的平方,list1平方规则按照f2函数执行,返回结果类型为list。
list1 = [1, 2, 3, 4, 5,]
def f2(x):
return x*x
list2 = map(f2, list1)
print type(list2)
print list2
reduce()函数
必须接收两个参数,最多接收三个参数。
例子
#定义一个函数f求和,使用reduce函数,求list1相加的值,再加20。list1相加规则按照f函数执行,先执行1+2,再用1+2的值与3相加,以此类推
list1 = [1, 2, 3, 4, 5,]
def f(x, y):
return x+y
print reduce(f,list1,20)
filter()函数
会将可迭代对象元素传入,如果返回true则保留,如果返回false则不保留元素
例子:
a = [1, 2, 3, 4, 5, 6, 7]
def f(x):
return x%2 == 1
b = list(filter(f,a))
#python3.5.1需要将filter转换为list再进行输出
print (b)
sorted()函数
可以针对所有的可迭代对象进行排序,返回一个新的list
使用方法:
sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
cmp:有两个参数,参数的值都是从可迭代对象中取出,此函数的规则:大于返回1,小于返回-1,等于返回0
key:具体的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素进行排序
reverse:判断是否反转,默认情况下不反转
例子
dic1 = {'Q':7, 'W':8, 'E':9}
print(dic1)
for key, value in dic1.items():
print(key, value)
d = sorted(dic1.items())
print(d)
匿名函数
不需要显示定义的函数,没有名字的函数
例子
def f2(x,y):
return x+y
等于
c = lambda x1,y1:x1+y1
print(c(4,5))
例子
def build(x2, y2):
return lambda: x2 * x2 + y2 * y2
lambda函数
使用方法:
#!/usr/bin/python
r = lambda x,y:x*y
r(3,5)
reduce函数
使用方法:
常用内建函数
callable函数
使用方法:
callable(函数,变量)
type函数
使用方法:
type(函数,变量,列表)
a.lower() 将a字符串统一转换为小写
a.upper() 将a字符串统一转换为大写
a.startswith('a') 判断是否以字符串a为开头
a.split() 默认按照空格对字符串进行分割成列表
a.join
raw_input() 从键盘获取输入
range(0,10,1) 生成一个从0-9步长为1的列表,开始和步长可省略
open函数
需要注意w方式打开,会覆盖源文件
fd = open('/work/python/1.txt')
fd.read() 一次性读取文件内容,返回字符串
fd.readline() 一行一行的读取文件内容,返回字符串
fd.next() 一行一行的读取文件内容,返回字符串
fd.readlines() 读取文件内容,并将每一行内容存到list中每一行是list中的一个元素
random.randint(1,20) 随机生产一个1-20的整数
locals() 看函数调用位置,如在函数中则返回整个函数中有哪些变量;如果在程序中则返回程序中有哪些变量;返回类型为字典
a.isdigit() 判断a序列是否为纯数字,如果为从纯数字返回True,如果不是返回False