爆肝整理总结了90条简单实用的Python编程技巧!

总结 90 条写 Python 程序的建议 阅读本文大概需要 3 分钟。 本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我删除。 自己写 Python 也有四五年了,一直是用自己的“强迫症”在维持自己代码的质量。都有去看 Google 的 Python 代码规范,对这几年的工作经验,做个简单的笔记,如果你也在学 Python,准备要学习 Python,希望这篇文章对你有用。 1. 首先 建议1、理解 Pythonic 概念—-详见 Python 中的《Python之禅》 建议2、编写 Pythonic 代码 ... 阅读详情

编码原则

**建议1:**理解 Pythonic 概念—-详见 Python 中的《Python之禅》

**建议2:**编写 Pythonic 代码

(1)避免不规范代码,比如只用大小写区分变量、使用容易混淆的变量名、害怕过长变量名等。有时候长的变量名会使代码更加具有可读性。

(2)深入学习 Python 相关知识,比如语言特性、库特性等,比如Python演变过程等。深入学习一两个业内公认的 Pythonic 的代码库,比如Flask等。

**建议3:**理解 Python 与 C 的不同之处,比如缩进与 {},单引号双引号,三元操作符?, Switch-Case 语句等。

**建议4:**在代码中适当添加注释

**建议5:**适当添加空行使代码布局更加合理

**建议6:**编写函数的 4 个原则

(1)函数设计要尽量短小,嵌套层次不宜过深

(2)函数声明应该做到合理、简单、易用

(3)函数参数设计应该考虑向下兼容

(4)一个函数只做一件事,尽量保证函数粒度的一致性

**建议7:**将常量集中在一个文件,且常量名尽量使用全大写字母

编程惯用法

**建议8:**利用 assert 语句来发现问题,但要注意,断言 assert 会影响效率

**建议9:**数据交换值时不推荐使用临时变量,而是直接 a, b = b, a

**建议10:**充分利用惰性计算(Lazy evaluation)的特性,从而避免不必要的计算

**建议11:**理解枚举替代实现的缺陷(最新版 Python 中已经加入了枚举特性)

**建议12:**不推荐使用 type 来进行类型检查,因为有些时候 type 的结果并不一定可靠。如果有需求,建议使用 isinstance 函数来代替

**建议13:**尽量将变量转化为浮点类型后再做除法(Python3 以后不用考虑)

**建议14:**警惕eval()函数的安全漏洞,有点类似于 SQL 注入

**建议15:**使用 enumerate() 同时获取序列迭代的索引和值

**建议16:**分清 == 和 is 的适用场景,特别是在比较字符串等不可变类型变量时(详见评论)

**建议17:**尽量使用 Unicode。在 Python2 中编码是很让人头痛的一件事,但 Python3 就不用过多考虑了

**建议18:**构建合理的包层次来管理 Module

编程惯用法2

**建议19:**有节制的使用 from…import 语句,防止污染命名空间

**建议20:**优先使用 absolute import 来导入模块(Python3中已经移除了relative import)

**建议21:**i+=1 不等于 ++i,在 Python 中,++i 前边的加号仅表示正,不表示操作

**建议22:**习惯使用 with 自动关闭资源,特别是在文件读写中

**建议23:**使用 else 子句简化循环(异常处理)

**建议24:**遵循异常处理的几点基本原则 (1)注意异常的粒度,try 块中尽量少写代码

(2)谨慎使用单独的 except 语句,或 except Exception 语句,而是定位到具体异常

(3)注意异常捕获的顺序,在合适的层次处理异常

(4)使用更加友好的异常信息,遵守异常参数的规范

**建议25:**避免 finally 中可能发生的陷阱

**建议26:**深入理解 None,正确判断对象是否为空。

**建议27:**连接字符串应优先使用 join 函数,而不是+操作

**建议28:**格式化字符串时尽量使用 format 函数,而不是 % 形式

**建议29:**区别对待可变对象和不可变对象,特别是作为函数参数时

