- 阶乘
- 斐波那契额数列
- 数据分组
- 匿名函数
- 生成某一区间上的随机整数和随机矩阵
- 求最大公约数
- 排序
- enumerate函数
- map函数
- filter 函数
def factorial(n):
ans = 1
a=n
while n > 1:
ans = ans * n
n = n - 1
print("%d!=%d"% (a,ans))
通过验证可知结果正确
注意不能输入负数或者小数
斐波那契额数列def fib(n):
a, b = 1, 1
while a < n:
print(a,end=" ")
a,b=b,a+b
fib(200)
数据分组
例:请将以下四个单词按照是否以b开头分成两组"beep",“boop”,“foo”,“bar”
def bifurcate_by(L,fn):
return [[x for x in L if fn(x)],
[x for x in L if not fn(x)]]
s=bifurcate_by(["beep","boop","foo","bar"],lambda x:x[0]=="b")
print(s)
方法二:
def bifurcate(n):
a=[]
b=[]
for i in n:
if i[0]=="b":
a.append(i)
else:
b.append(i)
print([a,b])
s=["beep","boop","foo","bar"]
bifurcate(s)
匿名函数
匿名函数,是指不以def语句定义没有名称的函数,他在使用时临时声明立刻执行,其特点是执行效率高
f=lambda x,y,z:x*y*z g=lambda x :(x**2,x**3,x**4) print(f(3,4,5));print(g(2))生成某一区间上的随机整数和随机矩阵
例:生成0到3之间的随机整数,和一个4*3的矩阵
import random b=random.randint(0,3)#随机整数 print(b) import numpy.random as nr c=nr.randint(0,3,(4,3))#随机矩阵 print(c)
在0-10中生成不重复的5个整数
from random import sample d=sample(range(10),5) print(d)求最大公约数
import math a=math.gcd(12,21) print(a)
输出结果为3
排序import numpy.random as nr x1=list(range(9,21)) nr.shuffle(x1) #shuffle函数用来打乱顺序 x2=sorted(x1)#按照从小到大排序 x3=sorted(x1,reverse=True)#按照从大到小排序 x4=sorted(x1,key=lambda x:len(str(x)))#按照指定规则,这里是是几位数排序 print(x1);print(x2);print(x3);print(x4)enumerate函数
enumerate()函数用来枚举可迭代对象中的元素,返回可迭代的enumerate对象。
x1="abcde" x2=list(enumerate(x1));print(x2) for a,b in enumerate(x1):print(b)map函数
函数map(func,iterables)把一个函数func一次映射到一个可迭代对象iterables的每个元素上
import random x=random.randint(100,1000)#生成一个随机数 y=list(map(int,str(x)))#提取这个随机数每位上的数字 z=list(map(lambda x,y:x%2==1 and y%2==0,[1,3,2,4,1],[12,33,34,43,21])) print(x);print(y);print(z)filter 函数
filter函数将一个单参数函数作用到一个序列上,返回该序列中使得该函数值为True的那些元素组成的fliter函数
x1=filter(lambda x:x>10,[1121,321,2,1,23,12,3]) print(list(x1)) b=filter(lambda x:x.isalnum(),["abc",",","1245"])#isalnum是测试是否为数字或者字母 print(list(b))
过滤重复值:
def unique(x):
return (item for item in x if x.count(item)==1)
a=unique([1,2,223,23,2,3,1,2,1])
print(list(a))



