You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求教:如何修改三角形打印函数以循环输出指定字符序列

修改金字塔字符循环的解决方案

首先,先帮你梳理下原代码里的两个小问题:

  • 函数maketriangle的参数num完全被内部的input覆盖了,没发挥作用;
  • 最后调用print(maketriangle(num))会额外输出None,因为函数没有返回值,直接调用函数就好。

接下来解决核心需求:让字符按?!#$循环显示。我们可以这样做:

  1. 先定义要循环的字符序列,比如chars = '?!#$';
  2. 在内层循环中,利用取模运算(%)来循环获取字符——因为取模会让索引在字符序列的长度范围内循环,比如j % 4会得到0、1、2、3、0、1...这样的循环索引;
  3. 替换掉原来打印"*"的逻辑,改成打印对应索引的字符。

修改后的完整代码如下:

def maketriangle(number):
    # 定义循环的字符序列
    chars = '?!#$'
    for i in range(0, number):
        for j in range(0, i+1):
            # 用取模实现字符循环,j模字符长度得到循环索引
            print(chars[j % len(chars)], end='')
        # 直接print()即可换行,避免原代码的多余空行
        print()

# 外部获取输入,让函数更通用(也可以直接传入数字,比如maketriangle(4))
num_input = int(input("Enter a number: "))
maketriangle(num_input)

测试输入4时,输出就是你预期的效果:

?
?!
?!#
?!#$

如果输入5的话,第五行会是?!#$?,完美实现循环效果~

内容的提问来源于stack exchange,提问作者So Heum Hwang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:14:36