我目前正在使用Head First Python,并开始定义函数。下面这个程序的目标是创建一个函数print_lol(),其中需要一个参数:一个显示在屏幕上的列表。工作的最终代码如下:
def print_lol(the_list):
for each_item in the_list:
if isinstance(each_item,list):
print_lol(each_item)
else:
print(each_item)
所以如果我们放入一个列表,比如:
movies=["The Holy Grail", 1975, "Terry Jones & Terry Gilliam", 91, ["Graham Chapman", ["Michael Palin", "John Cleese", "Terr Gilliam", "Eric Idle", "Terry Jones"]]]
将只输出此数组中的所有条目。
我的问题是,为什么第四行的print_lol(each_item)行得通?我知道逻辑是程序会查看每一项,如果它不在列表中,它会打印该项,但是如果在列表中,计算机怎么知道print_lol是什么?我觉得第一行也没有充分解释print_lol。print_lol是Python 3自带的命令吗?
在python中,它在运行时解析名称。
你可以编写这样的函数
def f():
return k()
代码没问题,但是函数执行时k必须在运行时存在。
发生的情况是,“def f”在全局符号列表中插入一个名为 f 的条目,因此在运行时找到 f() 时,将搜索全局符号以查找“f”,在您的示例中,它将存在,因为它之前已定义。
您在第1行声明了一个函数,您选择调用< code>print_lol,在第4行您递归地从它自身调用它。< code>print_lol不是python中的一个命令,它实际上是您在提供的代码中声明的一个函数。
非常简化,想想函数print_lol
就像它为每个递归调用取出一层列表,直到它不再是一个列表,而只是留下字符串。然后它打印这些字符串。
请帮帮我,我对此很困惑
问题内容: 嘿,我只是在Java文档上浏览I / O流上的内容,而刚刚遇到了专门针对字节流的问题-如果输入是字节流,为什么read()不返回字节值? 我挠了一下头,但想不出任何有力的答案,如果有人能帮助我将不胜感激。 问题答案: 这是因为可以返回-1作为流结束(EOF)标记的指示符-即不再需要从流中读取字节。 更多详细信息:http : //download.oracle.com/javase/1
考虑示例,示例的结果超出了我对一些相关规则的理解。 对于,它格式错误,因为它违反了以下规则,即: dcl.init.ref#5.2 否则,如果引用是对非const限定或易失性限定类型的左值引用,则程序格式错误。 这意味着,对常量T的左值引用不能绑定到任何右值,即使它们是引用兼容的<代码>AB=std::移动(A)显然违反了这条规则,因此它的格式不正确。 但是我不知道为什么要编译
问题内容: 我是PHP的新手,所以我的功能有一个小问题。我有这行代码: 无论如何,当我尝试这段代码时,我总是收到一条错误消息,指出第11行(代码的粗体部分)有错误,并且没有回显任何变量。我猜它给了我这个错误,因为我的变量没有在函数内部定义,但是我需要在函数外部定义它,所以有办法吗? 问题答案: 这是因为您正在函数内部使用变量(仅存在于全局范围内)。 有关更多信息,请参见PHP手册页上的变量范围。
我正在node.js中为MongoDB数据库构建一个API,并使用fetch函数查询外部API,但是当代码运行时,fetch函数返回以下内容: 我需要做什么才能返回请求的数据? null null
在python 3.10中,我想在同一个文件中定义两个类,其中每个类的一个方法必须向另一个方法输入提示(代码如下)。 由于必须先定义一个,因此不允许提示,因为另一个类型尚未定义。我如何解决或绕过这个问题?