Python - 函数不返回变量(字符串)
Python - function is not returning variable (string)
我对 Python 很陌生,这是我 CS 课程中的编程项目。除了最后一行代码:
之外,该代码似乎可以完美运行
return finalWord
没有return任何东西。我尝试将其替换为:
print(finalWord)
它确实正确打印了所有内容。
基本上在程序中,我必须创建一个伪随机生成数字的 Random class,然后在 class 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)
提前致谢。
如果您直接调用该函数,则必须对返回值执行某些操作(如打印)或将其存储在变量中供以后使用。代码是 "not working" 因为您永远不会调用该函数,至少在您提供的摘录中不会。
正在打印响应:
print(instance_name.make())
将其存储在变量中:
variable_name = instance_name.make())
代码是 class 的实例被调用的地方 instance_name
在你的代码中,你写了potato.make(5)
。该函数运行,但不打印任何内容或将其存储在变量中。要打印响应,您需要执行以下操作:
print(potato.make(5))
我对 Python 很陌生,这是我 CS 课程中的编程项目。除了最后一行代码:
之外,该代码似乎可以完美运行 return finalWord
没有return任何东西。我尝试将其替换为:
print(finalWord)
它确实正确打印了所有内容。
基本上在程序中,我必须创建一个伪随机生成数字的 Random class,然后在 class 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)
提前致谢。
如果您直接调用该函数,则必须对返回值执行某些操作(如打印)或将其存储在变量中供以后使用。代码是 "not working" 因为您永远不会调用该函数,至少在您提供的摘录中不会。
正在打印响应:
print(instance_name.make())
将其存储在变量中:
variable_name = instance_name.make())
代码是 class 的实例被调用的地方 instance_name
在你的代码中,你写了potato.make(5)
。该函数运行,但不打印任何内容或将其存储在变量中。要打印响应,您需要执行以下操作:
print(potato.make(5))