**建议30:[], {}和():一致的容器初始化形式。使用列表解析可以使代码更清晰,同时效率更高

**建议31:**函数传参数,既不是传值也不是传引用,而是传对象或者说对象的引用

**建议32:**警惕默认参数潜在的问题,特别是当默认参数为可变对象时

**建议33:**函数中慎用变长参数 args 和 kargs

(1)这种使用太灵活,从而使得函数签名不够清晰,可读性较差

(2)如果因为函数参数过多而是用变长参数简化函数定义,那么一般该函数可以重构

**建议34:**深入理解 str()和 repr() 的区别

(1)两者之间的目标不同:str 主要面向客户,其目的是可读性,返回形式为用户友好性和可读性都比较高的字符串形式;而 repr 是面向 Python 解释器或者说Python开发人员,其目的是准确性,其返回值表示 Python 解释器内部的定义

(2)在解释器中直接输入变量,默认调用repr函数,而print(var)默认调用str函数

(3)repr函数的返回值一般可以用eval函数来还原对象

(4)两者分别调用对象的内建函数 str ()和 repr ()

**建议35:**分清静态方法 staticmethod 和类方法 classmethod 的使用场景

库的使用

**建议36:**掌握字符串的基本用法

**建议37:**按需选择 sort() 和 sorted() 函数

sort() 是列表在就地进行排序,所以不能排序元组等不可变类型。

sorted() 可以排序任意的可迭代类型,同时不改变原变量本身。

**建议38:**使用copy模块深拷贝对象,区分浅拷贝(shallow copy)和深拷贝(deep copy)

**建议39:**使用 Counter 进行计数统计,Counter 是字典类的子类,在 collections 模块中

**建议40:**深入掌握 ConfigParse

**建议41:**使用 argparse 模块处理命令行参数

**建议42:**使用 pandas 处理大型 CSV 文件

Python 本身提供一个CSV文件处理模块,并提供reader、writer等函数。

Pandas 可提供分块、合并处理等,适用于数据量大的情况,且对二维数据操作更方便。

**建议43:**使用 ElementTree解析XML

**建议44:**理解模块 pickle 的优劣

优势:接口简单、各平台通用、支持的数据类型广泛、扩展性强

劣势:不保证数据操作的原子性、存在安全问题、不同语言之间不兼容

**建议45:**序列化的另一个选择 JSON 模块:load 和 dump 操作

**建议46:**使用 traceback 获取栈信息

**建议47:**使用 logging 记录日志信息

**建议48:**使用 threading 模块编写多线程程序

**建议49:**使用 Queue 模块使多线程编程更安全

设计模式

**建议50:**利用模块实现单例模式

**建议51:**用 mixin 模式让程序更加灵活

**建议52:**用发布-订阅模式实现松耦合

**建议53:**用状态模式美化代码

内部机制

**建议54:**理解 build-in 对象

建议55:__init__ ()不是构造方法,理解 new ()与它之间的区别

**建议56:**理解变量的查找机制,即作用域

局部作用域

全局作用域

嵌套作用域

内置作用域

**建议57:**为什么需要self参数

**建议58:**理解 MRO(方法解析顺序)与多继承

**建议59:**理解描述符机制

**建议60:**区别 getattr ()与 getattribute ()方法之间的区别

**建议61:**使用更安全的 property

**建议62:**掌握元类 metaclass

**建议63:**熟悉 Python 对象协议

**建议64:**利用操作符重载实现中缀语法

**建议65:**熟悉 Python 的迭代器协议

**建议66:**熟悉 Python 的生成器

**建议67:**基于生成器的协程和 greenlet,理解协程、多线程、多进程之间的区别

**建议68:**理解 GIL 的局限性

**建议69:**对象的管理和垃圾回收

使用工具辅助项目开发

**建议70:**从 PyPI 安装第三方包

**建议71:**使用 pip 和 yolk 安装、管理包

**建议72:**做 paster 创建包

**建议73:**理解单元测试的概念

**建议74:**为包编写单元测试

**建议75:**用测试驱动开发(TDD)提高代码的可测性

**建议76:**使用 Pylint 检查代码风格

代码风格审查

代码错误检查

发现重复以及不合理的代码,方便重构

高度的可配置化和可定制化

支持各种 IDE 和编辑器的集成

能够基于 Python 代码生成 UML 图

能够与 Jenkins 等持续集成工具相结合,支持自动代码审查

**建议77:**进行高效的代码审查

**建议78:**将包发布到 PyPI

性能剖析与优化

**建议79:**了解代码优化的基本原则

**建议80:**借助性能优化工具

**建议81:**利用 cProfile 定位性能瓶颈

**建议82:**使用 memory_profiler 和 objgraph 剖析内存使用

**建议83:**努力降低算法复杂度

**建议84:**掌握循环优化的基本技巧

减少循环内部的计算

将显式循环改为隐式循环,当然这会牺牲代码的可读性

在循环中尽量引用局部变量

关注内层嵌套循环

**建议85:**使用生成器提高效率

**建议86:**使用不同的数据结构优化性能

**建议87:**充分利用 set 的优势

**建议88:**使用 multiprocessing 模块克服 GIL 缺陷

**建议89:**使用线程池提高效率

**建议90:**使用 Cythonb 编写扩展模块

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。让你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

点击免费领取《优快云大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

嵩天老师-Python语言程序设计-Python123配套练习测验题目汇总整理 测验1:Python基本语法元素 知识点概要: 普遍认为Python语言诞生于1991年 Python语言中的缩进在程序中长度统一且强制使用,只要统一即可,不一定是4个空格(尽管这是惯例) IPO模型指:Input Process Output 字符串的正向递增和反向递减序号体系:正向是从左到右,0到n-1,反向是从右到左,-1到-n,举例str = "csdn" # str[0]就表示字符串c... 阅读详情

相关推荐

RC滤波电路工作原理:【带图+公式计算】

容抗Xc和电容C成反比,和频率f也成反比,C越大,交流电容易通过电容,说明电容量大,电容的阻碍作用小;交流电的频率高,交流电也容易通过电容,说明频率高,电容的阻碍作用也小。我们可以看到,一个2V的纹波,经常RC电路后,幅值下降到mv级别,基本可以忽略不计,这就是RC滤波电路的工作原理。一个频率为1Khz的信号,通过一个容值为0.1uf的电容,计算电容对该信号产生的阻抗。将RC滤波器电路中的电阻,取值为1KΩ,电容取值为0.47uf,纹波幅值为2V。从公式1可以看到,Xc越大,Vout值就越接近Vin的值。

weixin_66299220的博客 2万+

Python高手的10条编程建议,第5条你中招了吗?90%程序员都踩过坑!

你是否在编程过程中遇到过难以调试的错误,或是代码结构混乱难以维护?​这些问题可能源于一些常见的编程误区。​本文将分享Python大佬总结的10条编程忠告,帮助你避免这些坑,提高编程效率。Python的简洁让无数开发者着迷,但你是否曾因一个“优雅”的代码翻车,导致调试到深夜?编程不仅是写代码,更是一门需要智慧和经验的艺术。Python大佬们用血泪总结的10条忠告,句句戳中痛点,尤其是第5条——90%程序员都曾踩过的坑,堪称“真实到窒息”!想知道这些忠告如何让你从新手进阶为高手?快来看看吧!

朱雀随云记的博客 1230

5分钟搞定Nano-Banana图片编辑API对接:从Base64编码到生成图片全流程

本文详细介绍了如何快速对接Nano-Banana图片编辑API,基于gemini-2.5-flash-image-preview模型,从环境准备、Base64编码到API调用的全流程。通过实战示例和优化技巧,帮助开发者高效集成AI图片处理能力,提升产品竞争力。

dog123的博客 260

10个实用的Python编程实例,助你快速掌握Python技巧!

通过以上10个实用的Python编程实例,我们可以学习到许多基本的Python编程技巧,并在实际项目中灵活运用。希望本文所提供的实例能够帮助读者加深对Python的理解,并成为熟练的Python开发者!

