阶乘
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))