1K+ 阅读量
globals() 和 locals() 函数可用于根据调用它们的位置返回全局和局部命名空间中的名称。如果从函数内部调用 locals(),它将返回可以从该函数本地访问的所有名称。如果从函数内部调用 globals(),它将返回可以从该函数全局访问的所有名称。这两个函数的返回类型都是字典。因此,可以使用 keys() 函数提取名称。当模块导入到脚本中时,模块顶层部分中的代码将被执行 ... 阅读更多
449 阅读量
变量是映射到对象的名称(标识符)。命名空间是变量名称(键)及其对应对象(值)的字典。Python 语句可以访问局部命名空间和全局命名空间中的变量。如果局部变量和全局变量具有相同的名称,则局部变量会屏蔽全局变量。每个函数都有自己的局部命名空间。类方法遵循与普通函数相同的作用域规则。Python 会对变量是局部变量还是全局变量进行推测。它假设在函数中赋值的任何变量都是局部变量。因此,为了在 ... 阅读更多
当您导入模块时,Python 解释器会按照以下顺序搜索模块:当前目录。如果找不到模块,Python 接下来会搜索 shell 变量 PYTHONPATH 中的每个目录。如果所有方法都失败,Python 会检查默认路径。在 UNIX 上,此默认路径通常为 /usr/local/lib/python/。模块搜索路径存储在系统模块 sys 中,作为 sys.path 变量。sys.path 变量包含当前目录、PYTHONPATH 和安装相关的默认值。PYTHONPATH 变量PYTHONPATH 是一个环境变量,由目录列表组成。PYTHONPATH 的语法与 shell 变量 PATH 的语法相同。以下是一个 ... 阅读更多
3K+ 阅读量
您可以通过在其他 Python 源文件中执行 import 语句,将任何 Python 源文件用作模块。语法import 语句具有以下语法:import module1[, module2[, ... moduleN]]当解释器遇到 import 语句时,如果模块存在于搜索路径中,它将导入该模块。搜索路径是解释器在导入模块之前搜索的目录列表。例如,要导入模块 support.py,您需要在脚本的顶部放置以下命令:#!/usr/bin/python # 导入模块 support import support # 现在您可以调用该模块定义的函数 ... 阅读更多
Python 中的 return 语句是一个非常有用的语句,用于将程序的流程从函数返回到函数调用者。关键字 return 用于编写 return 语句。由于 Python 中的一切都是对象,因此返回值可以是任何对象,例如 - 数字(int、float、double)或集合(list、tuple、dictionary)或用户定义的函数和类或包。return 语句具有以下特性 - return 语句不能在函数外部使用。return 语句之后编写的任何代码都称为死代码,因为它永远不会 ... 阅读更多
2K+ 阅读量
这些函数称为匿名函数,因为它们不是以标准方式使用 def 关键字声明的。您可以使用 lambda 关键字创建小型匿名函数。Lambda 表达式可以接受任意数量的参数,但只返回一个表达式的值。它们不能包含命令或多个表达式。匿名函数不能直接调用 print,因为 lambda 需要一个表达式Lambda 函数有自己的局部命名空间,并且除了参数列表中的变量和全局命名空间中的变量之外,不能访问其他变量。虽然看起来 lambda 是函数的一行版本,但它们 ... 阅读更多
6K+ 阅读量
您可能需要为定义函数时指定的参数以外的参数处理函数。这些参数称为可变长度参数,与必需参数和默认参数不同,它们在函数定义中没有命名。语法具有非关键字可变参数的函数的语法如下:def functionname([formal_args, ] *var_args_tuple ): "function_docstring" function_suite return [expression]星号 (*) 放在保存所有非关键字可变参数值的变量名称之前。如果在函数调用期间未指定其他参数,则此元组将保持为空。示例实时演示#!/usr/bin/python # 函数定义在此处 def printinfo( arg1, *vartuple ): "这将打印传递的可变参数" ... 阅读更多
通过在 C 中实现套接字编程,可以在两台计算机之间传输数据。在相同的情况下,可以轻松地通过实现用户数据报协议 (UDP) 和简单的客户端/服务器来发送文件。安全性 - 由加密处理。协议 - UDPEncryption - XOR 加密算法服务器启动并等待文件名。客户端发送文件名。服务器接收此文件名。如果文件存在,服务器开始读取文件并继续发送一个包含加密文件内容的缓冲区,直到到达文件末尾。文件末尾由 EOF 标记。文件以缓冲区形式接收,直到收到 EOF。之后,它 ... 阅读更多
386 阅读量
二项堆定义为二叉堆的扩展,它提供了更快的合并或联合操作以及二叉堆提供的其他操作。二项堆被视为二项树的集合。什么是二项树?可以通过取两棵 k-1 阶的二项树并将其中一棵作为另一棵的最左孩子来构建 k 阶的二项树。k 阶的二项树具有以下属性。二项树的节点数正好为 2k。二项树的深度为 k。深度为 i 的节点数正好为 kCi,其中 i = 0、1、. . ... 阅读更多
586 阅读量
对于给定的二叉树,将其转换为二叉搜索树,方法是保持二叉树的原始结构不变。此解决方案将使用 C++ STL 的集合而不是基于数组的解决方案。示例示例 1输入 11 / \ 3 8 / \ 9 5输出 9 / \ 5 11 / \ 3 8示例 2输入 11 / \ 31 16 / \ 21 ... 阅读更多