请输入一个数: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)
-->运行结果:
请输入一个数:15
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
14 13 12 11 10 9 8 7 6 5 4 3 2 1
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1