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

Python拼接两个字符串时提示无法找到变量,如何解决?

问题原因

Python的变量作用域规则规定:如果在函数内部尝试修改某个变量,解释器会默认将该变量判定为函数内部的局部变量,而非全局作用域的同名变量。你当前在handle_input函数内对word执行+=拼接操作属于修改变量的行为,解释器会优先查找函数内部的局部变量word,而你没有在函数内初始化该局部变量,因此会抛出变量未定义的报错。
你之前单独写word = letter未报错的原因是,该语句实际是在函数内部创建了一个和全局变量同名的局部变量,并没有尝试读取未定义的局部变量,因此不会触发报错,但此时你修改的也不是顶层定义的全局word。

解决方案

在函数内部修改全局变量前,使用global关键字声明该变量属于全局作用域即可,修改后的代码如下:

word_dict = PyDictionary()
repeats = 5
word = "e"

def handle_input(x, y, letter): 
    global word # 新增这行声明操作的是全局变量word
    word += letter

    print(word)

    coords = make_coords(x, y)
    for list in grid:
        for button in list:
           button.update(disabled=True)
    for coord in coords:
        x = coord[0]
        y = coord[1]
        list = grid[y]
        button = list[x]
        button.update(disabled=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 14:48:05