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

Python函数间变量/列表传递与调用问题求助

Python函数间变量/列表传递与调用问题求助

我太懂你这种卡壳的感觉了——变量找不到、函数调用逻辑乱,还被要求不能改指定函数,简直越调越懵。咱们先把你的问题拆解开,一步步把代码掰回正轨:

你的代码里的核心问题

  • 你从来没调用loadWords()去生成真正的words列表,全局范围内根本没有这个变量,自然会报“未定义”
  • 最后一行的print(p(pickWord(words)))完全搞反了逻辑:你把pickWord的返回值当成函数来调用了,而且p本身是pickWord内部的局部变量,外部根本访问不到
  • pickWord返回的是随机索引,你需要用这个索引去words列表里取对应的单词,而不是直接打印索引

遵守规则的修正版代码

因为要求不能改loadWords函数和pickWord的参数,所以我们只需要修正外部的调用逻辑就行:

import random

def loadWords():
    f = open("wordle_words.txt", encoding="utf-8")
    words = []
    for word in f:
        words.append(word.rstrip())
    return words

def pickWord(words):
    p = random.randint(0, len(words) -1)
    return p

# 第一步:调用loadWords拿到words列表,存在变量里
words_list = loadWords()
# 第二步:把words列表传给pickWord,拿到随机索引
random_index = pickWord(words_list)
# 第三步:用索引取单词然后打印
print(words_list[random_index])

关键逻辑解释

  1. 获取words列表:loadWords是用来生成列表的函数,你必须调用它(loadWords())才能拿到里面返回的列表,把它存在一个外部变量(比如words_list)里,这样才能传给pickWord
  2. 函数间传递:pickWord需要接收一个列表参数,所以直接把刚才拿到的words_list传进去就行,它会返回一个随机的索引值
  3. 正确取值打印:拿到索引后,用words_list[random_index]就能取出对应的随机单词,再打印就没问题了

你之前纠结的“全局变量”“类型注解”其实都是走偏了——根本不需要全局变量,只要通过函数的返回值把局部变量带出来,存在外部变量里就行,完全不用搞那些复杂的操作。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 11:19:33