Python - 函数不返回变量(字符串)

时间:2016-10-29 04:22:46

标签: python return-value

我对Python很新,这是我CS课程中的编程项目。代码似乎在最后一行代码中完全可以工作:

 return finalWord

不会返回任何内容。我试过替换它:

 print(finalWord)

它确实可以正确打印所有内容。

基本上在程序中,我必须创建一个随机类,伪随机生成数字,然后在Nonce类中,向字典添加几个不同的单词,并使用字典创建新的随机单词。

class Random:

    def __init__(self, seed):
        self.seed = seed

    def next(self, range):
        self.seed = (7 ** 5 * self.seed) % (2 ** 31 - 1)
        return self.seed % range

    def choose(self, objects):
        return objects[self.next(len(objects))]

class Nonce:

    def __init__(self, seed):
        self.first = []
        self.follow = {}
        self.random = Random(seed)

    def add(self, word):
        self.first += [word[0]]
        for x in range(0, len(word) - 1):
            self.follow.setdefault(word[x], []).append(word[x + 1])
        return None

    def make(self, size):
        nextLetter = self.random.choose(self.first)
        finalWord = nextLetter

        for x in range(1, size):
            if nextLetter in self.follow:
                followList = self.follow[nextLetter]
                nextLetter = self.random.choose(followList)
                finalWord += nextLetter
            else:
                finalWord += self.random.choose(self.first)

        return finalWord

potato = Nonce(101)
potato.add('python')
potato.add('java')
potato.add('html')
potato.make(5)

提前致谢。

1 个答案:

答案 0 :(得分:3)

如果直接调用该函数,则必须对返回的值执行某些操作(如打印它)或将其存储在变量中以供以后使用。代码是"不工作"因为你永远不会调用这个函数,至少在你提供的摘录中没有。

打印回复:

print(instance_name.make())

将其存储在变量中:

variable_name = instance_name.make())

代码是类的实例被称为instance_name

的地方

在您的代码中,您编写了potato.make(5)。该函数运行,但不打印任何内容或将其存储在变量中。要打印响应,您需要执行以下操作:

print(potato.make(5))