版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
实验1
UDP通信软件,向125.220.66.140:5003 发送你的学号,然后在你的电脑上UDP5003端口上会收到一个字符串,将这个字符串发送回125.220.66.140:5003 ,你会收到 是否成功。你可以通过http://125.220.66.140/udp1.txt 查看 是否成功的发送成功
import socket
#发送
def fun1(txt):
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #申请套接字
addr=("125.220.66.140",5003) #发送地址(IP地址+端口号)
s.sendto(txt.encode("UTF-8"),addr)
#2.接收
def fun2():
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(("125.220.66.146",5003)) #绑定接收端口
data,addr=s.recvfrom(2048) #接收消息和发送方的地址
data=data.decode() #解码
return data
txt="1750300142"
fun1(txt)
data=fun2()
fun1(data)
第二题:实验2(要提交数据)
1.第一小题
如果你的学号末尾两位是p,另n=100+p,计算 1/1!-1/2!+1/3!-1/4!+…-((-1)^n)/(n!)的值(注意:要保留分数,不能用浮点数计算),将分子和分母相加,得到的整数,作为第一行的值。
from fractions import Fraction as Fra
def SUM(n):
x=1
flag=1
SUM=0
for i in range(1,100+n+1):
x*=i*flag
fenshu=Fra(1,x)
flag*=-flag
SUM+=fenshu
return SUM
def split(SUM):
string_list=str(SUM).split("/")
int_list=list(map(int,string_list))
Split_SUM=sum(int_list)
return Split_SUM
x=int(input("请输入学号的最后两位"))
SUM=SUM(x)
Split_SUM=split(SUM)
print("结果为",Split_SUM)
2.第二小题
计算 (1+1/2+1/3+…+1/n)^2 +(1/2+1/3+…+1/n)^2 +(1/3+…+1/n)^2+…+ (1/n)^2的值,将分子分母加起来得到的整数作为提交文件第二行的值
#第2小题
from fractions import Fraction as Fra
def SUM(n):
sumi=0
SUM=0
for i in range(n+100,0,-1): #使用倒序遍历 逆向计算
xi=Fra(1,i) #()求和
sumi+=xi
k=sumi**2 # 整体求和
SUM+=k
return SUM
def split(SUM):
string_list=str(SUM).split("/") #拆分字符串
int_list=list(map(int,string_list)) #转化为int的列表
Split_SUM=sum(int_list) #分子分母求和
return Split_SUM
x=int(input("请输入学号的最后两位"))
SUM=SUM(x)
Split_SUM=split(SUM)
print("结果为",Split_SUM)
实验3
在http://125.220.66.144/ 中你会发现1.txt,2.txt,…49.txt,
如果你在外网,请访问http://111.231.9.47/pythoncourse/experiment/aff/ex1026/
在这49个txt文件中含有很多数字,如果你的学号末尾两位是p,计算在这49个文件中出现p的次数
,出现的次数作为提交文件的第三行
import requests
from bs4 import BeautifulSoup
import re
#1.获取文本
def Get_TextContent():
base="http://111.231.9.47/pythoncourse/experiment/aff/ex1026/" #基础地址
textcontent=""
for i in range(1,50): #访问所有文件
url=base+str(i)+".txt" #获取每一个文件的地址
r=requests.get(url) #发送请求
html=r.text.encode(r.encoding).decode("GBK")#解析网页
texti=BeautifulSoup(html,"lxml").text #获取text文件内容
textcontent+=texti #将text文件内容粘连在一起
return textcontent #返回文本
#2.统计数目
def Find_Sno_Counts(Sno,textcontent):
Sno_list=re.findall(Sno,textcontent) #在文本中找自己的学号
counts=len(Sno_list) #统计数目
return counts
Sno=input("请输入学号的最后两位")
textcontent=Get_TextContent()
counts=Find_Sno_Counts(Sno,textcontent)
print("文本中出现%s的次数为%d次:"%(Sno,counts))