首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

改善Python程序一些建议

第一章:引论 建议1、理解Pythonic概念----详见Python中《Python之禅》 建议2、编写Pythonic代码 (1)避免不规范代码,比如只用大小写区分变量、使用容易混淆变量名、害怕过长变量名等...except语句,或except Exception语句,而是定位到具体异常 (3)注意异常捕获顺序,在合适层次处理异常 (4)使用更加友好异常信息,遵守异常参数规范 建议25:避免finally...中可能发生陷阱 建议26:深入理解None,正确判断对象是否。...Python中下列数据会判断: 建议27:连接字符串应优先使用join函数,而不是+操作 建议28:格式化字符串时尽量使用.format函数,而不是%形式 建议29:区别对待可变对象和不可变对象,...使用列表解析可以使代码更清晰,同时效率更高 建议31:函数传参数,既不是传值也不是传引用,而是传对象或者说对象引用 建议32:警惕默认参数潜在问题,特别是当默认参数可变对象时 建议33:函数中慎用变长参数

59070
您找到你想要的搜索结果了吗?
是的
没有找到

pythonic之路(一)

pythonic之路(一) 一、 中不要直接将语句与 、 、 做比较 python中隐含 对象: 数值 (不是字符 ) 容器,比如list 、tuple 、dict 、str 其余则隐含...但是,如果一个程序关键字参数默认 ,代码需要判断输入是否 ,则必须显式与 比较,即 假如写 那么 也被排除在外,如果参数 是一个序列指标(index)则0显然是其中一个而不应该被排除。...二、尽量不要用可变对象(比如list、dict)作为函数默认参数 因为可变对象会将实参累积起来,导致随后调用出现问题。可用 作为默认值。...三、用 表示list剩余元素 四、通过字典 给变量提供默认值 字典方法 实现了一个条件判断功能。 。 一个原理验证例子。 一个有点用处但语法啰嗦例子。 用 改进版。...所以可用于 循环,也可当做 语句迭代对象。 集合可以很方便用集合表达式(类似于列表表达式)来生成。 包含了所有数学意义上集合运算,比如并( )、交( )、差( )、对称差(并集-交集 )。

510100

pythonic风格代码有什么好处?附12个代码实例

pythonic方法 a = [1,2,3,4,5,6,7,8,9,10] result = [x**2 for x in a if x%2==0] 「2、用生成器表达式来代替数据量较大列表推导」...# 任务:打印列表中每个元素索引 # 非pythonic方法 a = ['apple','banana','orange'] for i in range(len(a)): print(a[...「5、使用map函数」 zip() 函数用于将可迭代对象作为参数,将对象中对应元素打包成一个个元组,然后返回由这些元组组成可迭代对象。...# 任务:对比两个列表相同索引位置元素大小,输出较大值 # 非pythonic方法 a = [1,5,7] b = [2,4,6] for i in range(len(a)): if a[...、判断一个值是否True、列表、None」 # 非pythonic方法 if x == True: pass if len(y) == 0: pass if z == None:

49510

Python | 改善Python程序91个建议

1:引论 建议1、理解Pythonic概念—-详见Python中《Python之禅》 建议2、编写Pythonic代码 避免不规范代码,比如只用大小写区分变量、使用容易混淆变量名、害怕过长变量名等。...except语句,或except Exception语句,而是定位到具体异常 注意异常捕获顺序,在合适层次处理异常 使用更加友好异常信息,遵守异常参数规范 建议25:避免finally中可能发生陷阱...建议26:深入理解None,正确判断对象是否。...Python中下列数据会判断: ?...使用列表解析可以使代码更清晰,同时效率更高 建议31:函数传参数,既不是传值也不是传引用,而是传对象或者说对象引用 建议32:警惕默认参数潜在问题,特别是当默认参数可变对象时 建议33:函数中慎用变长参数

1.4K31

为什么你Python代码质量如此不堪……

引论 建议1、理解Pythonic概念—-详见Python中《Python之禅》 建议2、编写Pythonic代码 (1)避免不规范代码,比如只用大小写区分变量、使用容易混淆变量名、害怕过长变量名等...except语句,或except Exception语句,而是定位到具体异常 (3)注意异常捕获顺序,在合适层次处理异常 (4)使用更加友好异常信息,遵守异常参数规范 建议25:避免finally...中可能发生陷阱 建议26:深入理解None,正确判断对象是否。...Python中下列数据会判断: 建议27:连接字符串应优先使用join函数,而不是+操作 建议28:格式化字符串时尽量使用.format函数,而不是%形式 建议29:区别对待可变对象和不可变对象,特别是作为函数参数时...使用列表解析可以使代码更清晰,同时效率更高 建议31:函数传参数,既不是传值也不是传引用,而是传对象或者说对象引用 建议32:警惕默认参数潜在问题,特别是当默认参数可变对象时 建议33:函数中慎用变长参数

1.3K40

总结了90条简单实用Python编程技巧!

