規律:①號轉彎線的行索引與列索引總和為n-1;
②號轉彎線的行索引與列索引相等;
③號轉彎線的行索引等於列索引減1;
**如下:
def
a_circle
(size)
: array =[[
0]* size]
# 建立乙個長度size * size的二維列表
for i in
range
(size -1)
: array +=[[
0]* size]
# 該orient代表繞圈的方向
# 其中0代表向下,1代表向右,2代表向左,3代表向上
orient =
0# 控制將1~size * size的數值填入二維列表中
# 其中j控制行索引,k控制列索引
j =0 k =
0for i in
range(1
, size * size +1)
: array[j]
[k]= i
# 如果位於圖4.2中①號轉彎線上
if j + k == size -1:
# j>k,位於左下角
if j > k:
orient =
1# 位於右上角
else
: orient =
2# 如果位於圖5.2中②號轉彎線上
elif
(k == j)
and(k >= size /2)
: orient =
3# 如果j位於圖5.2中③號轉彎線上
elif
(j == k -1)
and(k <= size /2)
: orient =
0# 根據方向來控制行索引、列索引的改變
# 如果方向為向下繞圈
if orient ==0:
j +=
1# 如果方向為向右繞圈
elif orient ==1:
k +=
1# 如果方向為向左繞圈
elif orient ==2:
k -=
1# 如果方向為向上繞圈
elif orient ==3:
j -=
1# 採用遍歷輸出上面的二維列表
for i in
range
(size)
:for j in
range
(size)
:print
('%02d '
% array[i]
[j], end ="")
print(""
)a =
int(
input
("請輸入乙個整數:"))
a_circle(a)
執行結果如下圖:
Python輸出乙個繞圈圈的矩陣
乙個小練習題,輸出如下規律的數字矩陣,從一開始先向下,再向右,再向上,最後向左,依次類推,繞圈圈輸出。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 ...
Python經典面試題
將字串列表 aycc kh llc u l 通過演算法處理為 y k c u l 對調首尾字串的位置,拼接字串列表中的字元,組成字串 lucky lst aycc kh llc u l 生成 3,2,1,1,1 這樣乙個索引列表 lst inde 2 i if 2 i 0else 1 for i i...
python程式設計面試題書籍 python程式設計面試題
實現需求為 註冊 登入 檢視暱稱的功能 def usern username input 請輸入賬號 n password input 請輸入密碼 n return username,password def register 註冊函式封裝 username,password usern temp ...