-
python global的创建和修改
1、global在函数内创建全局变量,相当于在文件内创建全局变量。 2、修改函数内的全局变量。由于函数中直接对全局变量进行分配/修改,因此被视为创建新的局部变量。 当然,可以通过索引定位全局变量中的元素进行修改。 实例 global 变量1, 变量2, … 变量1 = 赋值数据 # 错误示范 期望修改的全局变量1 = 数据 # python 认为创建了一个局部变量:变量1。 # 正确示范 global 期望修改的全局变量1 # 先告诉 python 这个变量在这个局部也是当做全局变量看。…
-
python变量名的查找方法
1、查找变量名由内而外,分别是Local、Enclosing、Global、Builtin。 2、访问变量时,先找到本地变量,包裹函数外部函数内部变量,然后是全局变量,最后是内置变量。 实例 In [11]: i = “G” In [12]: def test(): i = “L” print i, “in locals” ….: In [13]: test() L in locals In [14]: print i, “in globals” G in globals 每日分享到群里,或…
-
python函数实参的四种类型
1、位置实参,实参与形参的位置依次对应。 func01(1, 2, 3, 4) 2、序列实参,将序列拆分后按顺序与形参进行对应。 itrable_in = 1, 2, 3, 4 # 传入的是序列中的元素。 func01(*itrable_in) # python的解释器在遇到星号时会告诉CPU接下来的变量内的元素是函数参数。 3、关键字实参,实参根据形参的名字进行对应。 func01(p2=2, p1=1, p4=4, p3=3) 4、字典实参,将字典拆分后按名称与形参进行对应。 dict_i…
-
python函数中的形参有几种
Python函数中参数有两种类型,分别是形参和实参,本篇就形参中的类型带来介绍。 1、位置形参,实参必填。 def func01(p1, p2, p3): print(p1, p2, p3) # func01() # 报错 func01(1, 2, 3) # 1 2 3 2、星号元组形参,自动将多个实参合并为一个元组。 只支持位置实参。 def func03(*args): # 就使用 args 命名变量。星号修饰输入。 print(args) func03() #…
-
python字典的底层原理
1、版本3.6后,字典的底层数据结构发生了变化。 2、实际数据存储和索引分开存储。indices是将数据存储在二维数组中,其他内容保持不变。这保证了Dictionary在添加新键值时按顺序保存。 实例 my_dict[‘address’] = ‘xxx’ my_dict[‘salary’] = 999999 ## 此时的内存示意图 indices = [1, 0, None, None, None, None, 2, None] entries = [[-59541930685424…
-
python如何配置文件路径
1、获取被调用函数所在的模块文件名,然后获取其路径。 2、与配置文件所在的路径进行比较,基于模块文件路径和父级路径的配置文件所在的相对路径,获得配置文件的绝对路径。 实例 co_filepath = sys._getframe().f_code.co_filename head, tail = os.path.split(co_filepath) conf_filepath = os.path.join(head, ‘../conf/log.conf’) conf_filepath = os…
-
python创建平衡二叉树的方法
1、生成平衡树的核心是partial_tree方法。 它以一个序列和数字为参数,通过递归的方式返回一个序列。其中第一个是结构树,第二个是不包含在书中的元素。 2、实现的整体思路是,每次传入的序列分为左半部分、顶点和右半部分,直到不能继续拆分,然后逐层返回,最后组合成一棵平衡的二叉树。 实例 “”” list_to_tree方法将有序列表转化为平衡二叉树 一棵二叉树分为树顶点、左子树、右子树,其中左子树的值都比树顶节点小,右子树的值都比树顶点大 “”” def make_tree(entr…
-
python捕获异常的原因
> 1、异常捕获是针对某一部分可能出错的代码。一旦在运行过程中出现错误,就会误信息写入日志文件或其他处理,然后继续运行后续代码。 2、捕获异常的目的是防止代码停止运行。 实例 在程序开发中,如果对某些代码的执行不确定(程序的语法完全正确) 可以增加try来捕获异常 try: 尝试执行的代码 except: 出现错误的处理 try: num = int(raw_input(“请输入一个整数:”)) except: print ‘请输入正确的整数!!’ # 无论输…
-
Python如何列出目录中的所有文件
1、os.listdir()将提供目录中的所有内容,文件和目录。如果只想要文件,可以使用方法过滤os.path。 from os import listdir from os.path import isfile, join onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))] 2、也可以使用os.walk()which将为它访问的每个目录生成两个列表。 拆分为文件和目录。如果只想要顶级目录,可以在它第一次产生时打…
-
Python中cProfile分析工具的使用
说明 1、Python包含一个名为cProfile的分析器。 2、不仅给出了总运行时间,而且还分别对每个函数进行了计时,并告诉您每个函数被调用了多少次,从而很容易确定应该在哪里进行优化。 可以在代码中或从解释器中调用它,如下所示: import cProfile cProfile.run(‘foo()’) 更有用的是,可以在运行脚本时调用 cProfile: python -m cProfile myscript.py 为了使它更容易,制作了一个名为“profile.bat”的小批处理文件: p…