大数据文摘转载自达纳斯特 编码原则 建议1:理解 Pythonic 概念—-详见 Python 中《Python之禅》 建议2:编写 Pythonic 代码 (1)避免不规范代码,比如只用大小写区分变量...建议25:避免 finally 中可能发生陷阱 建议26:深入理解 None,正确判断对象是否。...使用列表解析可以使代码更清晰,同时效率更高 建议31:函数传参数,既不是传值也不是传引用,而是传对象或者说对象引用 建议32:警惕默认参数潜在问题,特别是当默认参数可变对象时 建议33:函数中慎用变长参数...,其返回值表示 Python 解释器内部定义 (2)在解释器中直接输入变量,默认调用repr函数,而print(var)默认调用str函数 (3)repr函数返回值一般可以用eval函数来还原对象...,理解 new ()与它之间区别 建议56:理解变量查找机制,即作用域 局部作用域 全局作用域 嵌套作用域 内置作用域 建议57:为什么需要self参数 建议58:理解 MRO(方法解析顺序)与多继承

32031

91 条写 Python 程序建议

引论 建议1、理解 Pythonic 概念—-详见 Python 中《Python之禅》 建议2、编写 Pythonic 代码 (1)避免不规范代码,比如只用大小写区分变量、使用容易混淆变量名、害怕过长变量名等...(3)注意异常捕获顺序,在合适层次处理异常 (4)使用更加友好异常信息,遵守异常参数规范 建议25:避免 finally 中可能发生陷阱 建议26:深入理解 None,正确判断对象是否。...使用列表解析可以使代码更清晰,同时效率更高 建议31:函数传参数,既不是传值也不是传引用,而是传对象或者说对象引用 建议32:警惕默认参数潜在问题,特别是当默认参数可变对象时 建议33:函数中慎用变长参数...,其返回值表示 Python 解释器内部定义 (2)在解释器中直接输入变量,默认调用repr函数,而print(var)默认调用str函数 (3)repr函数返回值一般可以用eval函数来还原对象...内置作用域 建议57:为什么需要self参数 建议58:理解 MRO(方法解析顺序)与多继承 建议59:理解描述符机制 建议60:区别__getattr__()与__getattribute__()方法之间区别

59920

90 条实用编写Python 程序建议

一 编程前言 建议1:理解Pythonic概念,详见Python中《Python之禅》。 建议2:编写Pythonic代码建议。...)使用更加友好异常信息,遵守异常参数规范; 建议25:避免finally中可能发生陷阱。...建议26:深入理解None,正确判断对象是否。 建议27:连接字符串应优先使用join函数,而不是+操作。 建议28:格式化字符串时尽量使用.format函数,而不是%形式。...建议29:区别对待可变对象和不可变对象,特别是作为函数参数时。 建议30:[], {}和():一致容器初始化形式。使用列表解析可以使代码更清晰,同时效率更高。...建议31:函数传参数,既不是传值也不是传引用,而是传对象或者说对象引用。 建议32:警惕默认参数潜在问题,特别是当默认参数可变对象时。 建议33:函数中慎用变长参数 args和 kargs。

54610

对比几段代码,看看你是 Python 菜鸟还是老鸟(另有福利)

有经验程序员会一眼看出你代码出自一个初学者之手。这就是我们经常说,代码不够 pythonic。...i in lst if i > 0] 这个被称为“列表解析式”(List comprehension,中文翻译说法有很多),可以说是非常 pythonic 一个用法了。...7、判断一个值是否True、是否列表、是否是None,普通写法: if x == True: pass if len(y) == 0: pass if z == None:...于是你不得不增加更多判断。 pythonic 写法: value = dct.get(key, 0) 改用 get 方法,不存在时会得到 None,或者指定默认值(这里是 0)。...最后,留2个小作业,也是我标题上提到“福利”: 判断一个列表 A 是否另一个列表 B “子集”,也就是列表 A 中元素是否都在列表 B 中。 计算 1 加到 100 和。

70040

几段代码,测测你是 Python 菜鸟还是老鸟

) 遍历字典项: for key, value in dct.items(): print(key, value) 6、取出列表中大于 0 元素,生成新列表。...i in lst if i > 0] 这个被称为“列表解析式”(List comprehension,中文翻译说法有很多),可以说是非常 pythonic 一个用法了。...7、判断一个值是否True、是否列表、是否是None,普通写法: if x == True: pass if len(y) == 0: pass if z == None:...于是你不得不增加更多判断。 pythonic 写法: value = dct.get(key, 0) 改用 get 方法,不存在时会得到 None,或者指定默认值(这里是 0)。...当你实现一个小功能后,去网上搜一下,别人是怎么写,对比下是不是比你自己更好。举个例子:如何从列表中删除重复元素。

71480

来看几段代码,测测你是 Python 菜鸟还是老鸟

