调用了eval()函数,评估函数,将字符串的最外面双引号打开,成为数字

for i in range(1,n+1,2):
print("{0:^{1}}".format("*" * i,n))

最关键的就是槽的使用,内部的槽,确定了画“*”的个数,外部的槽{},以n确定了行宽,以最宽的一行作为每一行宽度

再进一步:如何输出菱形?

#三角形输出
#菱形输出
n = eval(input())
for i in range(1,n+1,2):
    print("{0:^{1}}".format("*" * i,n+1))
for i in range(n-1,1,-2):
    print("{0:^{1}}".format("*" * (i-1),n+1))

三角形变为菱形,主要是再画一个倒三角形,然后底边比正的三角形少一行。

for i in range(n-1,1,-2):
    print("{0:^{1}}".format("*" * (i-1),n+1))

这是打印效果

加上的这两行意思和画正三角形差不多,主要就是注意 for in 的倒序。从大到小,前后颠倒一下即可,步长则改为-2。

打印的时候,从 for in 改成 n-2,也可以。

for i in range(n-2,1,-2):
    print("{0:^{1}}".format("*" * (i),n+1))

这样后续的 print 函数打印,就可以直接从 i 开始。

打印有问题,因为这样的话,1 是不包括的。

会出来这样的图案:

最后一行不是 * ,所以再次修改代码,将 1 改为 0 ,测试。

#菱形输出
n = eval(input())
for i in range(1,n+1,2):
    print("{0:^{1}}".format("*" * i,n+1))
for i in range(n-2,0,-2):
    print("{0:^{1}}".format("*" * (i),n+1))

最终输出的结果:

public static void main(String[] args){ System.out.println(args“ *”); System.out.println(args“ ***”); System.out.println(args“ *****”... swift [Application] The app delegate must implement the window property if it wants to use a main 报错 swift [Application] The app delegate must implement the window property if it wants to use a main 报错 Swift 5.2 Functions and Closures 功能和关闭 Swift 5.2 Control Flow 控制流