Python while循环编程求助:实现指定数字星号替换格式的输出
问题解决:Python while循环实现对角线替换*输出
原代码存在的问题
- 缩进不规范:Python对代码缩进敏感度极高,你提供的代码中
y += 1、内层print语句的缩进层级混乱,运行时首先会触发缩进错误,无法正常执行。 - 逻辑不符合需求:原有逻辑是先完整打印1-5的数字,再单独追加打印
*,没有在对应位置做内容替换的判断,自然无法输出对角线为*的效果。
修正后代码(全while循环实现)
x = 1 while x <= 5: y = 1 while y <= 5: if y == x: print("*", end=" ") else: print(y, end=" ") y += 1 # 每行输出完成后换行 print() x += 1
实现逻辑说明
外层while循环用变量x控制当前行号,取值范围1到5;内层while循环用变量y控制当前行的列号,取值范围1到5。每次内层循环判断列号y是否等于当前行号x,相等就输出*,否则输出对应数字,所有输出默认以空格分隔,内层循环跑完一整行后换行,再执行下一行的输出逻辑。
运行上述代码即可得到你需要的目标输出格式。
内容的提问来源于stack exchange,提问作者user17219479
相关产品推荐
相关产品推荐

