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

Python超级英雄名称生成脚本如何添加B/b输入对应分支逻辑?

超级英雄名称生成程序修改实现

修改说明

  • 原有get_power函数新增B/b输入的合法判定,返回Both作为双能力场景的标识
  • 抽离通用年限输入校验逻辑,避免单/双能力场景重复写校验代码
  • 新增双能力场景专属处理逻辑,依次询问寒冰、火焰持有时长,取时长更长的能力作为核心名称
  • 主流程新增分支判断,双能力场景直接跳转新问题组,跳过原有总年限询问步骤

完整代码

# 能力类型获取模块
def get_power(question):
    power = input(question).strip()
    if power.upper() == "H":
        return "Fire"
    elif power.upper() == "C":
        return "Ice"
    elif power.upper() == "B":
        return "Both"
    else:
        print("输入无效... 请输入 H 代表火焰能力,C 代表寒冰能力,B 代表同时拥有两种能力")
        return get_power("你的超能力属于火焰、寒冰还是二者皆有?:")

# 通用年限输入校验工具
def get_valid_year(question):
    try:
        year = int(input(question).strip())
        if 1 <= year <= 100:
            return year
        else:
            print("输入无效... 请输入1到100之间的数字")
            return get_valid_year(question)
    except ValueError:
        print("输入无效... 请输入合法数字")
        return get_valid_year(question)

# 年限转名称后缀逻辑
def get_year_suffix(year):
    return "Lightning" if year % 2 == 0 else "Shadow"

# 原有单能力年限处理模块
def get_year(question):
    year = get_valid_year(question)
    return get_year_suffix(year)

# 新增双能力场景处理模块
def handle_dual_power():
    ice_year = get_valid_year("你持有寒冰超能力多少年了?:")
    fire_year = get_valid_year("你持有火焰超能力多少年了?:")
    if ice_year > fire_year:
        core_power = "Ice"
        suffix = get_year_suffix(ice_year)
    elif fire_year > ice_year:
        core_power = "Fire"
        suffix = get_year_suffix(fire_year)
    else:
        # 两种能力持有时长相等时的自定义规则,可按需修改
        core_power = "FrostFire"
        suffix = get_year_suffix(ice_year)
    return core_power, suffix

# 主流程
if __name__ == "__main__":
    power = get_power("你的超能力属于火焰、寒冰还是二者皆有?:")
    if power == "Both":
        core_power, suffix = handle_dual_power()
    else:
        core_power = power
        suffix = get_year("你持有超能力总共有多少年了?:")
    print(f"恭喜!你的超级英雄名称是:{core_power} {suffix}")

运行规则说明

  • 输入H/h:后续询问总持有时长,生成火焰前缀的英雄名
  • 输入C/c:后续询问总持有时长,生成寒冰前缀的英雄名
  • 输入B/b:跳过总年限询问,依次问寒冰、火焰持有时长,取时长更长的能力作为前缀;时长相等时默认生成冰霜火焰组合前缀
  • 所有年限输入仅接受1-100之间的整数,输入非法会触发重新询问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 15:36:04