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)
  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
南京邮电大学操作系统实验是计算机科学与技术专业的一门重要实践课程。这门实验主要包括理论学习和实际操作两部分。在理论学习方面,学生会接触并学习操作系统的基本概念、原理和设计方法,以及常见的操作系统技术和应用。在实际操作方面,学生会通过编程实践来加深对操作系统的理解。比如,学生会学习如何使用C语言编写简单的操作系统程序,如进程管理、内存管理、文件系统等。同时,实验还会包括对一些经典的操作系统案例的分析和实验,如Linux操作系统的学习和使用。 南京邮电大学操作系统实验的主要目的是帮助学生将在课堂上所学到的知识转化为实际的操作能力,培养学生的动手能力和解决问题的能力。通过这门实验课程,学生能够更直观地理解操作系统的工作原理,加深对操作系统的研究和应用,为以后的学习和工作打下坚实的基础。 在实验课程中,学生需要完成一系列的实验任务,并且要求学生按照实验指导书中的要求逐步完成实验,并撰写相关的实验报告。通过这些任务,老师能够更好地评估学生对操作系统的理解和使用能力,同时也能够及时发现学生在实验中存在的问题,对学生进行及时指导和帮助。 总的来说,南京邮电大学操作系统实验是一门非常重要的实践课程,它对于学生来说是一次很好的学习和提升操作系统知识的机会,也是一次锻炼自己动手能力和解决问题能力的机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sh4ngchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值