题目一:
有"员工信息.txt"文档,内容如下: 张三22男 李四26男 张华24女 请用python对此文件进行处理,输出格式为姓名,年龄,性别(也就是中间用“,”分割)。
代码显示:
import re
with open('员工信息.txt','r',encoding='utf-8') as fp:
num = re.compile('(\D*)(\d+)(.*)',re.S)
for i in range(0,3):
con = fp.readline()
data = re.findall(num,con)
print(data[0][0],',',data[0][1],',',data[0][2])
题目二:
生成一个列表X,列表的值在-50到+50,从-50开始,间隔为1,在设计一个一元二次函数(超参数可以 自己定义),针对上述的X,生成Y,然后将Y加上随机生成[-2,+2]区间内的噪声,使用matplotlib库进行 可视化展示。
代码显示:
X = [i for i in range(-50,50)]
Y = [i for i in range(0,100)]
print(X)
for i in range(-50,50):
j=i+50
Y[j]=X[i]**2-3*X[i]
print(Y)
技术有限,后面的不会了,不懂那个库的使用
题目三:
有excel表格,第一列为学号,第二列为学生姓名,第三列为学生性别, 1.第四列为学生成绩,分数在0-100之间,根据成绩,在第五列讲成绩转化为五级制,分别是“优秀(90 分以上)、良好、中等、及格、不及格(60分一下)“。 2.第四列为学生五级制成绩,分别是“优秀(90分以上)、良好、中等、及格、不及格(60分一下)“, 根据五级制成绩,逆向生成学生成绩(注意要在每一个区间之内)。
代码显示:
datalist = [['1001','张三','男','95'],['1002','李四','女','76'],['1003','王五','男','61'],['1004','赵六','男','44']]
workbook = xlwt.Workbook(encoding="utf-8", style_compression=0) # 创建workbook对象
worksheet = workbook.add_sheet('学生信息', cell_overwrite_ok=True) # 创建工作表
col = ('学号', '姓名', '性别', '成绩','级别')
for j in range(0,4):
if int(datalist[j][3])>=90:
datalist[j].append('优秀')
elif 80<=int(datalist[j][3])<90:
datalist[j].append('良好')
elif 70<=int(datalist[j][3])<80:
datalist[j].append('中等')
elif 60<=int(datalist[j][3])<70:
datalist[j].append('及格')
elif int(datalist[j][3])<60:
datalist[j].append('不及格')
for i in range(0, 5):
worksheet.write(0, i, col[i])
for i in range(0, 4):
data = datalist[i]
print(data)
for j in range(0, 5):
worksheet.write(i + 1, j, data[j])
workbook.save('学生信息.xls') # 保存数据
其中第二问跟第一问差不多,通过访问Excel表格中的字符串来用random函数生成分数进行追加,不过在xls中追加数据的函数我没有找到
题目四:
设计一个猜数游戏,系统生成一个-100到+100之间的整数,用户输入数字,没有猜中给予提示(大或者 小),超过四次判定用户失败,询问用户是否开始下一轮次。
代码显示:
#4.猜数字游戏
f = True
while f:
temp = random.randint(0, 3)
n = 1
while n<=4:
guess = int(input('猜一下俺心里想的是哪个数字?\n'))
if guess == temp:
print('恭喜你,可算是猜对了!')
print('还玩吗?')
if input('1.玩-----2.不玩')=='1':
f = True
continue;
else:
f=False
break
elif guess < temp:
print('对不起,数字猜的小了!')
elif guess > temp:
print('蠢货,猜的太大了!')
n+=1
else:
print('你是个猪吗?这都猜不出来!')
print('还玩吗?')
if input('1.玩-----2.不玩') == '1':
f = True
continue;
else:
break
题目五:
挥手次数_X 踢腿次数_Y 视频内容_lable
800 1200 足球
500 1000 足球
600 1000 足球
700 1500 足球
2000 500 乒乓球
1800 700 乒乓球
2200 400 乒乓球
2100 600 乒乓球
根据表格中的数据,当再来一个新的数据时,计算新的视频数据和已有之间的欧式距离,然后找出和它 最近的三个邻居(可以是N,这个应该设计为动态,但是要注意边界,比如不可以小于1,不可以大于已 有数据的个数)的距离,计算每个邻居所属标签的概率,输出最高概率的标签。
代码显示:
import math
wave = [800,500,600,700,2000,1800,2200,2100]
kick = [1200,1000,1000,1500,500,700,400,600]
w = int(input('挥手次数:\n'))
k = int(input('踢腿次数:\n'))
dic = {}
for i in range(0,8):
if i<3:
dic['足球',i+1]=int(math.sqrt((w-wave[i])**2+(k-kick[i])**2))
else:
dic['乒乓球', i-3] = int(math.sqrt((w - wave[i]) ** 2 + (k - kick[i]) ** 2))
print(dic)
new_dic = sorted(dic.items(),key=lambda d:d[1],reverse=False)
n = int(random.randint(1,8))
print(n)
new_dic2=new_dic[:n]
print(new_dic2)
s=0
p=0
for i in range(0,n):
if new_dic2[i][0][0]=='足球':
s+=new_dic2[i][1]
else:
p+=new_dic2[i][1]
num=s+p
print(s,p,num)
print('足球的概率为:%f'%(1-s/num))
print('乒乓球的概率为:%f'%(1-p/num))
其实我知道这样算概率是不太正确的,应该跟线性回归方程有关,就比如输入数据为800,1200,查表就知道是足球,但是动态获取邻居信息的概率,我这种方法很可能是乒乓球概率要大于足球概率,。不过,别的方法我还没想出来要怎么计算概率问题。