实验要求
要求学生熟悉实用软件(如python、Matlab、R等)中的基本编程内容,掌握实用软件调试和运行程序的方法、面向任务编程的思想,数据统计与分析思想针对任务进行设计、编写程序,特别是掌握常见的机器学习算法的实用软件语句及各类图形图像绘制方法。要注意培养学生良好的编程习惯,自始至终贯彻课程中所介绍的程序设计风格。为保证尽量在统一安排的上机时间内完成程序设计任务,学生应事先做问题分析,并做静态检查。学生应记录实验中所遇到的问题,并写出详细的实验报告。课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验内容、源程序及实验结果。
实验目的
掌握实用软件(如python、Matlab、R等任选一种)的基本语法、基本数据类型的使用方法,掌握从键盘输入并运算基本类型的数据,熟练运用分支、循环等语句控制程序流程。
实验内容
1.编写程序,记录十名学生的信息,至少包括姓名、年龄、出生年、数据统计分析课程实验成绩,程序输出前n个学生的年龄平均值、数据统计分析课程实验成绩平均值,n为函数的输入参数。
源代码:
import numpy as np
import xlrd #读excel
stu_name = [] #定义姓名列表
stu_age = [] #定义年龄列表
stu_year = [] #定义出生年份列表
stu_score = [] #定义分数列表
data = xlrd.open_workbook('E:\学习资料\数据统计与分析基础\实验1\student.xls')
table = data.sheets()[0]
def get(): #从文件读取10个学生的信息
for i in range(table.nrows):
stu_name.append(str(table.cell_value(i, 0)))
stu_age.append(int(table.cell_value(i, 1)))
stu_year.append(int(table.cell_value(i, 2)))
stu_score.append(int(table.cell_value(i, 3)))
def avg(n): #计算前n名学生的平均分数和平均年龄
avg_age = np.mean(np.array(stu_age)[:n])
avg_score = np.mean(np.array(stu_score)[:n])
return avg_age, avg_score
def main():
get()
n = int(input("输入n:"))
print("平均年龄为:%.2f" % avg(n)[0])
print("平均成绩为:%.2f" % avg(n)[1])
if __name__ == '__main__':
main()
结果截图:
2.找出1至999之间是13的倍数或者前两位数字是13的数字,输出这些数字,并统计有多少个。
源代码:
import numpy
def main():
num = 0
for i in range(1,1000,1):
if i%13 == 0 or i//10 == 13:
num += 1
print(i)
if __name__ == '__main__':
main()
结果截图:
3.编写成绩转化为绩点的函数,用98,93,89,73,66分别调用函数,生成对应绩点。
源代码:
import numpy
def jd(i):
if i >= 90:
n = 4.0
else:
n = (i-50)/10
print("绩点为:",n)
def main():
for j in range(5):
i = int(input("请输入成绩:"))
jd(i)
if __name__ == '__main__':
main()
结果截图:
4.随机生成两个长为100且服从标准正态分布的向量,然后将两向量所有偶数位的数值对调,输出所有的4个向量(对调前的2个,对调后的2个)。
源代码:
import numpy as np
def main():
a = np.random.randn(100)
b = np.random.randn(100)
print(a)
print(b)
for i in range(1,100,2):
t = a[i]
a[i] = b[i]
b[i] = t
print(a)
print(b)
if __name__ == '__main__':
main()
结果截图:
5、已知XYZ+YZZ=532,其中X、Y和Z为数字,编程求出X,Y和Z的值。
源代码:
import numpy
def main():
for x in range(6):
for y in range(6):
for z in range(10):
if 100*x+10*y+z+100*y+10*z+z == 532:
print("x=",x,"\ty=",y,"\tz=",z)
if __name__ == '__main__':
main()
结果截图: