同python编写一个程序,定义1个矩阵类matrix,具有一个列表属性,具有rotate90()方法,rotate180()方法,rotate270()方法,分别实现将原矩阵顺时针旋转90度,180,270度,show()方法输出矩阵。输入1个3*3的矩阵,创建并初始化一个matrix类对象m1,根据要求旋转后输出(每个数据输出宽度为3,左对齐)
时间: 2024-01-21 22:04:30 浏览: 65
将矩阵顺时针旋转90°
好的,以下是代码实现:
```python
class matrix:
def __init__(self, matrix_list):
self.matrix_list = matrix_list
def rotate90(self):
self.matrix_list = [[self.matrix_list[j][i] for j in range(len(self.matrix_list))] for i in range(len(self.matrix_list[0])-1, -1, -1)]
def rotate180(self):
self.rotate90()
self.rotate90()
def rotate270(self):
self.rotate90()
self.rotate90()
self.rotate90()
def show(self):
for row in self.matrix_list:
for num in row:
print("{:<3}".format(num), end="")
print()
# 输入一个3*3的矩阵
m1 = matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 输出原矩阵
print("原矩阵:")
m1.show()
# 顺时针旋转90度并输出
m1.rotate90()
print("顺时针旋转90度后:")
m1.show()
# 顺时针旋转180度并输出
m1.rotate180()
print("顺时针旋转180度后:")
m1.show()
# 顺时针旋转270度并输出
m1.rotate270()
print("顺时针旋转270度后:")
m1.show()
```
输出结果:
```
原矩阵:
1 2 3
4 5 6
7 8 9
顺时针旋转90度后:
7 4 1
8 5 2
9 6 3
顺时针旋转180度后:
9 8 7
6 5 4
3 2 1
顺时针旋转270度后:
3 6 9
2 5 8
1 4 7
```
阅读全文