【问题标题】:Problems passing variables between functions在函数之间传递变量的问题
【发布时间】:2015-03-12 00:46:13
【问题描述】:

我正在尝试制作一个字谜程序,该程序要求用户输入一个混乱的单词,在文本文件中搜索该字谜并打印文本文件中输入的字谜单词。

word_in = input('Please enter a jumbled word: ')


def permutations(word):
    if len(word)<=1:
        return [word]
    #get all permutations of length N-1
    perms=permutations(word[1:])
    char=word[0]
    result=[]
    #iterate over all permutations of length N-1
    for perm in perms:
    #insert the character into every possible location
        for i in range(len(perm)+1):
            result.append(perm[:i] + char + perm[i:])
    return result

permutations(word_in)

def clean():
    list = permutations(word_in)
    print(list)


clean()

permutation() 正确返回排列,但我想操作列表以删除重复项并在文本文件中搜索生成的字谜。如何将该列表添加到另一个函数?我尝试将参数更改为 word 或 word_in 并将其留空,但似乎没有任何效果。

【问题讨论】:

  • 不是解决方案,而是一个提示:不要将 Python 变量命名为“list”——您将覆盖内置类型 list 的名称。使用诸如word_list 之类的描述性内容。
  • 我不确定我是否理解让您感到困惑的地方。您的clean 函数将来自permutations 的结果保存在一个名为list 的变量中,这似乎是您所要求的(尽管作为grayshirt cmets,这是一个错误的变量名选择)。你能澄清一下当前代码到底有什么问题吗?
  • 像在 clean 中那样创建一个函数来调用一个函数似乎毫无意义。

标签: python


【解决方案1】:

您为什么不返回列表或保留变量全局以进行操作?

data = permutations(word_in) # global scope

【讨论】:

    猜你喜欢
    • 2020-07-02
    • 2013-04-09
    • 2013-03-07
    • 1970-01-01
    • 2017-03-01
    • 2019-09-12
    • 1970-01-01
    相关资源
    最近更新 更多