|
|

楼主 |
发表于 2015-11-2 18:01:23
|
显示全部楼层
已经自己研究出解决办法,代码如下:
s = int(input('请输入菱形总行数:')) #总行数
z = s // 2 + 1 #中间行
z1 = z * 2 - 1 #最大列
z2 = z1 // 2 + 1 #中间列
z3 = z - 2
i = 0 #当前行
print(s,z,z1,z2,z3)
while i < s:
if i < z:
j = 1 #当前列
while j <= z1:
if j >= z2 - i and j <= z2 + i:
print('*',end=' ')
else:
print(' ',end=' ')
j += 1
print('')
elif i >= z and i < s:
j = 1
while j < z1:
if j >= z2 - z3 and j <= z2 + z3:
print('*',end=' ')
else:
print(' ',end=' ')
j += 1
z3 -= 1
print('')
i += 1
自己也在网上查了下,如果使用for循环仅用10行左右代码即可实现,但是鉴于本人为初学者,此意为巩固while循环以及if分支语句知识点,所以勿喷不简洁,如有仅仅使用while及if语句实现打印实心菱形更简洁的方法,欢迎交流~:loveliness: |
|