小兔网

实例

#coding:utf-8rows = int(raw_input('输入列数: '))i = j = k = 1 #声明变量,i用于控制外层循环(图形行数),j用于控制空格的个数,k用于控制*的个数#等腰直角三角形1print "等腰直角三角形1"for i in range(0, rows): for k in range(0, rows - i): print " * ", #注意这里的",",一定不能省略,可以起到不换行的作用 k += 1 i += 1 print "\n" #打印实心等边三角形print "打印空心等边三角形,这里去掉if-else条件判断就是实心的"for i in range(0, rows + 1):#变量i控制行数 for j in range(0, rows - i):#(1,rows-i) print " ", j += 1 for k in range(0, 2 * i - 1):#(1,2*i) if k == 0 or k == 2 * i - 2 or i == rows: if i == rows: if k % 2 == 0:#因为第一个数是从0开始的,所以要是偶数打印*,奇数打印空格 print "*", else: print " ", #注意这里的",",一定不能省略,可以起到不换行的作用 else: print "*", else: print " ", k += 1 print "\n" i += 1 #打印菱形print "打印空心等菱形,这里去掉if-else条件判断就是实心的"for i in range(rows):#变量i控制行数 for j in range(rows - i):#(1,rows-i) print " ", j += 1 for k in range(2 * i - 1):#(1,2*i) if k == 0 or k == 2 * i - 2: print "*", else: print " ", k += 1 print "\n" i += 1 #菱形的下半部分for i in range(rows): for j in range(i):#(1,rows-i) print " ", j += 1 for k in range(2 * (rows - i) - 1):#(1,2*i) if k == 0 or k == 2 * (rows - i) - 2: print "*", else: print " ", k += 1 print "\n" i += 1#实心正方形print "实心正方形"for i in range(0, rows): for k in range(0, rows): print " * ", #注意这里的",",一定不能省略,可以起到不换行的作用 k += 1 i += 1 print "\n" #空心正方形print "空心正方形"for i in range(0, rows): for k in range(0, rows): if i != 0 and i != rows - 1: if k == 0 or k == rows - 1: #由于视觉效果看起来更像正方形,所以这里*两侧加了空格,增大距离 print " * ", #注意这里的",",一定不能省略,可以起到不换行的作用 else: print " ", #该处有三个空格 else: print " * ", #这里*两侧加了空格 k += 1 i += 1 print "\n"

执行输出结果:

输入列数: 4等腰直角三角形1 *   *   *   *   *   *   *   *   *   *  打印空心等边三角形,这里去掉if-else条件判断就是实心的              *     *   *   *       * *   *   *   * 打印空心等菱形,这里去掉if-else条件判断就是实心的              *     *   *   *       * *           *   *       *     *   *       * 实心正方形 *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *  空心正方形 *   *   *   *   *           *   *           *   *   *   *   *