[题目描述]
输入一个正整数n,要求输出一个n行n列的正方形图案(参考样例输入输出)。图案由大写字母组成。
其中,第1行以大写字母A开头,第2行以大写字母B开头,以此类推;在每行中,第2列为第1列的下一个字母,第3列为第2列的下一个字母,以此类推;特别的,规定大写字母Z的下一个字母为大写字母A。
输入:
输入一行,包含一个正整数n。约定2≤n≤40。
输出:
输出符合要求的正方形图案。
样例输入1
3
样例输出1
ABC
BCD
CDE
样例输入2
5
样例输出2
ABCDE
BCDEF
CDEFG
DEFGH
EFGHI
来源/分类(难度系数:一星)
完整代码如下:
a=int(input())
b=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
d=b[:]
b=b+d
c=1
while c<a+1:
sum=''
for i in range(a):
sum+=b[i]
print(sum)
for j in range(1):
b.append(b[0])
del b[0]
c+=1
代码解释:
“a=int(input()) ”,让用户输入所要画的正方形的边长。
“b=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
d=b[:]
b=b+d
c=1 ”,复制列表b为d,然后合并列表b与d为新列表b,保证i值在列表b的长度范围内。设置循环密码子c的起始值为1。
“while c<a+1:
sum=''
for i in range(a):
sum+=b[i]
print(sum)
for j in range(1):
b.append(b[0])
del b[0]
c+=1 ”,当c<a+1时,先打印列表b的前c位,并将其连接为字符串。然后在列表b的末尾添加一个b[0],接着删除列表b开头的b[0](达到循环列表b中所有元素的目的)。
运行效果展示: