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

Python脚本运行后空白无响应,求生命系统问答游戏修复方案

问题分析与修复方案

导致屏幕空白的核心原因

  1. 未执行主函数:你定义了main()函数,但脚本末尾没有调用它,导致代码完全未运行。
  2. 无限循环阻塞:main()开头的while True循环会无限执行(初始生命值为3,永远不会触发break),卡死在循环中,后续输入和逻辑永远无法执行。

其他功能缺陷

  1. 启动输入逻辑错误:若用户输入作弊选项,会同时触发else和后续独立if,导致生命值被重复扣除(直接变为-3)。
  2. 答错未扣血:当前代码仅打印提示,未实现生命值扣除逻辑。
  3. 生命值归0后未终止:即使生命值耗尽,后续题目仍会继续。
  4. 缺少主动退出功能:未处理用户立即结束游戏的输入需求。

修复后的完整代码

import time

livesRemaining = 3

def main():
    global livesRemaining
    # 启动界面输入处理
    q = input("欢迎来到古希腊神祇知识测试!严禁查资料!\n要开始测试请输入:Ok i wont search anything up.\n不想开始请输入:i dont care i will search the answers up.\n输入quit可直接退出游戏:")
    
    # 处理启动选项
    if q.strip() == "Ok i wont search anything up.":
        print("好的,祝你好运!")
    elif q.strip() == "i dont care i will search the answers up.":
        print("你个作弊者!这轮游戏你不能玩了!")
        livesRemaining = 0
    elif q.strip().lower() == "quit":
        print("游戏已结束,再见!")
        return
    else:
        print("再见,下次再见!")
        livesRemaining = 0
    
    # 生命值为0时直接终止
    if livesRemaining == 0:
        return
    
    time.sleep(2)
    
    # 第一题
    q1 = input("希腊的睡眠之神是谁?")
    if q1.strip().lower() == "quit":
        print("游戏已结束,再见!")
        return
    q1 = q1.lower()
    if q1 == "hypnos":
        print("恭喜你,小学社会课没白上!")
    else:
        print("哈哈,居然没认真听小学社会课!")
        livesRemaining -= 1
        print(f"剩余生命值:{livesRemaining}")
        if livesRemaining == 0:
            print("生命值耗尽,游戏结束!")
            return
    
    time.sleep(2)
    
    # 第二题
    q2 = input("希腊的黑夜女神叫什么名字?")
    if q2.strip().lower() == "quit":
        print("游戏已结束,再见!")
        return
    q2 = q2.lower()
    if q2 == "nyx":
        print("恭喜你,小学社会课没白上!")
    else:
        print("哈哈,居然没认真听小学社会课!")
        livesRemaining -= 1
        print(f"剩余生命值:{livesRemaining}")
        if livesRemaining == 0:
            print("生命值耗尽,游戏结束!")
            return
    
    # 全部题目完成提示
    print("测试完成!你的剩余生命值:", livesRemaining)

# 调用主函数启动游戏
if __name__ == "__main__":
    main()

关键修复说明

  • 添加函数执行入口:通过if __name__ == "__main__": main()确保主函数被调用。
  • 移除阻塞循环:删除了无意义的while True循环,改为每次扣血后检查生命值,及时终止游戏。
  • 修复启动逻辑:用elif替代独立if,避免重复扣血;新增quit退出选项。
  • 实现扣血机制:答错题目扣除1点生命值,打印剩余值,归0时立即结束游戏。
  • 增加全局退出:每个输入环节都检查quit指令,支持用户随时终止游戏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:02:47