a=eval(input())
x=(a+1)/2
x=int(x)
for i in range(x):
b="*"*(2*i-1)
c=" "*(x-i)
print("{}{}{}".format(c,b,c))
i循环是从0开始的, 第一次循环i是0 (2*i-1) 结果是-1
改成 for i in range(1,x+1):从1开始循环即可
你题目的解答代码如下:
a=eval(input())
x=(a+1)/2
x=int(x)
for i in range(1,x+1):
b="*"*(2*i-1)
c=" "*(x-i)
print("{}{}{}".format(c,b,c))
如有帮助,望采纳!谢谢!
你的i是从0开始的,如下修改:
a = eval(input())
x = (a + 1) / 2
x = int(x)
for i in range(x):
b = "*" * (2 * (i+1) - 1)
c = " " * (x - i+1)
print("{}{}{}".format(c, b, c))