Python小白练习之打印实心菱形

题目:打印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小白练习之打印实心菱形】则可以输出完整实心菱形:
* *** ***** ******* ***** *** *

    推荐阅读