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

Python中‘method’ object is not subscriptable错误如何解决?——猜数字游戏代码问题

解决‘method’ object is not subscriptable异常的方案

这个报错的原因非常直接——你把函数调用的语法搞混了!randrange是Python random模块里的一个函数,函数调用需要用圆括号(),但你误用了方括号[](方括号是给列表、字典这类可下标访问的对象做索引用的),所以Python会把randrange当成一个可下标访问的对象,自然就抛出这个异常了。

修正后的核心代码

首先要确保你已经导入了random模块,然后把方括号改成圆括号即可:

import random

# 先获取用户输入的起始和结束数字(假设你已经完成这部分逻辑)
num1 = int(input("请输入起始数字: "))
num2 = int(input("请输入结束数字: "))

while True:
    # 关键修正:把[]替换成()
    random_num = random.randrange(num1, num2)
    # 后续可以继续编写游戏逻辑,比如让用户猜测这个随机数等

额外实用提示

  1. 区间范围注意:randrange(num1, num2)生成的是左闭右开区间的随机整数,也就是包含num1但不包含num2。如果想让范围包含num2,可以改用random.randint(num1, num2),这个函数是闭区间的。
  2. 输入合法性校验:为了避免用户输入的起始数字大于等于结束数字导致randrange抛出ValueError,可以在获取输入后加个判断:
while num1 >= num2:
    print("起始数字必须小于结束数字,请重新输入!")
    num1 = int(input("请输入起始数字: "))
    num2 = int(input("请输入结束数字: "))

这样你的循环就能正常运行,不会再出现那个异常了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 09:37:40