试题 基础练习 字母图形
资源限制
时间限制: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。
分析:根据题目要求输出n,m两个字符,分别用来指定输出的行数和每行的个数,所以要先设定两个变量存放行数n和个数m,之后再考虑每行输入的内容以及如何控制输出多少行与多少列,即可完成整个题目。
示例代码如下:
n,m = map(int,input().split()) #从键盘中输入两个数,其中n为此图形的行数,而m则为这一行输出字母的个数
for r in range(1,n+1): #进行n次循环每一次循环输出一行
if r==1: #if语句进行判断,判断输出的是否为该图形第一行,如果是第一行则执行以下操作
for l in range(1,m+1): #进行m次循环,输出m个字母
print(chr(65+l-1),end='') #因为是第一行所以从A开始输出输出m个
else: #如果不是第一行的话则执行以下循环
print('') #每输出一行之后就进行一次换行操作
for l in range(1,m+1): #进行m次循环,输出m个字母
if r-l>0: #if语句进行判断,如果r-l>0说明输出的字母为第一次出现字母A的左边
print(chr(65+r-l),end='') #65+r-l为第r行第l个的字母
else : #如果r-l>0不成立就说明这个字母开始从A输出
print(chr(65-r+l),end='') #65-r+l为从A开始输出的第r行第l个的字母
执行结果如下:
总结:本题主要考察对Python中ASCII中的使用使用chr()函数输出对应的字母,并且对循环,选择使用的灵活性进行考察。