qq_41314882的博客 5081

孤读paper——《GhostNet:More Features from Cheap Operations》

《GhostNet:More Features from Cheap Operations》   发现一个点并解决就是一篇CVPR,该文章主要发现了优秀的网络的特点是feature map提取过程中的冗余性,这种冗余性体现在很多成对的feature map间很像,就好像彼此的“ghost”,而这种特征冗余性对于理解图像来说还是必要的,所以文章把feature map分为两种,一种是本质特征,一...

雄关漫道真如铁 而今迈步从头越 5151

LTspice基础教程-009.LTspice波形测量

<<==上一篇:LTspice基础教程-008.LTspice PWL设置 >>==下一篇:LTspice基础教程-010. 首篇博客文末提供所有相关资源百度网盘分享链接

gaoyong_wang的博客 4万+

7 年 Python 的我,总结了这 90 条写 Python 程序的建议

本文于网络整理,版权归原作者所有 自己写 Python 也有四五年了,一直是用自己的“强迫症”在维持自己代码的质量。都有去看Google的Python代码规范,对这几年的工作经验,做个简单的笔记,如果你也在学pythpn,准备要学习python,希望这篇文章对你有用。 1. 首先 建议1、理解Pythonic概念—-详见Python中的《Python之禅》 建议2、编写Pythonic代码 (1)避免不规范代码,比如只用大小写区分变量、使用容易混淆的变量名、害怕过长变量名等。有时候长..

bigzql的博客 1万+

【k8s故障处理篇】calico-node启动失败“Felix is not live: Get “http://localhost:9099/liveness” 解决办法(V1.30.3版本)

【k8s故障处理篇】calico-node启动失败“Felix is not live: Get “http://localhost:9099/liveness” 解决办法(V1.30.3版本)

jks212454的博客 1091

总结了 90 条写 Python 程序的建议

本文于网络整理,版权归原作者所有这是一名5年经验的 Python小伙伴总结的90条python建议,如果你也在学pythpn,准备要学习python,希望这篇文章对你有用。1. 首先 建...

tongtongjing1765的博客 1821

ApolloScape 数据集:YOLOv10 + UI界面实现与应用

是由百度Apollo团队发布的一个大规模自动驾驶数据集,涵盖了车辆、行人、骑行者等多种交通元素,旨在为自动驾驶技术的发展提供丰富的数据支持。数据集包含多种复杂的场景,例如城市道路、交叉口、车辆聚集等,能够帮助研究人员和开发者在多种现实环境下测试和验证目标检测模型。YOLO(You Only Look Once)系列算法是目前最流行的目标检测算法之一,因其高效、准确以及实时性强的特点被广泛应用于计算机视觉领域。YOLOv10是YOLO系列中的最新版本,在性能和效率上进行了多方面的优化。速度快。

YOLO 931

DDR5中的On-Die Termination(ODT)详解:电阻值支持及其背后的秘密

DDR5支持多档ODT电阻值,范围从40Ω到480Ω,均基于240Ω标准参考电阻RZQR_{ZQ}RZQ​。不同电阻档位对应不同的信号负载和功耗需求。校准电压点关键,常用0.8×VDD进行精准调校。CA信号间ODT匹配必须严格控制,保证命令总线稳定。选择合适的ODT值是高速内存设计中不可忽视的细节。

weixin_43199439的博客 2099

再肝3天,整理了90个 NumPy 例子,不能不收藏!

Numpy 是什么就不太过多介绍了,懂的人都懂! 文章很长,高低要忍一下,如果忍不了,那就收藏吧,总会用到的 萝卜哥也贴心的做成了PDF,在文末获取! 有多个条件时替换 Numpy 数组中的元素将所有大于 30 的元素替换为 0将大于 30 小于 50 的所有元素替换为 0给所有大于 40 的元素加 5用 Nan 替换数组中大于 25 的所有元素将数组中大于 25 的所有元素替换为 1,否则为 0在 Python 中找到 Numpy 数组的维度两个条件过滤 NumPy 数组Example 1Example

