1、函数没有设定返回值的默认返回对象类型为None,类似于C中的void。
def hello():
print 'hello world'
print hello()
结果输出:hello world
None
2、元组可以被分解成为单独的变量,也可以直接用单一变量对其进行引用
def bar():
return ('abc',[4-2j,'python'],"Guido")
atuple=bar()
x,y,z=bar()
3、
返回的对象数目 | Python实际返回的对象 |
---|---|
0 | None |
1 | return返回的object |
( >1 | 以tuple元组形式返回 |
4、
random.random() #返回随机浮点数数
random.choice(s) #随机返回序列s中的元素
random.randint(start,stop) #随机返回start-stop区间内的一个整数
5、
在Python中,所有的对象都是通过引用来传递的;函数和其他对象一样是可以被引用的,也作为参数传入函数中。
def foo():
print 'in foo()'
bar=foo
print bar()
结果为:in foo()
None
函数作为参数传递:
def convert(func,seq):
return [func(eachnum) for eachnum in seq]
myseq=(123,45.67,-6.2e8,99999999L)
print convert(int,myseq)
print convert(float,myseq)
6、lambda表达式
lambda表达式返回可调用的函数对象
def add(x,y):return x+y 等价于 lambda x,y:x+y
def add2(x,y=2):return x+y 等价于 lambda x,y=2:x+y
7、filter(bool_func, seq)
Python內建的filter()用于过滤序列,参数包括一个函数和一个序列,将序列中的每个元素放入到函数中,根绝函数返回的True or False来选择保留还是丢弃该元素。
filter()函数原型:
def filter(bool_func,seq):
filtered_seq=[]
for eachitem in seq:
if(bool_func(eachitem)):
filtered_seq.append(eachitem)
return filtered_seq
filter()举例:将9个随机整数列表allnums中的奇数元素剔除,只保留偶数:
from random import randint
def odd(n):
return n%2
allnums=[]
for eachnum in range(9):
allnums.append(randint(1,99))
print filter(odd,allnums)
8、map()函数
map()将函数调用映射到序列的每个元素上,并返回一个含有所有返回值的列表。
def map(func,seq):
mapped_seq=[]
for eachitem in seq:
mapped_seq.append(func(eachitem))
return mapped_seq
map((lambda x:x+2),range(6))#将0-5分别+1并返回列表