Python打印指定高度X对角线遇重复输出问题,求解决方案
问题分析与修复
你需要实现输入高度后,打印对应行数的右对齐X对角线(比如输入3时,每行依次增加一个空格后输出x),但当前代码的问题是嵌套循环导致重复打印了多组对角线:while循环会执行height次,每次循环里的for循环又会完整打印height行,最终输出行数是height的平方,完全不符合预期。
原代码问题拆解
原代码的嵌套逻辑出错了:
print("Input the height") height = int(input()) line = 0 column = 0 while column != height: column = column + 1 print() line = line + 1 for i in range(height): print(' '*i, end = 'x\n')
每次while循环都会触发一次完整的for循环,相当于每走一次外层循环就重新打印一遍整个对角线,自然会重复输出。
修复后的代码
只需要一层循环就能搞定,直接为每一行生成对应空格加x:
print("Input the height") height = int(input()) for i in range(height): print(' ' * i + 'x')
如果习惯用while循环,也可以这么写:
print("Input the height") height = int(input()) line = 0 while line < height: print(' ' * line + 'x') line += 1
效果验证
输入3时,输出如下:
x
x
x
内容的提问来源于stack exchange,提问作者Aisbou
相关产品推荐
相关产品推荐

