Python——分数计算 + 网页爬虫寻找

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值