一、位运算符
1.bin() 将整数转换为二进制
2.~x=-(x+1)
3.<<按位左移 5<<2=20
4.>>安慰友谊并去掉小数部分 5>>2=1
5.&
6.|
7.^
二、利用泰勒公式(麦克劳林公式)计算数学函数
from math import *
n=0 ;x1=float(input("请输入角度:"))
#将角度x1转化为弧度x
x=radians(x1)
s=a=x
while abs(a)>=1e-6 :
a *= -x*x/(2*n+3)/(x*n+2)
n+=1;s+=a
print(f"x={x1},sin(x)={s}")
三、几个序列操作函数
1.map()函数
接收一个函数和一个列表
map(func,*iterables)
a=map(pow,range(6),[2 for b in range(6)])
print(list(a))
# 输出[0, 1, 4, 9, 16, 25]
def f(x,y):
return x*y
a=map(f,[1,3,5],[3,4,6])
print(list(a))
print(type(a))
# 输出:[3, 12, 30]
# <class 'map'>
def f(x,y):
return x*y
a=map(f,[1,3,5],[3,4,6,10])
print(list(a))
print(type(a))
# 输出:[3, 12, 30]
# <class 'map'>
2.reduce()函数
reduce(function,sequence[,initial])
其中function是带有两个参数的函数,sequence是元组、列表、字典和字符串等可迭代对象,initial是可选的初始值。
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,6)))
3.filter()函数
def check(x):
if(x%3==0): return True
print(list(filter(check,range(1,20))))
#output: [3, 6, 9, 12, 15, 18]
print(list(filter(None,range(1,20))))
#output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
4.zip()函数
与 zip 相反,zip(*) 可理解为解压,可用于矩阵的转置
a=range(1,5)
b=range(5,11)
c=zip(a,b)
print(list(c))
print(list(zip(*zip(a,b))))
#output: [(1, 5), (2, 6), (3, 7), (4, 8)]
# [(1, 2, 3, 4), (5, 6, 7, 8)]
5.enumerate()函数
a=[(1,4),(2,5),(3,6)]
for b in enumerate(a): print(b)
#output: (0, (1, 4))
#(1, (2, 5))
#(2, (3, 6))
四、列表推导式
a=[(1,4),(2,5),(3,6)]
print([value[0] for (ind,value) in enumerate(a)])
print([value[1] for (ind,value) in enumerate(a)])
print([[0]*6 for i in range(4)])
m=[(1,2,3),(4,5,6),(7,8,9)]
print([d for c in m for d in c])
n=[-1,-2,6,8,-10,3]
print([i for i in n if i>0])
print([(x,y) for x in range(5) for y in range(5) if x%2==1 if y%2==0])
五,元组生成器推导式
g1=((i+1)**2 for i in range(6))
g1既不是列表,也不是元组,而是一个生成器对象,可tuple(g1)/list(g1)