2 回答

TA貢獻1860條經(jīng)驗 獲得超9個贊
如果list是您的選擇,這里有一個打印波浪的簡單方法:
def print_wave(args):
total_cols = sum(args)
total_rows = args[0] # init total rows by first arg
matrix = [[' ' for _ in range(total_cols)] for _ in range(total_rows)]
curr_col = 0
curr_row = total_rows - 1
down = True
for num in args:
down = not down
char = '\\' if down else '/'
# update total rows and current row if need
if down:
diff = curr_row + num - total_rows
if diff > 0:
for _ in range(diff):
matrix.append([' ' for _ in range(total_cols)])
total_rows += diff
else:
diff = num - 1 - curr_row
if diff > 0:
for _ in range(diff):
matrix.insert(0, [' ' for _ in range(total_cols)])
total_rows += diff
curr_row += diff
for i in range(num):
matrix[curr_row][curr_col] = char
# for conjection not update curr row for the last loop
if i != num - 1:
if down:
curr_row += 1
else:
curr_row -= 1
curr_col += 1
for row in matrix:
for col in row:
print(col, end='')
print()
簡單測試args=[3, 5, 4, 11, 2, 5, 7]:
/\
/ \ /\
/ \ / \
\ / \
\/ \
\
\
\
\ /
\ /
\ /\ /
\/ \ /
\ /
\ /
\/
希望這會有所幫助。

TA貢獻1798條經(jīng)驗 獲得超3個贊
當(dāng)它是 python 2x 時,這很簡單,它是由末尾的一個簡單逗號完成的魔術(shù),例如。Print("a"), Print("b") 輸出:ab Incase of python 3x
你必須使用。end=" " 控制下一個打印函數(shù)之間的空格
添加回答
舉報