Python 3中如何在同一行打印图案?解决双H图案换行问题
解决Python打印两个并排H图案的问题
你的问题出在grid_h()函数返回的字符串里已经包含了每行的换行符,哪怕用print(grid_h(), end=''),也只是去掉print函数默认追加的最后一个换行,但字符串内部的换行依然会被输出,导致两个H只能上下排列,无法并排。
下面提供两种可行的解决方法:
方法一:修改函数返回行列表
把原函数改成返回每行的字符串列表,这样可以方便地将两个H的对应行拼接:
def grid_h(): rows = [] for row in range(5): row_str = '' for column in range(5): if column == 0 or column == 4 or row == 2: row_str += '*' else: row_str += ' ' rows.append(row_str) return rows # 打印两个并排的H h_rows = grid_h() for line1, line2 in zip(h_rows, h_rows): print(f"{line1} {line2}")
方法二:处理原函数的返回字符串
不修改原函数,将返回的字符串按行分割后再拼接:
def grid_h(): result_str=''; for row in range(5): for column in range(5): if((column == 0 or column == 4) or (row == 2)): result_str = result_str + '*' else: result_str = result_str + ' ' result_str = result_str + '\n' return result_str # 处理并打印并排的H h_lines = grid_h().splitlines() combined_lines = [f"{line} {line}" for line in h_lines] print('\n'.join(combined_lines))
两种方法最终都会输出并排的两个H图案:
* * * * * * * * ***** ***** * * * * * * * *
内容的提问来源于stack exchange,提问作者Ao-Dango
相关产品推荐
相关产品推荐

