使用while循环打印倒三角星号图案代码运行异常求助
代码存在的核心问题
- 死循环问题:内层
j和k的自增逻辑位置完全错误
你的j = j + 1和k = k + 1写在了最外层while i>0的末尾,根本没有进入对应的内层循环作用域。j初始值为1,内层while j < 3循环体内没有对j做自增,j永远等于1,循环永远不会退出;同理k在while k < i的循环体内也没有自增,k永远等于0,会一直打印星号。 - 嵌套逻辑错误:打印空格的循环和打印星号的循环应该是同级关系,你现在把打印星号的
k循环嵌套在了打印空格的j循环内部,完全不符合输出逻辑。 - 空格计数逻辑错误:你需要打印的前置空格数等于
4 - i(第一行i=4,0个空格;第二行i=3,1个空格,以此类推),你当前写的j < 4-1固定最多打印2个空格,无法匹配每行的空格需求。 - 缩进错误:第一行
i = 4前有多余缩进,会直接触发语法报错。
修正后的可运行代码
i = 4 while i > 0: # 打印前置空格 j = 0 while j < 4 - i: print(end = " ") j += 1 # 打印星号 k = 0 while k < i: print("*", end = " ") k += 1 print() i -= 1
内容的提问来源于stack exchange,提问作者MasonMount
相关产品推荐
相关产品推荐

