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

Python调用全局变量'timesUsrPlayed'触发Pylance未定义报错咨询

问题修复方案

错误根因

Python作用域规则规定:如果函数内部对某个变量执行赋值操作(timesUsrPlayed += 1本质属于赋值操作),默认会将该变量识别为函数内部的局部变量。你仅在全局作用域定义了timesUsrPlayed,未在randomPartOfGame函数内声明要使用全局变量,因此Pylance会抛出未定义变量的报错。

修复步骤

  • 第一步:在randomPartOfGame函数首行添加global timesUsrPlayed声明,显式指定该变量使用全局作用域的定义
  • 第二步:补充导入time模块,原代码mainGameFunction中调用了time.sleep但未导入该模块,直接运行会触发模块不存在的报错
  • 第三步:调整计数逻辑顺序,没猜中时先执行计数再递归调用,避免次数统计顺序错误

修复后完整代码

import os
import random
import time

# 清屏函数
clear = lambda: os.system('cls')

# 游戏次数统计
timesUsrPlayed = 0

def randomPartOfGame():
    global timesUsrPlayed
    n = random.randint(0,6)
    p = random.randint(0,6)
    print(f"{n} 和 {p}")

    if n != p:
        print("抱歉请再试一次")
        timesUsrPlayed += 1
        randomPartOfGame()
    else:
        print(f"恭喜你成功了!你一共尝试了{timesUsrPlayed}次才摇出双骰子相同点数")

def mainGameFunction():
    print('游戏开始...')
    time.sleep(2)
    clear()
    print('欢迎游玩,你需要摇出两个点数相同的骰子才算获胜')
    randomPartOfGame()

if __name__ == "__main__":
    mainGameFunction()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:27:02