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

Python随机笑话生成器代码故障求助:实现双模板随机填充

Python随机笑话生成器代码修复方案

原代码问题分析

  1. 变量顺序错误:joke列表定义在x、y、z之前,运行时会抛出NameError,因为引用了未定义的变量。
  2. 模板逻辑错误:joke列表存储的是静态字符串,不会执行random.choice()调用,输出的只是包含代码文本的字符串,而非填充后的笑话。

修复后的代码

import random

# 先定义内容列表,确保后续模板能正确引用
x = ["Porkus", "Celery", "Gartic Phone", "Hououin"]
y = ["hit the griddy", "american all over everyone", "distract the shooter by shouting bingus"]
z = ["ninjago 1989 conspiracy", "conspiracy", "borkus junior", "holocaust", "Kurisu"]

# 用lambda表达式定义两个笑话生成逻辑
joke_generators = [
    lambda: f"{random.choice(x)} is the type of guy to {random.choice(y)} during a school shooting",
    lambda: f"lego {random.choice(z)}"
]

# 随机选择一个生成器并执行,输出最终笑话
print(random.choice(joke_generators)())

修复细节说明

  • 调整变量顺序:将x、y、z的定义移到模板之前,避免变量未定义的错误。
  • 动态生成逻辑:用lambda表达式封装每个笑话的生成规则,确保每次选择模板时都会重新调用random.choice()获取随机内容。
  • f-string格式化:用简洁直观的方式拼接动态内容和固定文本,替代原代码中错误的字符串拼接写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 20:25:15