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

如何根据输入整数N实现谢尔顿敲门序列循环输出的Python问题

问题诊断

现有代码存在3个核心问题:

  • 字符串拆分错误:给定的原始字符串没有空格分隔,调用无参数的split()方法默认按空白字符切割,最终只能得到包含完整字符串的单元素列表,无法拆分出单个单词。
  • 缺少循环逻辑:没有实现基础序列的循环重复,也没有根据输入的时长N截取对应长度的内容。
  • 无输入接收逻辑:没有读取用户输入的整数N的相关代码。
修正后可运行代码
# 读取输入的整数N
n = int(input())
# 定义谢尔顿敲门的基础循环序列,每4个元素为一轮
base_seq = ['knock!', 'knock!', 'knock!', 'penny!']
# 循环取前N个元素拼接为结果字符串
result = ''.join([base_seq[i % 4] for i in range(n)])
# 输出结果
print(result)

如果一定要基于你给出的原始字符串做拆分,可以将基础序列的定义部分替换为以下代码:

raw_str = "knock!knock!knock!penny"
base_seq = [item + '!' for item in raw_str.split('!') if item]
效果验证

输入为6时,程序会取前6个元素依次拼接,最终输出和你给出的预期完全一致:knock!knock!knock!penny!knock!knock!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 12:39:01