蓝桥杯 基础练习 字母图形 python
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出格式
输出n行,每个m个字符,为你的图形。
样例输入
5 7
样例输入
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
数据规模与约定
1 <= n, m <= 26。
实现代码
a,b=map(int,input().split()) #map()根据提供的函数对指定序列进行映射,input().split()同时输入多个值数据类型为str
list1=[[0 for n in range(26)] for m in range(26)]
list2=[[0 for n in range(b)] for m in range(a)]
for n in range(26):
for m in range(26):
if m<n:
list1[n][m]=ord('A')+n-m
else:
list1[n][m]=ord('A')+m-n
for i in range(a):
for x in range(b):
list2[i][x]=list1[i][x]
print(chr(list2[i][x]),end=' ')
print()
注意事项
1.创建二维空列表
list2=[[0 for n in range(b)] for m in range(a)]
其中前方括号代表表示列,后方括号代表行
即创建了a行含有b个元素的列表
2.26个字母的遍历(ord函数和chr函数的使用)
26个字母遍历时我们先用ord函数将其转化为其对应的ASCII值
进行加减后再用chr函数还原
a=ord('A')
print(a)
b=chr(a)
print(b)
ord()函数返回类型为int类型
可以进行加减运算
chr()函数与ord()函数作用相反
审题
题目中输出数据中各字母间无空格,容易出错