蓝桥杯练习系统字母图形(python)

问题描述

利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式

输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。

输出格式

输出n行,每个m个字符,为你的图形。

参考代码

# 方法一:
str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
n, m = list(map(int, input().split()))
for i in range(n):
    behind_str = str[:m]
    front_str = str[1:i + 1]
    result = front_str[::-1] + behind_str
    print(result[0:m])
# 方法二:
n, m = list(map(int, input().split()))
for i in range(n):
    for j in range(m):
        if i == j:
            print("A", end="")
        elif i > j:
            print(chr(i - j + 65), end="")
        else:
            print(chr(j - i + 65), end="")
    print("")

解题思路

1.方法一是把每行看作两部分字符串拼接而成,后半部分是字母表的[0:m],前半部分是从B开始取到i+1个字母(不包括第i+1个)的逆序。
输出的时候需要限定m列,不加限制的话,输出结果是这样子的:
在这里插入图片描述如果不理解的话可以在第四行加断点调试,看看每次循环之后变量中存储的内容
2.方法二是从元素的下标着手,行号和列号相等的位置填充的元素一定是A,行号大于列号的位置填充的是A往后数(行号减列号)个元素,行号小于列号的位置填充的是A往后数(列号减行号)个元素
3.chr() 函数
用一个范围在 range(256)内的(就是0~255)整数(可十进制可十六进制,如果输入十六进制需要带上前缀0x)作参数,返回一个对应的字符。

print(chr(65))
# 输出
A

在这里插入图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值