1.找思路
我们可以把菱形分为2部分
(1)分为空白
空白部分是从多到有规律
(2)数字组成
数字组成可以参考九九乘法表
(3)分成上下2部分来写
下面为上面的倒影
由以上3点可以得到
if (N%2==0): rows=N//2 else: rows=N//2+1
这个是菱形行数
#(1)打印上半部分: for i in range(1,rows+1): print(' '*(rows-i),'*'*(2*i-1))#这里的空白数量就是总行数减去当前的行数
#(1)打印下半部分: for j in range( N//2,0,-1): print(' '*(rows-j),'*'*(2*j-1))
这里可以加入循环来进行多次打印代码
所以我们得到
is_conutinue='Y' while is_conutinue in ['y','Y','yes']: #这就是循环 N=int(input('请输入需要打印菱形的行数')) if (N%2==0): rows=N//2 else: rows=N//2+1 #(1)打印上半部分: for i in range(1,rows+1): print(' '*(rows-i),'*'*(2*i-1)) #(1)打印下半部分: for j in range( N//2,0,-1): print(' '*(rows-j),'*'*(2*j-1)) # 多次循环打印 is_conutinue=input('还需要打印菱形图案吗?(y/n)')