日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python矩形打印_【Python】旋转打印各种矩形

發布時間:2024/8/5 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python矩形打印_【Python】旋转打印各种矩形 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

打印旋轉矩陣應該是很經典的算法問題了。題目描述如下:

給定一個m * n要素的矩陣。按照螺旋順序,返回該矩陣的所有要素。

思路:1,先定義矩陣的左上和右下的坐標,然后通過兩個坐標來打印這一圈矩陣;

2,將左上的坐標下右下移動,右下的坐標向左上移動,來縮小打印圈,進行下一圈矩陣的打印;

3,一直縮小打印直到結束。

代碼:

def print_circle(matrix,up_hang,up_lie,down_hang,down_lie):

result=[]

if up_lie==down_hang and down_hang==down_lie: # 若只有一個元素

result.append(matrix[up_hang][up_lie])

elif up_lie==down_hang or up_lie==down_lie: #若只有一行或一列元素

if up_lie==down_hang:

while up_lie <= down_lie:

result.append(matrix[up_hang][up_lie])

up_lie+=1

elif up_lie==down_lie:

while up_hang <=down_hang:

result.append(matrix[up_hang][up_lie])

up_hang+=1

# return result #注意對齊方式,其決定了作用的區間范圍,很關鍵

return result

i=up_hang

j=up_lie

while j

result.append(matrix[i][j])

j+=1

while i

result.append(matrix[i][j])

i+=1

while j>up_lie:

result.append(matrix[i][j])

j-=1

while i>up_hang:

result.append(matrix[i][j])

i-=1

return result

#matrix=[[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]

#matrix=[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25]]

matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]

#matrix=[[1,2,3],[4,5,6],[7,8,9]]

#matrix=[[1,2],[3,4]]

re_mat=[]

up_hang=0

up_lie=0

down_hang=3

down_lie=3

if down_hang>down_lie:

flag=down_lie

else:

flag=down_hang

while flag!=0: #flag決定了一個矩陣需要打印多少圈

temp=print_circle(matrix,up_hang,up_lie,down_hang,down_lie)

re_mat.extend(temp)

up_hang+=1

up_lie+=1

down_hang-=1

down_lie-=1

flag=flag/2

print(re_mat)總結:python對于代碼的對齊方式要求的比較嚴格,對齊方式直接決定了函數或者判斷條件的作用域,要重視啊。

總結

以上是生活随笔為你收集整理的python矩形打印_【Python】旋转打印各种矩形的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。