要求:逆時針轉圈圈列印矩陣,如下
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
假設是5*5的列表
lenth = 5
width = 5
# 先初始化全是0的矩陣
spin = [[0] * lenth for i in range(width)]
x = 0
y = 0
count = 1
# 方向 0 向下 1 右 2 上 3 左
direction = 0
while x < lenth and y < width:
spin[x][y] = count
# 如果是最大數,則退出迴圈
if spin[x][y] == lenth * width:
break
count += 1
if direction == 0:
if x == lenth - 1 or spin[x + 1][y] != 0:
direction += 1
y += 1
continue
else:
x += 1
elif direction == 1:
if y == width - 1 or spin[x][y + 1] != 0:
direction += 1
x -= 1
continue
else:
y += 1
elif direction == 2:
if x == 0 or spin[x - 1][y] != 0:
direction += 1
y -= 1
continue
else:
x -= 1
elif direction == 3:
if spin[x][y - 1] != 0:
direction = 0
x += 1
continue
else:
y -= 1
for i in spin:
for j in i:
print('%02d' % j, ' ' * 2, end='')
print('')
簡單思路:主要是靈活改變二維列表下標的值。分四個方向,
下:x+1,y不變
右:x不變,y+1
上:x-1,y不變
左:x不變,y-1
當到達邊界或者同方向下乙個位置的值不為0時改變方向
Python愛的魔力轉圈圈
根據給定數值,列印出一組由外向裡由小到大排列的數字影象 例如 for迴圈建立乙個空的二維size size大小的陣列 for i in range size 1 array 0 size print array 控制迴圈列印在二維陣列中的位置的前進方向 定義陣列內的對應位置的數值大小 j,k 0,0...
python打地鼠 使用實現js中打地鼠的遊戲
這篇文章主要介紹了關於使用實現js中打地鼠的遊戲,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下 打地鼠 tb font family 迷你簡哈哈 fen1 font weight bold font size 60px font family 迷你簡哈哈 function kaish...
Python 實現二維List的順時針旋轉
示例 輸入 1,2,3,7 4,5,6,9 7,9,2,4 得到輸出 7,4,1 9,5,2 2,6,3 4,9,7 for i in range len arr for j in range len arr i if i 0 else r arr j insert 0,arr i j 思路非常簡單...