周萝卜的博客 743

【ZYNQ】VDMA 的使用

VDMA, Video Direct Memory Access 是 Xilinx 官方提供的高速内存存取 IP,采用 AXI4-Stream 与 AXI4 协议实现存储映射接口(Memory Map)与非存储映射接口(Non-Memory Map)接口的转换,主要用于视频数据缓存,同时提供帧缓存与帧同步控制功能。本文主要介绍 AXI VDMA 的配置与使用方法。

洋洋Young的博客 1581

python 函数优化_总结了 90 条写 Python 程序的建议

本文于网络整理,版权归原作者所有这是一名5年经验的 Python小伙伴总结的90条python建议,如果你也在学pythpn,准备要学习python,希望这篇文章对你有用。1. 首先 建议1、理解Pythonic概念—-详见Python中的《Python之禅》建议2、编写Pythonic代码(1)避免不规范代码,比如只用大小写区分变量、使用容易混淆的变量名、害怕过长变量名等。有时候长的变...

weixin_39912250的博客 114

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

2024年总结了90条简单实用的Python编程技巧_python实操题技巧,2024年最新面试心得体会1000字

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取。

m0_60635609的博客 776

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

建议收藏,清华高材生准备的90条Python程序建议!

阅读本文大概需要 3 分钟。 本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我删除 自己写 Python 也有四五年了,一直是用自己的“强迫症”在维持自己代码的质量。都有去看 Google 的 Python 代码规范,对这几年的工作经验,做个简单的笔记,如果你也在学 Python,准备要学习 Python,希望这篇文章对你有用。 1. 首先 建议1、理解 Pythonic 概念—-详见 Python 中的《Python之禅》 建议2、编写 Pythonic 代码 (1..

Python_kele的博客 448

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

《Effective Python》读书笔记14: 附录 - 90条建议完整列表

作者: andylin02学习章节: 全书90条建议速查表关键词: Effective Python, 90条建议, Python进阶, 最佳实践。

1673

90 条写 Python 程序的建议

本文于网络整理,版权归原作者所有 如果你也在学pythpn,准备要学习python,希望这篇文章对你有用。 1. 首先 建议1、理解Pythonic概念—-详见Python中的《Python之禅》 建议2、编写Pythonic代码 (1)避免不规范代码,比如只用大小写区分变量、使用容易混淆的变量名、害怕过长变量名等。有时候长的变量名会使代码更加具有可读性。 (2)深入学习Python相关知识,比如语言特性、库特性等,比如Python演变过程等。深入学习一两个业内公认的Pythonic的代码库,比如Flask

如玉少年的博客 395

肝了3天,整理了90个Pandas案例,强烈建议收藏!

文章很长,高低要忍一下,如果忍不了,那就收藏吧,总会用到的 文章目录如何使用列表和字典创建 Series使用列表创建 Series使用 name 参数创建 Series使用简写的列表创建 Series使用字典创建 Series如何使用 Numpy 函数创建 Series如何获取 Series 的索引和值如何在创建 Series 时指定索引如何获取 Series 的大小和形状如何获取 Series 开始或末尾几行数据Head()Tail()Take()使用切片获取 Series 子集如何创建 DataFram

周萝卜的博客 4422

mixin模式 python_总结了90条写 Python程序的建议

(给Python编程开发加星标,提升编程技能)本文于网络整理,版权归原作者所有这是一名5年经验的 Python小伙伴总结的90条python建议,如果你也在学pythpn,准备要学习python,希望这篇文章对你有用。1. 首先 建议1、理解Pythonic概念—-详见Python中的《Python之禅》建议2、编写Pythonic代码(1)避免不规范代码,比如只用大小写区分变量、使用容...

weixin_32632831的博客 91
上一篇: 7 个流行的强化学习算法及代码实现!
下一篇: 汇总17个工作必备的Python自动化代码
田野猫咪
博客等级 码龄4年 5080粉丝 502原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值