我对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)
提前致谢。
答案 0 :(得分:3)
如果直接调用该函数,则必须对返回的值执行某些操作(如打印它)或将其存储在变量中以供以后使用。代码是"不工作"因为你永远不会调用这个函数,至少在你提供的摘录中没有。
打印回复:
print(instance_name.make())
将其存储在变量中:
variable_name = instance_name.make())
代码是类的实例被称为instance_name
在您的代码中,您编写了potato.make(5)
。该函数运行,但不打印任何内容或将其存储在变量中。要打印响应,您需要执行以下操作:
print(potato.make(5))