Python <;功能句&燃气轮机;句子生成器上的输出?

Python <;功能句&燃气轮机;句子生成器上的输出?,python,Python,抱歉,这可能是一件简单的事情,但我只是在学习,当我试图从我的句子生成器教科书中运行一个示例程序时,我得到的输出是: 我应该得到一个句子,我不知道十六进制(?)是什么意思。我一直在试验不同的程序,如Pycharm和VS代码,几天前它似乎在Pycharm中工作,但在使用VS代码后,我在这两个程序中都不断得到这个输出 教科书中的代码: import random articles = ("A", "The") nouns = ("boy"

抱歉,这可能是一件简单的事情,但我只是在学习,当我试图从我的句子生成器教科书中运行一个示例程序时,我得到的输出是:

我应该得到一个句子,我不知道十六进制(?)是什么意思。我一直在试验不同的程序,如Pycharm和VS代码,几天前它似乎在Pycharm中工作,但在使用VS代码后,我在这两个程序中都不断得到这个输出

教科书中的代码:

import random

articles = ("A", "The")
nouns = ("boy", "girl", "bat", "ball")
verbs = ("hit", "saw", "liked")
prepositions = ("with", "by")


def sentence():
    return nounPhrase() + " " + verbPhrase() + "."


def nounPhrase():
    return random.choice(articles) + " " + random.choice(nouns)


def prepositionalPhrase():
    return random.choice(prepositions) + " " + nounPhrase()


def verbPhrase():
    return random.choice(verbs) + " " + nounPhrase() + \
           " " + prepositionalPhrase()


def main():
    number = int(input("Enter the number of sentences: "))
    for count in range(number):
        print(sentence)

if __name__ == "__main__":
    main()

十六进制是
语句
对象的
id

打印时,打印(可能)的是句子函数的内存地址,而不是
print(句子)
而不是
print(句子())



还要注意的是,
generator
——它是一个函数,用于构建下一个
结果,而不是一次计算所有结果。如果您不知道需要从一个iterable中获取多少值,或者如果每次调用都很昂贵,并且您希望依次处理每个结果(而不是等待每个结果准备就绪,然后再处理所有结果),则此方法会更有效。

谢谢。你的选择解决了这个问题。你知道为什么它会改为打印语句对象的id而不是函数的输出吗?作者只是错过了调用中的括号<代码>打印(x)
vs
print(x())
Ah!我只是去仔细检查了一下,问题是我在阅读课本时漏掉了括号,而不是作者。谢谢你的帮助。