打印菱形
1、题目要求
在屏幕上输出一个菱形,如下,
*
***
*****
*******
*********
*******
*****
***
*
2、程序分析
- 程序必然要一行一行的输出,因此,只要解决掉了单行如何输出,就解决了菱形如何输出
- 中间的一行决定了最多输出多少个 * ,每一行输出多少个 * 取决于行号是多少
3、示例代码
#coding=utf-8
import math
def get_line(line_index,line_count):
# 获得中间这行
middle_line = (line_count-1)/2
# 距离中间行越远,输出的 * 越少,每行递减两个
diff = int(math.fabs(middle_line - line_index))
return diff*' ' + '*'*(line_count-diff*2) + diff*' '
def print_diamond(line_count):
'''line_count是中间行可以输出的*的数量'''
if line_count % 2 != 1 or line_count < 3:
print u'请输入正确的奇数'
return
for i in range(line_count):
print get_line(i,line_count)
print_diamond(9)