Python 3.x 使用范围内的x时出现语法错误

Python 3.x 使用范围内的x时出现语法错误,python-3.x,syntax-error,Python 3.x,Syntax Error,我正在尝试制作一个简单的程序,使用probs.generate with for x在0,99范围内创建100个单词,但是我在for处遇到语法错误,我不知道为什么 x = probs.generate() Instance = for x in range (0, 99) print " ".join(Instance) 其中,probs的定义为: raw_data = "This is a very short text. It is used as a test." allwords =

我正在尝试制作一个简单的程序,使用probs.generate with for x在0,99范围内创建100个单词,但是我在for处遇到语法错误,我不知道为什么

x = probs.generate()
Instance = for x in range (0, 99)
print " ".join(Instance)
其中,probs的定义为:

raw_data = "This is a very short text. It is used as a test."
allwords = nltk.word_tokenize(raw_data)
freq = nltk.FreqDist(allwords)
probs = nltk.MLEProbDist(freq)

然后我试着把列表中的单词连接起来。我对python也有点陌生,如果这是一个愚蠢的问题,我很抱歉,我不知道你的generate方法是做什么的,所以我用一个mock替换了它,它可以工作

def generate():
  return "x"

x = [generate() for i in range(0, 99)]
print (" ".join(x))
所以您需要将generate替换为probs.generate


你可以在这里玩它

这是干什么用的?如果要将其用作命令式循环,或将其括在括号中用作生成器/理解,则需要在结尾处使用:。但是,在这种情况下,这两个选项似乎都没有意义。当您在范围中使用x时,这意味着您正在迭代从0到99的所有x,因为范围返回一个值列表。如果你想迭代probs.generate,你需要在probs.generateI中为x写一些类似的东西。generateI试图让它生成100次单词,或者我误解了0,99范围内的x是如何工作的?那么你应该这样做:[x for i in range0,99]@Levicia[probs.generate for uuuu in range0,99]可能是您正在寻找的东西。如果您使用的是Python3.x,它要求打印函数使用括号,这就是为什么您在“”中出现错误的原因,请检查您的Python版本,并注意Python3.x和Python2.x之间的语法差异