有经验程序员会一眼看出你代码出自一个初学者之手。这就是我们经常说,代码不够 pythonic。...i in lst if i > 0] 这个被称为“列表解析式”(List comprehension,中文翻译说法有很多),可以说是非常 pythonic 一个用法了。...7、判断一个值是否True、是否列表、是否是None,普通写法: if x == True: pass if len(y) == 0: pass if z == None:...于是你不得不增加更多判断。 pythonic 写法: value = dct.get(key, 0) 改用 get 方法,不存在时会得到 None,或者指定默认值(这里是 0)。...最后,留2个小作业: 判断一个列表 A 是否另一个列表 B “子集”,也就是列表 A 中元素是否都在列表 B 中。 计算 1 加到 100 和。

54150

用这10个小技巧加速Python编程

编码很有趣,而Python编码更有趣,因为有很多不同方法可以实现相同功能。但是,大多数时候都有一些首选实现方法,有些人将其称为Pythonic。...当长度零时,容器。下面显示了一个简单示例。...例如,我们可以使用字符串作为字典中键。在数据科学项目中,字符串通常是数据列名。选择多个列时,不可避免地需要创建一个字符串列表。确实,我们可以使用列表文字创建字符串。...根据不同参数集,该功能将略有不同。但是,有时一组参数可能比其他一组更常用,在这种情况下,我们在声明函数时应考虑设置默认值。考虑下面的简单示例。...取而代之是,技巧是取反分数,因此,当您按默认升序排序时,由于这些值取反,分数将反向排序。但是,此方法有一个警告,因为取反只能用于数字值,而不能用于字符串。

93020

Python学习笔记之Pythonenumerate函数

这个循环遍历了names列表所有元素,并通过增加从零开始计数器变量来每个元素生成索引。...我发现,有很多从C或Java背景转过来Python开发人员有时使用下面这种range(len(...))方法来保存运行中每个元素索引,同时再用for循环遍历列表: # 警告: 不建议这么写 for...enumerate()函数中接受一个可选参数,该参数允许你本次循环中计数器变量设置初始值: names = ["Alice","Bob","Carl"] for index,value in enumerate...索引值默认从0开始,但也可以将其设置任何整数。 enumerate函数是从2.3版本开始被添加到Python中,详情见PEP279。...Pythonenumerate函数可以帮助你编写出更加Pythonic和地道循环结构,避免使用笨重且容易出错手动生成索引。

1.6K30

编写高效简洁代码那些招式1

高效代码,每期都会给大家介绍一下编码技巧,让我们代码更整洁更高效。我们会从python 语言切入,讲一讲如何写代码更pythonic 。...其实规则很简单,说穿不值一文钱: 1)当stride参数正值(positive)时,表明切片操作从左至右(即正向)访问源序列s元素,此时,若begin和end参数有缺省,则Python解释器默认将其设置...2)当stride参数负值(negative)时,表明切片操作从右至左(即逆向)访问源序列s元素,此时,若begin和end参数有缺省,则Python解释器默认将其设置None。...第二个参数可以调整索引下标的起始位置,默认为0。...列表)对象,reversed()、enumerate()返回一个迭代器(类似序列) zip()参数可以接受任何类型序列,同时也可以有两个以上参数;当传入 参数长度不同时,zip能自动以最短序列长度为准进行截取

63960

python编程规范系列--建议01~0

本书主要内容     1)容易被忽视重要概念和常识,如代码布局和编写函数原则等;     2)编写python程序管用方法,如利用assert语句去发现问题,使用enumerate()获取序列迭代索引和值等...format(name='Tom')     3)python包和模块结构: (1) 包和模块命名采用小写,单数形式且短小;(2)包通常作为命名空间,如只包含__init__.py文件。...建议2:编写pythonic代码     1)要避免劣化代码:(1)避免只用大小写来区分不同对象;(2)避免使用容易引起混淆名称;(3)不要害怕过长变量名;     2)pep8检测工具: 1 C...建议4:在代码中适当添加注释     1)使用块或者行注释时候仅注释复杂操作,算法,难以理解技巧或者不够一目了然代码;     2)注释和代码隔开一定距离;     3)给外部可访问函数和方法添加文档注释...,序列索引操作时序列名和[ ]之间不要空格,函数默认参数两侧不需要空格;         (4)强调前面的操作符时候使用空格。

64820

Pythonenumerate函数

这个循环遍历了names列表所有元素,并通过增加从零开始计数器变量来每个元素生成索引。 ...我发现,有很多从C或Java背景转过来Python开发人员有时使用下面这种range(len(…))方法来保存运行中每个元素索引,同时再用for循环遍历列表:  ''' 遇到问题没人解答?...enumerate()函数中接受一个可选参数,该参数允许你本次循环中计数器变量设置初始值:  ''' 遇到问题没人解答?...索引值默认从0开始,但也可以将其设置任何整数。...enumerate函数是从2.3版本开始被添加到Python中Pythonenumerate函数可以帮助你编写出更加Pythonic和地道循环结构,避免使用笨重且容易出错手动生成索引。

1.3K20
领券