题目
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出格式
输出n行,每个m个字符,为你的图形。
解析
一、input()函数获得各个输入
二、正反字符串进行拼接
三、使用行数限制循环次数,列数限制输出元素个数
代码
代码修改
n,m = map(int,input().split())
a='ABCDEFGHIJKLMNOPQRSTUVWXYZ' #以第一次获得的字符串为基准进行切片
for i in range(n):
s=a[0:m]
#ABCDEFG
print(s[1:i+1][::-1],s[:m-i])
运行结果
代码更新(大佬投稿)
n,m = map(int,input().split(' ')) # 将输入的字符串根据空格分割,并转化成数字列表
first_chr = 65 # A的ascii码
for i in range(n):
line = '' # 初始化每一行的内容
for j in range(m):
# 核心方法:输出内容为大写字母A不断右移,并且A左侧和A右侧的内容对称,那么就可以用A的ASCII码加上行列位置之差的绝对值得到每一行的内容
line+=(chr(first_chr + abs(j - i)))
print(line)