Python代码输出存在冗余内容,如何去除多余的输出行?
解决Python正方形图案输出末尾冗余行问题
你的代码出现末尾冗余行的核心原因是:get_square_pattern函数内部已经通过嵌套循环直接打印了带空格的正方形图案,同时还把所有🐟字符拼接成字符串返回,最后调用函数时又用print()输出了这个返回值,相当于重复输出了两次内容——前面5行是函数内部打印的带空格格式的图案,末尾那行连续🐟是打印函数返回的拼接字符串导致的。
解决方案1:让函数仅负责生成图案字符串(推荐,符合单一职责)
修改函数,让它生成带正确格式的图案字符串,内部不直接打印,外部调用时统一打印返回值:
def get_square_pattern(max_rows): emoji = '🐟' result = [] max_cols = max_rows for _ in range(max_rows): # 每行生成max_cols个带空格分隔的emoji row_content = ' '.join([emoji] * max_cols) result.append(row_content) # 用换行符拼接所有行,避免末尾多余换行 return '\n'.join(result) print(get_square_pattern(5))
解决方案2:让函数直接打印图案,不返回值(无需复用图案字符串时使用)
如果不需要把图案字符串用于其他场景,直接让函数完成打印逻辑,去掉返回语句,调用时直接执行函数即可:
def print_square_pattern(max_rows): emoji = '🐟' max_cols = max_rows for _ in range(max_rows): for _ in range(max_cols): print(emoji, end=' ') print() # 直接调用函数,不用print包裹 print_square_pattern(5)
内容的提问来源于stack exchange,提问作者DummyWComputer
相关产品推荐
相关产品推荐

