我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python编码时应该注意的事情有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python编码时应该注意的事情有哪些

本篇文章给大家分享的是有关Python编码时应该注意的事情有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

在编程过程中,多了解语言周边的一些知识,以及一些技巧,可以让你加速成为一个优秀的程序员。

对于Python程序员,你需要注意一下本文所提到的这些事情。你也可以看看Zen of Python(Python之禅),这里面提到了一些注意事项,并配以示例,可以帮助你快速提高。

1. 漂亮胜于丑陋

实现一个功能:读取一列数据,只返回偶数并除以2。下面的代码,哪个更好一些呢?

#----------------------------------------      halve_evens_only = lambda nums: map(lambda i: i/2, filter(lambda i: not i%2, nums))      #----------------------------------------          def halve_evens_only(nums):        return [i/2 for i in nums if not i % 2]

 2. 记住Python中非常简单的事情

# 交换两个变量         a, b = b, a   # 切片(slice)操作符中的step参数。(切片操作符在python中的原型是[start:stop:step],即:[开始索引:结束索引:步长值])         a = [1,2,3,4,5]        >>> a[::2]  # 遍历列表中增量为2的数据        [1,3,5]   # 特殊情况下,`x[::-1]`是实现x逆序的实用的方式         >>> a[::-1]        [5,4,3,2,1]   # 逆序并切片         >>> x[::-1]        [5, 4, 3, 2, 1]         >>> x[::-2]        [5, 3, 1]

3. 不要使用可变对象作为默认值

def function(x, l=[]):          #不要这样   def function(x, l=None):        # 好的方式      if l is None:  l = []

这是因为当def声明被执行时,默认参数总是被评估。

4. 使用iteritems而不是items

iteritems 使用generators ,因此当通过非常大的列表进行迭代时,iteritems 更好一些。

d = {1: "1", 2: "2", 3: "3"}   for key, val in d.items()       # 当调用时构建完整的列表   for key, val in d.iteritems()   # 当请求时只调用值

5. 使用isinstance ,而不是type

# 不要这样做     if type(s) == type(""): ...    if type(seq) == list or \       type(seq) == tuple: ...   # 应该这样     if isinstance(s, basestring): ...    if isinstance(seq, (list, tuple)): ...

原因可参阅:stackoverflow

注意我使用的是basestring 而不是str,因为如果一个unicode对象是字符串的话,可能会试图进行检查。例如:

>>> a=u'aaaa' >>> print isinstance(a, basestring)  True >>> print isinstance(a, str)  False

这是因为在Python 3.0以下版本中,有两个字符串类型str 和unicode。

6. 了解各种容器

Python有各种容器数据类型,在特定的情况下,相比内置容器(如list 和dict ),这是更好的选择。

我敢肯定,大部分人不使用它。我身边一些粗心大意的人,一些可能会用下面的方式来写代码。

freqs = {}  for c in "abracadabra":      try:          freqs[c] += 1     except:          freqs[c] = 1

也有人会说下面是一个更好的解决方案:

freqs = {}  for c in "abracadabra":      freqs[c] = freqs.get(c, 0) + 1

更确切来说,应该使用collection 类型defaultdict。

from collections import defaultdict  freqs = defaultdict(int)  for c in "abracadabra":      freqs[c] += 1

其他容器:

namedtuple()    # 工厂函数,用于创建带命名字段的元组子类  deque           # 类似列表的容器,允许任意端快速附加和取出  Counter   # dict子类,用于哈希对象计数  OrderedDict   # dict子类,用于存储添加的命令记录  defaultdict   # dict子类,用于调用工厂函数,以补充缺失的值

7. Python中创建类的魔术方法(magic methods)

__eq__(self, other)      # 定义 == 运算符的行为  __ne__(self, other)      # 定义 != 运算符的行为  __lt__(self, other)      # 定义 < 运算符的行为  __gt__(self, other)      # 定义 > 运算符的行为  __le__(self, other)      # 定义 <= 运算符的行为  __ge__(self, other)      # 定义 >= 运算符的行为

