Python需要写原生SQL吗?NO(ORM为您提供方便简单的数据库操作)

本文探讨了Python新手在编程时遇到的一些常见问题,如不规范使用range、列表解析、变量泄露和代码风格。推荐使用ORM(对象关系映射)避免手动编写SQL,提高代码可读性和效率。同时,强调了正确使用范围、列表解析和避免全局变量的重要性,以及遵循PEP8编码规范以提升代码质量。
摘要由CSDN通过智能技术生成

我收集了一些Python新手开发者写的代码中所见到的不规范但偶尔又很微妙的问题。

该文章为了帮助那些新手开发者渡过写出丑陋的Python代码的阶段。

但通常这些反模式会造成代码缺乏可读性、更容易出bug且不符合Python的代码风格。

迭代range的使用

Python编程新手喜欢使用range来实现简单的迭代,在迭代器的长度范围内来获取迭代器中的每一个元素:

Python编程中那些要人命的反模式,看了的人绝对受益匪浅

应该牢记:range并不是为了实现序列简单的迭代。相比那些用数字定义的for循环,虽然用range实现的for循环显得很自然,但是用在序列的迭代上却容易出bug,而且不如直接构造迭代器看上去清晰:

image.png

range的滥用容易造成意外的大小差一(off-by-one)错误,这通常是由于编程新手忘记了range生成的对象包括range的第一个参数而不包括第二个,类似于java中的substring和其他众多这种类型的函数。那些认为没有超出序列结尾的编程新手将会制造出bug:

Python编程中那些要人命的反模式,看了的人绝对受益匪浅

不恰当地使用range的常见理由:

1.需要在循环中使用索引。

这并不是一个合理的理由,可以用以下方式代替使用索引:

Python编程中那些要人命的反模式,看了的人绝对受益匪浅

2.需要同时迭代两个循环,用同一个索引来获取两个值。

这种情况下,可以用zip来实现:

Python编程中那些要人命的反模式,看了的人绝对受益匪浅

3.需要迭代序列的一部分。在这种情况下,仅需要迭代序列切片就可以实现,注意添加必要的注释注明用意

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值