Python初学者求助:如何调整现有代码实现指定样式的星号图案打印
星号打印代码修改方案
现有代码问题
- 打印星号时设置了
end = " ",每个星号之间会多出空格,目标图案的星号是连续无间隔的,需要把结尾参数改为空字符串 - 原有逻辑仅能输出「星数从1递增到输入值、再从输入值-1递减到1」的5行内容(以输入3为例),和你给出的8行目标图案缺少后续输出逻辑,需要补充对应打印规则。
修改后代码
简化写法(无需嵌套循环,更易理解)
num = int(input("Enter an integer number greater than or equal to 1: ")) # 第一阶段:1个星递增到num个星 for x in range(1, num + 1): print("*" * x) # 第二阶段:num-1个星递减到1个星 for x in range(num - 1, 0, -1): print("*" * x) # 第三阶段:补充目标图案后续的打印内容 for x in range(num - 1, 0, -1): print("*" * x) print("*")
保留原有嵌套循环的修改写法
num = int(input("Enter an integer number greater than or equal to 1: ")) if num > 1: for x in range(0, num): for y in range(0, x+1): # 把end的空格改为空字符串 print("*", end = "") print("") for x in range(num,1,-1): for y in range(0,x-1): # 把end的空格改为空字符串 print("*", end="") print("") # 补充后续输出逻辑 for x in range(num,1,-1): for y in range(0,x-1): print("*", end="") print("") print("*")
输入3运行上述代码,就能得到你给出的目标星号图案。如果后续你需要调整输出规则,直接修改对应循环的范围即可。
内容的提问来源于stack exchange,提问作者TNandarsu
相关产品推荐
相关产品推荐

