NJUPT Python编程及人工智能应用实验报告
Posted sCh3n
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NJUPT Python编程及人工智能应用实验报告相关的知识,希望对你有一定的参考价值。
实验报告(一)
数字转换星期几
数字转换星期几。编写程序从键盘输入一个1-7之间的整数,输出对应的表达星期几的英文单词。
提示:1表示星期一,7表示星期日,请将程序代码复制在下方:
s = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
try:
num = int(input("请输入一个1-7之间的整数:"))
print(s[num-1])
except:
print("输入有误")
水仙花数
输出3位数的水仙花数。编写程序,输出100-1000之间的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。
提示:运算符**表示幂运算,请将程序代码复制在下方:
for i in range(100, 1000):
value = sum([int(s) ** 3 for s in str(i)])
if value == i:
print(i)
倒置等腰三角形
print(i)打印*组成的倒置等腰三角形。利用循环语句打印如下图所示的图案。
for i in range(4, 0, -1):
for j in range(4-i):
print(" ", end="")
for k in range(2*i-1):
print("* ", end="")
print()
随机数判断互质
使用random函数库中的函数产生两个100以内的随机整数,并判断它们是否互质。
提示:所谓互质就是指两个数的最大公约数为1;使用random.randint(1,100)可生成100以内的随机整数。请将代码粘贴在下方:
import random
# 定义判断两个数是否互质的函数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 产生两个100以内的随机整数
num1 = random.randint(1, 100)
num2 = random.randint(1, 100)
print(f"num1和num2", end='')
# 判断两个数是否互质
if gcd(num1, num2) == 1:
print("互质")
else:
print("不互质")
输入&输出学生数据
题目:编写input()和output()函数输入,输出5个学生的数据记录,每个学生信息包括学号,姓名及三门课程的成绩。要求使用list来模拟学生记录结构。
def input(num):
L = []
for i in range(num):
n = input("请输入学生姓名:")
if not n:
break
a = input("请输入学生学号:")
b = int(input("请输入语文课程成绩:"))
c = int(input("请输入数学课程成绩:"))
d = int(input("请输入英语课程成绩:"))
L.append('name': n, 'id': a, 'score': [b, c, d])
return L
def output(L):
print("+---------------+----------+------+------+------+")
print("| 姓名 | 学号 | 语文| 数学| 英语|")
print("+---------------+----------+------+------+------+")
for d in L:
name = d['name']
id = d['id']
score = d['score']
chinese = score[0]
math = score[1]
english = score[2]
print("|%s|%s|%s|%s|%s|" % (name.center(15), id.center(10), str(chinese).center(6), str(math).center(6), str(english).center(6)))
print("+---------------+----------+------+------+------+")
# 测试input()和output()函数
L = input(5)
output(L)
文件读写&字符排序
有两个磁盘文件A.txt和B.txt,各存放一行字符,要求把这两个文件中的信息合并(按字母顺序排列),并输出到一个新文件C中
with open('A.txt', 'r') as f1, open('B.txt', 'r') as f2:
s = f1.read().strip() + f2.read().strip()
s = sorted(s, key=str.lower)
with open('C.txt', 'w') as f3:
f3.write(''.join(s))
Book类读写&排序
定义一个产品类Book表示图书库存类,该类有三个数据成员:name, publisher, price, count,分别表示该图书的书名(字符串型)、出版社(字符串型)、单价(小数类型)、库存数量(整数类型),通过构造函数传值进行初始化。图书的初始信息存储在books.txt文件中,每行表示一种图书,每行有四列分别表示产品的四个信息。要求从文件读取所有书籍信息,保存在列表中,按出版社和库存量排序,保存到文件。请根据以下给出的主函数代码完善整个程序代码。
class Book():
def __init__(self, name, publisher, price, count):
self.name = name
self.publisher = publisher
self.price = int(price)
self.count = int(count)
def loadBook(L):
f = open('books.txt', 'r')
v = f.readline()
while v:
v = v.split()
B = Book(v[0], v[1], v[2], v[3])
L.append(B)
v = f.readline()
return L
def sortBook(L):
L.sort(key=lambda x: (x.publisher, -x.count))
return L
def saveBook(L):
f = open('books.txt', 'w')
for B in L:
f.write(B.name + ' ' + B.publisher + ' ' + str(B.price) + ' ' + str(B.count) + '\\n')
print(B.name + ' ' + B.publisher + ' ' + str(B.price) + ' ' + str(B.count))
if __name__=="__main__":
booklist= []
loadBook(booklist)
sortBook(booklist)
saveBook(booklist)
Numpy矩阵操作
现有矩阵A、B和向量x、y满足如下等式,其中A、B、y已知,x未知。编写Python程序,使用numpy求解x,输出计算结果。提示:numpy的矩阵求逆函数是numpy.linalg.inv(),比如矩阵A的逆是numpy.linalg.inv(A),需先通过pip install numpy指令安装NumPy。
import numpy as np
# 定义已知矩阵和向量
A = np.array([[1, 2, 3, 4],
[2, 0, 6, 8],
[3, 7, 1, 2],
[8, 1, 1, 2]])
B = np.array([[11, 12, 13, 14],
[12, 10, 16, 18],
[13, 17, 11, 12],
[18, 11, 10, 12]])
y = np.array([[1], [2], [3], [8]])
# 求解未知向量x
B_inv = np.linalg.inv(B)
x = np.dot(np.dot(B_inv, A.T), y)
print(x)
以上是关于NJUPT Python编程及人工智能应用实验报告的主要内容,如果未能解决你的问题,请参考以下文章
2017-2018-2 20165228 实验五 《网络编程与安全》实验报告
20192415 2020-2021-2 《Python程序设计》实验4报告