乙個小練習題,輸出如下規律的數字矩陣,從一開始先向下,再向右,再向上,最後向左,依次類推,繞圈圈輸出。
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 語句使程...