• python打印实心等边三角形和空心等边三角形


    #1 打印实心等边三角形
    n = 5
    for i in range(1, n+1): # 控制三角形的高,也就是层数
        for k in range(2*(n-i)):    # 控制每层第一个*的空格,从最后一层往上数分别是0, 2, 4, 6....,因为三角形越大,第一层空格反而越多,想起这个应该跟i有关,而且肯定是被减的那个数,发现刚好是2n-2i
            print("",end=" ")
        for j in range(1, 2*i):     # 控制每层*的个数,由于是1,3,5,7,9...所以很快知道是2i-1
                print("*",end=' ')
        print()
    
    #2 打印空心等边三角形(先出来了实心再考虑空心)
    '''
    思考:空心和实心的区别,空心的除了第一行和最后一行,其余行都是只有两个*,其它都是空格,因此最主要是找到空格个数
    空格个数你会发现和消失的*有关(跟实心相比),第二行消失1个,第三行消失3个,依次类推,是不是1,3,5,7,9,那么是不是就是2((i-1)-1)
    因为从第一行开始如果是1,3,5,7,9的话就是2i-1,那么从第二行开始肯定就是2((i-1)-1),那么消失的*个数知道了,那么空格和*是什么关系呢?
    可以发现是空格2倍的*+1,所以每行空格数就是2*(i-1)-1)*2 + 1
    '''
    n = 5
    for i in range(1, n+1): # 控制三角形的高,也就是层数
        for k in range(2*(n-i)):    # 控制空格
            print("",end=" ")
        if 1 < i < n:
            print("*",end="")
            for j in range(1, (2*(i-1)-1)*2 + 1 +1):
                    print(" ",end='')
            print("*", end="")
        else:
            for j in range(1, 2*i): # 控制每层*的个数,由于是1,3,5,7,9...所以很快知道是2i-1
                    print("*",end=' ')
        print()
  • 相关阅读:
    January 25th, 2018 Week 04th Thursday
    January 24th, 2018 Week 04th Wednesday
    January 23rd, 2018 Week 04th Tuesday
    January 22nd, 2018 Week 04th Monday
    January 21st, 2018 Week 3rd Sunday
    January 20th, 2018 Week 3rd Saturday
    January 19th, 2018 Week 3rd Friday
    January 18th, 2018 Week 03rd Thursday
    January 17th, 2018 Week 03rd Wednesday
    January 16th, 2018 Week 03rd Tuesday
  • 原文地址:https://www.cnblogs.com/leixiaobai/p/10811494.html
Copyright © 2020-2023  润新知