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

Python新手求助:调用自定义函数输入yes后程序中途停止

问题分析与修复方案

核心错误点

  • 变量未定义风险:如果输入既不是"yes"也不是"no",I从未被定义,执行到判断I的语句时会直接报错崩溃;就算输入"yes",后续判断逻辑也存在问题。
  • 类型不匹配:input()返回的是字符串,你却拿它和元组(1, 881)比较,两者类型完全不同,永远不会相等,所以哪怕输入正确答案也会被判定错误。
  • 逻辑结构混乱:第三个if没有嵌套在K == "yes"的分支里,不管用户输入什么(除了"no"直接返回),都会执行这个判断,进一步引发错误。

修复后的代码

def game():
    K = input("are you ready? ")
    if K == "no":
        return None
    if K == "yes":  
        I = input("what is 881 divisible by? (输入1或881即可) ")
        # 处理输入转整数,同时捕获非数字输入的情况
        try:
            num = int(I)
            if num in (1, 881):
                print("you won")
            else:
                print("better luck next time")
        except ValueError:
            print("请输入有效的数字!")
    else:
        print("请输入yes或no!")

修复说明

  • 新增非"yes"/"no"输入的处理逻辑,避免变量未定义的报错。
  • 将输入字符串转为整数,再判断是否属于目标数字集合,匹配题目要求的正确逻辑。
  • 加入异常捕获,处理用户输入非数字的情况,让程序更稳定。
  • 调整缩进,让代码逻辑层级更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:37:11