python打印翻转三角形

来源:互联网 发布:cctv发现之旅骗局知乎 编辑:程序博客网 时间:2024/06/14 00:34
请输入一个数:13            1            2 1            3 2 1            4 3 2 1            5 4 3 2 1            6 5 4 3 2 1            7 6 5 4 3 2 1            8 7 6 5 4 3 2 1            9 8 7 6 5 4 3 2 1            10 9 8 7 6 5 4 3 2 1            11 10 9 8 7 6 5 4 3 2 1            12 11 10 9 8 7 6 5 4 3 2 1            13 12 11 10 9 8 7 6 5 4 3 2 1  (参考)n   n-1   ...  11 10 9 8 7 6 5 4 3 2 1

编写函数如上模式。

提示用户输入一个数n,然后调用displayPattern(n)来显示这种模式。

def displayPattern(n):    dict = {}    for i in range(0, int(n)):          '''        int(i)+ 2:左闭右开          eg: n = 3,             i = 0,打印[1]   i = 1,打印[1,2]...        str(j)[::-1] : 单个字符串反转 eg:12 ===>21        键值对形式,添加到字典里面        '''        dict[i] = [str(j)[::-1] for j in range(1,int(i)+ 2)]    listNum = []    # print(dict)    for key,value in dict.items():        '''        {0: ['1'], 1: ['1', '2'], 2: ['1', '2', '3'],3: ['1', '2', '3', '4'],        循环取出字典中的value(对应的列表)        去除[],(将逗号,替换成空格, 将单引号’替换成空)===>添加到list列表        '''        value = str(value).strip('[]').replace(',','\t').replace("'",'')        listNum.append(value)        # print(value)    for k in range(0,int(n)):        '''        "\t" * %s : 空格*字符串的形式         % (int(n) - int(k) - 1))))[::-1] : %:格式化标志  int(n) - int(k) - 1:求有多少空格        '''        listNum[k] = (listNum[k] + (eval('"\t" * %s' % (int(n) - int(k) - 1))))[::-1]        print(listNum[k])    # print(dict)    # print(listNum)    num = int(input("请输入一个数:"))# 调用函数displayPattern(num)

-->运行结果:

请输入一个数:1512 13 2 14 3 2 15 4 3 2 16 5 4 3 2 17 6 5 4 3 2 18 7 6 5 4 3 2 19 8 7 6 5 4 3 2 110 9 8 7 6 5 4 3 2 111 10 9 8 7 6 5 4 3 2 112 11 10 9 8 7 6 5 4 3 2 113 12 11 10 9 8 7 6 5 4 3 2 114 13 12 11 10 9 8 7 6 5 4 3 2 115 14 13 12 11 10 9 8 7 6 5 4 3 2 1


原创粉丝点击