python基础经典问题-字母金字塔

输入行数,打印如下字母金字塔图形:

输入:7 打印图形如下:

图形1

提示: 打印图案关键是找出其中的规律。 根据打印第几行,算出每行打印多少列。 输出的每一行包括三部分组成:空格、字符串和换行。

n=eval(input())
list1=list('ABCDEFGHIJKLMNO')     #正序输出的部分
list2=list('ONMLKJIHGFEDCBA')     #倒序输出的部分
for i in range(1,n+1):       #最外循环为打印行

    for j in range(n-i):    #打印空格
        print(' ',end='')   

    for k in range(1):      #打印倒序部分,循环一次
        code1 = ''.join(list2[-i:]) #逆向输出并从列表加入字符串
        print(code1,end='')

    for l in range(1):      #打印正序部分
        code2 = ''.join(list1[1:i])
        print(code2,end='')
    print('')

每部分原理写在注释了

也可以用ASCII代码编写,之后再更新。。

宝宝们求个三连。。

10.25更新:ASCII代码版

原理是分解为空格,正序,倒序三个部分三角形分别循环。

m=eval(input())
for i in range(m):
    for j in range(m-i-1):
        print(' ',end='')
    for l in range(i):
        print(chr(ord('A')+i-l),end='')
    for k in range(i+1):
        print(chr(ord('A')+k),end='')
    print('')

  • 22
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值