题目:打印7层实心菱形
分析:由于菱形是对称的,可以将其分为上下两层分别打印。首先看上层图形,第一层在第4个位置有一个*,第二层从第三个位置开始有三个#,第三层在第二个位置开始有5个#,第四次从第一个位置开始有7个#,所以应该控制空格和#的输入情况来进行打印上层菱形
首先进行第一次尝试:
rows = int(input('请输入腰长:'))
for i in range(0,r):
for j in range(0,r-i):
print('*'),
print("\n")#Python中print自带换行
输出结果是不正确的 引以为戒
以下是正确练习及调试的过程:
for i in range(1, 5):
for j in range(5 - i):
print('',end = ' ')
for k in range(1,2*i):
#print("*",end = ' ')
观察后认为k循环可省略,进行如下改进:
for i in range(1, 5):
for j in range(5 - i):
print('',end = ' ')
print("*" * (2 * i-1 ))
后又进行调试,直接变成一层循环:
for i in range(1, 5):
print(' '*(5-i),end = '')
print("*" * (2 * i-1 ))
运行结果为:
*
***
*****
*******
同理,可以写出下层菱形的循环代码:
for c in range(1,4):
print(" "*(c+1),end = '')
print("*"*(2*(4-c)-1))
运行结果为:
*****
***
*
将代码块合在一起调试:
for i in range(1, 5):
print(' '*(5-i),end = '')
print("*" * (2 * i-1 ))
for c in range(1,4):
print(" "*(c+1),end = '')
print("*"*(2*(4-c)-1))
【Python小白练习之打印实心菱形】则可以输出完整实心菱形:
*
***
*****
*******
*****
***
*