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))

则可以输出完整实心菱形:

    *
   ***
  *****
 *******
  *****
   ***
    *

你可能感兴趣的:(基础版)