Python探索之路(五)---打印三角形阵列

本文介绍了如何使用Python中的for循环来创建一个简单的三角形图案。通过逐步增加每行打印的数字数量,形成一个递增的三角形阵列。

            前面学习了for循环,就想着能不能用这个做出点好玩的东西,折腾半天出来了一个三角形的阵列,分享一下哈

 

#coding=utf-8
for i in range(1,11):
    for k in range(1,i):
        print k,
        k +=1
    i +=1
    print "\n"


效果图走一个




对了,前面一直没提,pathon对于文本缩进和空格有着相当大的要求,注意哈

下面是对“输出三角形字符阵列”这一题目的完整解答。这类题目通常出现在程序设计练习中(如PTA、洛谷等),要求按特定格式输出由字符组成的三角形阵列--- ### 题目描述(模拟常见版本): 输入一个大写字母 `ch`,表示起始字符,要求输出一个字符三角形阵列。例如,当输入 `'E'` 时,输出如下: ``` A BC DEF GHIJ KLMNO ``` 即:第 i 行有 i 个连续的大写字母,从 A 开始依次递增,按行输出,形成一个直角三角形。 > 注意:字母是循环使用的吗?一般不循环,假设输入的字母足够小(比如 ≤ 'Z'),保证不会超过 Z。 我们假设输入的字符在 'A' 到 'Z' 之间,并且能构成完整的三角形(比如输入 'E',则最多需要前 5 行,共 1+2+3+4+5=15 个字母,从 A 开始取 15 个字母即可)。 --- ### 解决方案(Python 实现) ```python ch = input().strip() n = ord(ch) - ord('A') + 1 # 计算需要多少行 current_char = 0 # 当前字符偏移量,0 表示 'A' for i in range(1, n + 1): row = "" for j in range(i): row += chr(ord('A') + current_char) current_char += 1 print(row) ``` --- ### 代码解释: - `ord(ch) - ord('A') + 1`:将输入字符转换为对应的行数。例如 `'E' -> 69-65+1 = 5`,所以输出 5 行。 - `current_char` 是一个计数器,记录当前应该输出的是从 `'A'` 开始的第几个字母。 - 外层循环控制行数 `i` 从 1 到 `n`。 - 内层循环控制每行输出 `i` 个字符。 - `chr(ord('A') + current_char)` 将数字转回对应大写字母。 - 每次使用后 `current_char++`,保持连续。 - 构造完一行后打印--- ### 示例运行: 输入: ``` D ``` 输出: ``` A BC DEF GHIJ ``` 说明:共 4 行,总共用了 1+2+3+4=10 个字母(A 到 J)。 --- ### 边界考虑: - 如果输入是 `'A'`,则只输出一行:`A` - 字母到 `'Z'` 为止,若总字符数超过 26(比如输入 `'Z'`,需要 26 行,总字符数为 351),会越界。 - 若题目不允许越界,则应限制输入范围或做模运算(但通常题目保证合法输入)。 --- ### 增强版(安全判断是否超 'Z'): ```python ch = input().strip() n = ord(ch) - ord('A') + 1 total_chars = n * (n + 1) // 2 if total_chars > 26: print("Error: Not enough letters!") else: current_char = 0 for i in range(1, n + 1): row = "" for j in range(i): row += chr(ord('A') + current_char) current_char += 1 print(row) ``` --- ### 相关问题:
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值