8. 必要时使用Ellipsis(省略号“...”)

Ellipsis 是用来对高维数据结构进行切片的。作为切片(:)插入,来扩展多维切片到所有的维度。例如:

  >>> from numpy import arange    >>> a = arange(16).reshape(2,2,2,2)   # 现在,有了一个4维矩阵2x2x2x2,如果选择4维矩阵中所有的首元素,你可以使用ellipsis符号。     >>> a[..., 0].flatten()    array([ 0,  2,  4,  6,  8, 10, 12, 14])   # 这相当于     >>> a[:,:,:,0].flatten()    array([ 0,  2,  4,  6,  8, 10, 12, 14])

以上就是Python编码时应该注意的事情有哪些,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python编码时应该注意的事情有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python编码时应该注意的事情有哪些

本篇文章给大家分享的是有关Python编码时应该注意的事情有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在编程过程中,多了解语言周边的一些知识,以及一些技巧,可以让你加速
2023-06-17

html编写edm时注意事项有哪些

这篇文章主要介绍了html编写edm时注意事项有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。格式编码1、页面宽度请设定在600到800px以内,长度1024px以内。2
2023-06-08

python编写函数的注意事项有哪些

这篇文章将为大家详细讲解有关python编写函数的注意事项有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、编写注意(1)给函数指定描述名。(2)函数名称只包括小写字母和下划线。(3)每一个函数都应
2023-06-14

java swt应该注意的问题有哪些

这篇文章主要讲解了“java swt应该注意的问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java swt应该注意的问题有哪些”吧!InstallAnywhere 要注意1.将E
2023-06-03

Java Thread应该注意的问题有哪些

这篇文章给大家介绍Java Thread应该注意的问题有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java Thread应该注意的问题(wang hailong)XML:namespace prefix = o
2023-06-03

使用FlexaddChild()方法时应该注意的问题有哪些

小编给大家分享一下使用FlexaddChild()方法时应该注意的问题有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!FlexaddChild()方法注意事项在FlexApplication里,是不能直接用Flexad
2023-06-17

Flex程序员应该知道的事情有哪些

这篇文章给大家分享的是有关Flex程序员应该知道的事情有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.重新定义:Flex是web标准MXML是Flex应用的标准语言,它允许开发人员开发应用程序架构,不仅包
2023-06-17

Python在计算内存时应该注意哪些问题

本篇内容介绍了“Python在计算内存时应该注意哪些问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、计算的是什么?我们先来看看列表对象
2023-06-16

编写Web前端代码的注意事项有哪些

这篇文章主要介绍编写Web前端代码的注意事项有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 最好在html标签之前添加一句类似于   
2023-06-08

hashMap扩容时应该注意的死循环问题有哪些

小编给大家分享一下hashMap扩容时应该注意的死循环问题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!hashMap死循环1.原因: jdk1.7时使用头
2023-06-15

制作404错误页面时应该注意的问题有哪些

本篇文章为大家展示了制作404错误页面时应该注意的问题有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在做网站优化时我们要学会利用错误页面,例如我们网站可能出现的404错误页面,下面就给大家讲一
2023-06-10

制作404错误页面时有哪些应该注意的问题

这篇文章主要介绍“制作404错误页面时有哪些应该注意的问题”,在日常操作中,相信很多人在制作404错误页面时有哪些应该注意的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”制作404错误页面时有哪些应该注意
2023-06-08

处理C++时的注意事宜有哪些

这期内容当中小编将会给大家带来有关处理C++时的注意事宜有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的
2023-06-17

replaceFirst使用时的注意事项有哪些

这篇文章主要介绍了replaceFirst使用时的注意事项有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。replaceFirst使用时的注意事项公司项目最近有一个开发填
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录