测验3: 基本数据类型 (第2周)

1.平方根格式化

描述
获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬
输出结果采用宽度30个字符、右对齐输出、多余字符采用加号(+)填充。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬
如果结果超过30个字符,则以结果宽度为准。


输入
示例1:10

输出
示例1:+++++++++++++++++++++++++3.162


a = eval(input())
print("{:+>30.3f}".format(pow(a,0.5)))

在这里插入图片描述
2.字符串分段组合

描述
获得输入的一个字符串s,以字符减号(-)分割s,将其中首尾两段用加号(+)组合后输出。


输入
示例1:Alice-Bob-Charis-David-Eric-Flurry

输出
示例1:Alice+Flurry


s = input()
ls = s.split("-")
print("{}+{}".format(ls[0],ls[-1]))

#str.split(sep=None) 返回一个列表,由str根据sep被分隔的部分组成

在这里插入图片描述

说明:题目来自北理嵩天老师【Python语言程序设计(第9期)】课程,如有侵权,立删。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,根据您的要求,我来回答您的问题。 首先,三元组表是一种存储稀疏矩阵的数据结构,它可以有效地节省存储空间。在三元组表中,每个非零元素用一个三元组表示,包括该元素的行号、列号和值。 以下是使用三元组表实现一个稀疏矩阵的示例代码: ```python class Triplet: def __init__(self, row, col, value): self.row = row self.col = col self.value = value class SparseMatrix: def __init__(self, m, n, k): self.m = m # 矩阵的行数 self.n = n # 矩阵的列数 self.k = k # 非零元素的个数 self.data = [] # 三元组表 # 创建稀疏矩阵的三元组表 def create(self): for i in range(self.k): row = int(input("请输入第%d个非零元素的行号:" % (i + 1))) col = int(input("请输入第%d个非零元素的列号:" % (i + 1))) value = int(input("请输入第%d个非零元素的值:" % (i + 1))) self.data.append(Triplet(row, col, value)) # 稀疏矩阵转置 def transpose(self): for i in range(self.k): self.data[i].row, self.data[i].col = self.data[i].col, self.data[i].row self.m, self.n = self.n, self.m # 稀疏矩阵相乘 def multiply(self, mat): if self.n != mat.m: print("Error: 两个矩阵无法相乘!") return else: result = SparseMatrix(self.m, mat.n, 0) mat = mat.transpose() for i in range(self.m): row = [] for j in range(mat.m): dot = 0 for k in range(self.k): if self.data[k].row == i + 1 and mat.data[k].row == j + 1: dot += self.data[k].value * mat.data[k].value if dot != 0: row.append(Triplet(i + 1, j + 1, dot)) result.data.extend(row) result.k = len(result.data) return result # 打印稀疏矩阵的三元组表 def display(self): print("三元组表:") for i in range(self.k): print("(%d, %d, %d)" % (self.data[i].row, self.data[i].col, self.data[i].value)) # 测试代码 if __name__ == "__main__": m = int(input("请输入矩阵的行数:")) n = int(input("请输入矩阵的列数:")) k = int(input("请输入矩阵的非零元素个数:")) mat = SparseMatrix(m, n, k) mat.create() mat.display() mat.transpose() mat.display() m2 = int(input("请输入一个矩阵的行数:")) n2 = int(input("请输入一个矩阵的列数:")) k2 = int(input("请输入一个矩阵的非零元素个数:")) mat2 = SparseMatrix(m2, n2, k2) mat2.create() mat2.display() result = mat.multiply(mat2) if result: result.display() ``` 以上代码实现了稀疏矩阵的三元组表的建立、转置和相乘操作,并提供了一个测试函数。您可以根据需要自定义其他操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值