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

如何按照星号模式循环替换消息字符实现指定格式化输出?

代码错误原因
  • 分支逻辑错误:原代码将字符处理逻辑全部放在c != 消息长度的else分支内,当c等于消息长度时,仅重置c的值,直接跳过了当前字符的处理,导致大量星号替换遗漏,最终输出不符合预期。
  • 空格处理位置错误:空格判断被嵌套在else分支内,计数器到达边界时空格无法正常写入结果。
  • 冗余的字符串预处理:jstr = [x.strip(" ") for x in message]属于无效操作,直接遍历原消息字符串即可完成字符取值。
修正后的可运行代码
def main():
    message = "123"
    pattern = "** *** **** * **"
    print(patterned_message(message, pattern))

def patterned_message(message, pattern):
    c = 0
    res = ""
    msg_length = len(message)
    for char in pattern:
        if char == "*":
            # 按顺序取消息字符,超出长度自动循环
            res += message[c]
            c = (c + 1) % msg_length
        else:
            # 非星号字符直接保留(含空格)
            res += char
    return res        

if __name__ == '__main__':
    main()

运行后输出结果为:12 312 3123 1 23,与预期一致。

内容的提问来源于stack exchange,提问作者Fluke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:39:03