Python輸出乙個繞圈圈的矩陣

2021-09-25 06:37:16 字數 2038 閱讀 4316

乙個小練習題,輸出如下規律的數字矩陣,從一開始先向下,再向右,再向上,最後向左,依次類推,繞圈圈輸出。

01 16 15 14 13 

02 17 24 23 12 

03 18 25 22 11 

04 19 20 21 10 

05 06 07 08 09

#獲取下乙個方向

def getnextflag(flag):

if flag == 0:

return 1

elif flag == 1:

return 2

elif flag == 2:

return 3

elif flag == 3:

return 0

else:

return 4

#生成矩陣

def matrix():

length = input("please enter the length of the two-dimensional table :")

num = int(length)

#建立乙個二維表

array =

for i in range(num):

#判斷數字格式

format_num = "%0" + str(len(str(num*num))) + "d"

#0向下 1向右 2向上 3向左

flag = 0

total = 1

column_index = 0

row_index = 0

border = num - 1

#開始賦值

array[row_index][column_index] = total

while total < num*num:

if flag == 0 and border > row_index >=0:

if array[row_index+1][column_index] == 0:

row_index += 1#移動

#賦值total += 1

array[row_index][column_index] = total

else:

flag = getnextflag(flag)

elif flag == 1 and border > column_index >=0:

if array[row_index][column_index+1] == 0:

column_index +=1

total += 1

array[row_index][column_index] = total

else:

flag = getnextflag(flag)

elif flag == 2 and border >= row_index > 0:

if array[row_index-1][column_index] == 0:

row_index -= 1

total += 1

array[row_index][column_index] = total

else:

flag = getnextflag(flag)

elif flag == 3 and border >= column_index > 0:

if array[row_index][column_index-1] == 0:

column_index -=1

total += 1

array[row_index][column_index] = total

else:

flag = getnextflag(flag)

else:

flag = getnextflag(flag)

#列印矩陣

for ele in array:

for element in ele:

print(format_num % element,end=" ")

print("")

#呼叫matrix()

python輸入乙個 輸出2個 問題

在python裡面,如果 後面不是乙個合法的轉移字元,那麼,python會列印兩個 換句話說,python將 也當成普通字元看待,而不是轉義符的標誌 s c py code s c py code len s 總共有10個字元,而不是12個 10反斜槓 是 轉意符 改變後面字元的含義,比如 r 回車...

逆序輸出乙個數字Python

問題是 輸入乙個數字,按照指定要求逆序輸出該數字 需求 使用python語言 逆序輸出乙個數字 如果數字是正數直接輸出如 177 771 如果數字是負數保留負號如 945 549 如果數字以0結果逆序後需要去除0如 100 1 如果數字很大會造成溢位返回0即可 之前見乙個作者寫的不是特別好,自己寫了...

4 倒著輸出九九乘法表 和輸出乙個由 組成的矩形

知識點 break跳出當前迴圈層,如果是巢狀迴圈,則跳出當前內迴圈。break 主要用在迴圈語句或者 switch 語句中,用來跳出整個語句塊。break 跳出當前層的迴圈,並且繼續執行該迴圈下面的語句。continue語句終止本次迴圈,進行下一次迴圈 在 for 迴圈中,continue 語句使程...