1.分数计算
例题:
如果你的学号末尾两位是p,另n=100+p.
a.计算 1/1!-1/2!+1/3!-1/4!+…-((-1)^n)/(n!)的值,将分子和分母相加得到整数
b.计算 (1+1/2+1/3+…+1/n)2+(1/2+1/3+…+1/n)2+(1/3+…+1/n)2+…+(1/n)2的值,将分子分母加起来得到整数(注意:要保留分数,不能用浮点数计算)
#写法一
#a
import fractions as fr
def jie(n):
if n==1:
return 1
else:
return n*jie(n-1)
def fun1(n):
s=0
fuhao=-1
for i in range(1,n+1):
t=fr.Fraction(1,jie(i))
fuhao=-fuhao
s=s+fuhao*t
return s
n=106
s=fun1(n)
print(s)
a=s.numerator+s.denominator
print(a)
#b
import fractions as fr
def fun1(n):
S=0
for i in range(1,n+1):
s=0
for j in range(i,n+1):
t=fr.Fraction(1,j)
s=s+t
S=S+s**2
return S
s=fun1(2)
print(s)
a=s.numerator+s.denominator
print(a)
#写法二
#a
import math
def jiecheng(n):
s=1
for i in range(1,n+1):
s=s*i
return s
import fractions
def getsum(n):#1-1/2!+1/3!-.........1/n!
s=0
for i in range(1,n+1):
x=fractions.Fraction(1,jiecheng(i))
if i%2==0:
x=-x
s+=x
#print(x,' ')
return s
y=getsum(106)
print(y)
#b
def getsum2(m,n): #1/m+.....1/n
s=0
for i in range(m,n+1):
x=fractions.Fraction(1,i)
s+=x
return s
n=2
s=0
for i in range(1,n+1):
x=getsum2(i,n)
s+=x*x
print(s)
2.网页爬虫寻找
例题:
访问http://111.231.9.47/pythoncourse/experiment/aff/ex1026/
在这49个txt文件中含有很多数字,如果你的学号末尾两位是p,计算在这49个文件中出现p的次数。
#写法一
import urllib.request
import re
x=urllib.request.urlopen('http://111.231.9.47/pythoncourse/experiment/aff/ex1026')
html=x.read().decode('UTF-8')
pa='[\w./]+.txt'
linkset=set(re.findall(pa,html))
S=0
for i in linkset:
try:
x=urllib.request.urlopen('http://111.231.9.47/pythoncourse/experiment/aff/ex1026/'+i)
html=x.read().decode('UTF-8')
pa='(06)+'
a=re.findall(pa,html)
s=0
for j in range(1,len(a)+1):
s=j+1
S+=s
except:
print("error")
print(S)
#写法二
x1=r'http://111.231.9.47/pythoncourse/experiment/aff/ex1026/'
import urllib
cishu=0
for i in range(1,49+1):
tx1=urllib.request.urlopen(x1+str(i)+'.txt').read()
txt=tx1.decode('UTF-8')
import re
num=len(re.findall('06',txt))
#print(num)
cishu+=num
print(cishu)