1.filter函数–筛选函数
#筛选函数——1~100的平方数
from math import sqrt
def sqrt_int(x):
return sqrt(x)%1==0
a=filter(sqrt_int,range(1,101)) #惰性序列,即需要list函数转换才可正常输出
b=list(a)
print(b)
2.map函数——映射
a,b,c=map(int,input('一次输入三个').split()) #split()是切片分段函数,默认情况下是以空格分隔
3.reduce函数——累积
#1~100的和
from functools import reduce #导入累积函数
def add(x,y):
return x+y
a=reduce(add,range(101)) #引用的函数必须有两个参数
print(a)
4.sorted函数和sort函数——排序
默认情况下为升序
sorted(interable,key=None,reverse=False)
#interable--迭代器(对象);key--自定义排序(指定的函数);reverse--排序规则(False为升序,True为降序)
L=[2,5,9,7,3,1]
a=sorted(L)
b=L.sort()
print(a) #sorted排序后生成新列表
print(b) #sort排序后,结果返回为空(None),将结果迭代到原列表
print(L)
L=[-4,5,-7,3,8,-2]
a=sorted(L,key=abs)
b=sorted(L)
print(a) #加自定义的排序
print(b) #没加自定义的排序key
l=['Tom','Jeck','Lily','sala','qxce']
a=sorted(l)
print(a) #对字符串排序要根据ASCII码的大小进行排序的
b=sorted(l,key=str.lower) #忽略字符串大小写
print(b)
c=sorted(l,key=str.upper) #忽略字符串大小写
print(c)
d=sorted(l,key=str.lower,reverse=True) #字符串大小以降序形式排列
print(d)
#结果
['Jeck', 'Lily', 'Tom', 'qxce', 'sala']
['Jeck', 'Lily', 'qxce', 'sala', 'Tom']
['Jeck', 'Lily', 'qxce', 'sala', 'Tom']
['Tom', 'sala', 'qxce', 'Lily', 'Jeck']
5.lambda匿名函数———表达式函数 lambda的例子
lambda arg0,……,argn:exper #lambda的表达式用法(或者定义)
L = [lambda x: x**2,\
lambda x: x**3,\
lambda x: x**4]
for x in L:
... print x(2)
...
4
8
16
还加了猜数游戏——随机数
#猜数字游戏,范围1~100
import random
L=[]
num=random.randint(0,100)
print('{0:*^70}'.format('Welcome to the numbers game!'))
i=1
while True:
x=int(input('Plase guess number:'))
if x>num:
print('big!')
elif x<num:
print('small!')
else:
L.append(num)
print('Pass %d pass!'%i)
num=random.randint(0,100)
i=i+1
if i>8:
print('Complete clearance!')
break
print('你才对的数是这些:',L)
print('Good bye!')