如何写出Pythonic的代码?

news2024/12/27 5:38:42

f-string、三元操作、各种解析式、生成器装饰器的熟练运用,“内库”引用和函数封装再加持PEP8,撰写的脚本不pythonic都难。😎


(笔记模板由python脚本于2024年10月07日 18:03:27创建,本篇笔记适合特别喜欢python的coder翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


f-string、三元操作、解析式、生成器
如何写出Pythonic的代码?
(“内库”引用和函数封装及装饰器辅助再加持PEP8)


本文质量分:

96 96 96

本文地址: https://blog.csdn.net/m0_57158496/article/details/142743995

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 如何写出Pythonic的代码?
    • 1、Pythonic定义
    • 2、PEP 8
    • 3、我的Python践行
    • 4、我对“长期”的解读
    • 5、总结


◆ 如何写出Pythonic的代码?


   f f f- s t r i n g string string、三元操作、各种解析式、生成器装饰器的熟练运用,“内库”引用和函数封装再加持 P E P 8 PEP8 PEP8,撰写的脚本不pythonic都难。😎


1、Pythonic定义


  Pythonic是一个经常用于描述 Python 编程语言的特定风格的术语。


以下是对 "Pythonic" 的一些释义:

  1. 符合 Python 习惯用法:代码应该遵循 Python 社区普遍接受的约定和最佳实践。这意味着代码应该看起来像是经验丰富的 Python 程序员所写。

  2. 简洁和可读性强:Pythonic 的代码通常简洁明了,避免了不必要的复杂性。它易于阅读和理解,即使是对 Python 不是特别熟悉的开发者。

  3. 利用 Python 特性:Pythonic 的代码会充分利用 Python 的语言特性,如列表推导式、生成器、装饰器、上下文管理器等,来简化代码和提高效率。

  4. 直观和自然:Pythonic 的代码往往给人一种直观的感觉,好像这就是解决问题最自然的方式。

  5. 遵循 PEP 8:PEP 8 是 Python 官方推荐的代码风格指南。遵循 PEP 8 的代码通常被认为是 Pythonic 的。


以下是一些 Pythonic 代码的例子:

  • 使用列表推导式而不是循环来创建列表:

    
    # Pythonic
    squares = [x**2 for x in range(10)]
    
    # Non-pythonic
    squares = []
    for x in range(10):
        squares.append(x**2)
        
    

  • 使用 with 语句来自动管理资源:

    
    # Pythonic
    with open('file.txt', 'r') as f:
        content = f.read()
    
    # Non-pythonic
    f = open('file.txt', 'r')
    try:
        content = f.read()
    finally:
        f.close()
        
    

  • 使用内置函数和库函数,而不是手动实现常见功能:

    
    # Pythonic
    words = text.split()
    
    # Non-pythonic
    words = []
    index = 0
    while index < len(text):
        if text[index] == ' ':
            index += 1
            continue
        word_start = index
        while index < len(text) and text[index] != ' ':
            index += 1
        words.append(text[word_start:index])
        
    

总的来说,“Pythonic” 是一个高度概括的术语,它涵盖了编写高效、清晰、符合 Python 风格的代码的理念。



回页目录


2、PEP 8


  PEP 8 是 Python 的官方风格指南,全称是 “Python Enhancement Proposal 8”,即 Python 增强提案 8。它为 Python 代码提供了一套编码规范,旨在提高代码的可读性和一致性。PEP 8 由 Guido van Rossum(Python 之父)和其他贡献者共同编写,并在 Python 社区内广泛接受和使用。


以下是 PEP 8 中的一些主要内容和建议:

  1. 代码布局

    • 缩进:使用 4 个空格来缩进代码,而不是制表符。
    • 行长度:每行不应超过 79 个字符。
    • 换行:在操作符之后换行,而不是之前。
    • 空行:使用空行来分隔函数和类定义,以及相关代码块。
  2. 字符串引用

    • 单引号和双引号:在大多数情况下可以互换使用,但应保持一致性。
    • 三引号:用于多行字符串。
  3. 表达式和语句中的空格

    • 在操作符周围添加空格,例如 a = 1 + 1
    • 在逗号、冒号和分号之后添加空格。
    • 避免在括号内添加不必要的空格。
  4. 命名约定

    • 类名:使用 CapWords(首字母大写)的命名方式。
    • 函数名:使用小写字母和下划线。
    • 变量名:同样使用小写字母和下划线。
    • 常量:使用全大写字母,并用下划线分隔单词。
  5. 编程建议

    • 避免使用不必要的复杂性。
    • 在适当的地方使用函数而不是复杂的表达式。
    • 避免使用全局变量。
    • 尽可能使用内置的数据类型和方法。
  6. 注释和文档字符串

    • 使用注释来解释代码中不那么明显的部分。
    • 使用文档字符串(docstrings)来描述模块、函数、类和方法。

  遵循 PEP 8 可以帮助开发者编写出风格一致的代码,这对于代码的维护和团队协作非常重要。虽然 PEP 8 提供了广泛的指导,但它也强调了灵活性,指出在某些情况下可以适当违反这些规则,特别是当遵循规则会导致代码可读性降低时。


(PEP 8 的完整内容可以在 Python 官方网站上的 PEP 8 页面找到)



回页目录


3、我的Python践行


  刚才学习了“PEP 8”,发现至少有90%已经是我的代码书写习惯。我应该可以自豪的说“我的python脚本比较Pythonic!😎”


  • 截屏图片一
    在这里插入图片描述

  • 截屏图片二
    在这里插入图片描述


回页目录


4、我对“长期”的解读


  确实,我对“长期写”有些感触,近3.5年来,我从初探起就一直认同齐伟老师的学习“代码要手打”的理念且一直坚持,从学堂拼错关键字到现在,5、6百行的代码,保守的说“90%的代码都可以”随心而出了,这就是得益于“长期”。💪💪

  近一年来,有您的帮衬,学习效率不只是倍增。😎😎🙏🙏


  • 截屏图片
    在这里插入图片描述



回页目录


5、总结


总结: 学习是坚持和不断总结践行的过程。在践行中深入内化知识点,在内化后更好的践行。



回页首


上一篇:  Excel中的“=”新妙用,在较高版本中大显身手(小家伙“=”抢功indirect函数,初生大力骑士已从神坛下起身)
下一篇: 



我的HOT博:

  本次共计收集 311 篇博文笔记信息,总阅读量43.82w。数据于2024年03月22日 00:50:22完成采集,用时6分2.71秒。阅读量不小于6.00k的有 7 7 7篇。

  • 001
    标题:让QQ群昵称色变的神奇代码
    (浏览阅读 5.9w )
    地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    点赞:25 收藏:86 评论:17
    摘要:让QQ昵称色变的神奇代码。
    首发:2022-01-18 19:15:08
    最后编辑:2022-01-20 07:56:47

  • 002
    标题:Python列表(list)反序(降序)的7种实现方式
    (浏览阅读 1.1w )
    地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    点赞:8 收藏:35 评论:8
    摘要:Python列表(list)反序(降序)的实现方式:原址反序,list.reverse()、list.sort();遍历,全数组遍历、1/2数组遍历;新生成列表,resersed()、sorted()、负步长切片[::-1]。
    首发:2022-12-11 23:54:15
    最后编辑:2023-03-20 18:13:55

  • 003
    标题:pandas 数据类型之 DataFrame
    (浏览阅读 9.7k )
    地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    点赞:7 收藏:36 
    摘要:pandas 数据类型之 DataFrame_panda dataframe。
    首发:2022-05-01 13:20:17
    最后编辑:2022-05-08 08:46:13

  • 004
    标题:个人信息提取(字符串)
    (浏览阅读 8.2k )
    地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    点赞:2 收藏:15 
    摘要:个人信息提取(字符串)_个人信息提取python。
    首发:2022-04-18 11:07:12
    最后编辑:2022-04-20 13:17:54

  • 005
    标题:Python字符串居中显示
    (浏览阅读 7.6k )
    地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    评论:1

  • 006
    标题:罗马数字转换器|罗马数字生成器
    (浏览阅读 7.5k )
    地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    摘要:罗马数字转换器|生成器。
    首发:2022-01-19 23:26:42
    最后编辑:2022-01-21 18:37:46

  • 007
    标题:回车符、换行符和回车换行符
    (浏览阅读 6.0k )
    地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    点赞:2 收藏:3 
    摘要:回车符、换行符和回车换行符_命令行回车符。
    首发:2022-02-24 13:10:02
    最后编辑:2022-02-25 20:07:40


推荐条件 阅读量突破6.00k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2194869.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode讲解篇之377. 组合总和 Ⅳ

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 总和为target的元素组合个数 可以由 总和为target - nums[j]的元素组合个数 转换而来&#xff0c;其中j为nums所有元素的下标 而总和target - nums[j]的元素组合个数 可以由 总和为target - nums[j] - nums[k]的…

哪个牌子充电宝质量好又靠谱?年度四大热门款充电宝清单来了

​当今时代&#xff0c;智能手机已融入我们日常生活的方方面面&#xff0c;成为了不可或缺的伙伴。然而&#xff0c;随之而来的充电需求也日益增长&#xff0c;我们在选择充电宝时经常会面临困惑。面对市场上众多的充电宝品牌和型号&#xff0c;如何挑选一款性价比高、性能稳定…

机器学习框架(含实例说明)

机器学习框架是用于开发和部署机器学习模型的软件库和工具集。它们提供了一系列的算法、工具和基础设施&#xff0c;帮助开发者更高效地构建、训练和部署机器学习模型。以下是一些主要的机器学习框架及其详细介绍&#xff1a; 1. TensorFlow TensorFlow 是由Google开发的开源…

基于STM32的智能花盆浇水系统设计

引言 本项目设计了一个基于STM32的智能花盆浇水系统。该系统通过土壤湿度传感器检测土壤湿度&#xff0c;当湿度低于设定阈值时&#xff0c;自动启动水泵进行浇水。它还结合了温湿度传感器用于环境监测。该项目展示了STM32在传感器集成、自动控制和节水智能化应用中的作用。 …

【CKA】十六、监控Pod度量指标

16、监控Pod度量指标 1. 考题内容&#xff1a; 2. 答题思路&#xff1a; 题目意思是&#xff1a;找出label有namecpu-user的CPU最高的Pod&#xff0c;然后把它的名字写在已经存在的 /opt/KUTR00401/KUTR00401.txt文件里 3. 官网地址&#xff1a; https://kubernetes.io/zh-…

Python酷库之旅-第三方库Pandas(135)

目录 一、用法精讲 606、pandas.DataFrame.sparse.from_spmatrix方法 606-1、语法 606-2、参数 606-3、功能 606-4、返回值 606-5、说明 606-6、用法 606-6-1、数据准备 606-6-2、代码示例 606-6-3、结果输出 607、pandas.DataFrame.sparse.to_coo方法 607-1、语法…

操作系统 | 学习笔记 | 王道 | 3.1 内存管理概念

3 内存管理 3.1 内存管理概念 3.1.1 内存管理的基本原理和要求 内存可以存放数据&#xff0c;程序执行前需要先放到内存中才能被CPU处理—缓和cpu和磁盘之间的速度矛盾 内存管理的概念 虽然计算机技术飞速发展&#xff0c;内存容量也在不断扩大&#xff0c;但仍然不可能将所有…

DBMS-3.4 SQL(4)——存储过程和函数触发器

本文章的素材与知识来自李国良老师和王珊老师。 存储过程和函数 一.存储过程 1.语法 2.示例 &#xff08;1&#xff09; 使用DELIMITER更换终止符后用于编写存储过程语句后&#xff0c;在下次执行SQL语句时记得再使用DELIMITER将终止符再换回分号。 使用DELIMITER更换终止符…

18732 最短路问题

### 思路 1. **建模问题**&#xff1a;将车站和公交线路建模为图&#xff0c;其中车站是节点&#xff0c;公交线路是带权边。 2. **选择算法**&#xff1a;使用Dijkstra算法求解从车站1到车站n的最短路径问题。 3. **初始化**&#xff1a;创建一个优先队列&#xff08;最小堆&…

2024年诺贝尔生理学或医学奖揭晓:microRNA及其在转录后基因调控中的作用

microRNA&#xff08;miRNA&#xff09;是一类长度约为19-25nt的内源性非编码RNA&#xff0c;它们在真核生物中通过参与基因的转录后调控&#xff0c;实现对靶基因的表达调节。miRNA的调控作用主要通过两种机制&#xff1a;翻译抑制和mRNA的降解。 翻译抑制&#xff1a;miRNA与…

LeetCode讲解篇之70. 爬楼梯

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 爬楼梯有一个规律&#xff0c;爬到第n层楼梯的方法种数 爬到第n - 1层楼梯的方法种数 爬到第n - 1层楼梯的方法种数 也就是我们爬到第n层楼梯其实是从第n - 1层楼梯向上爬1层或者是n - 2层楼梯向上爬2层转换来…

【雷达数据集】RADDet: 面向动态道路使用者的基于距离-方位-多普勒的雷达目标检测【附链接】

微信公众号&#xff1a;EW Frontier 关注可了解更多的雷达、通信、人工智能相关代码。问题或建议&#xff0c;请公众号留言;如果你觉得EW Frontier对你有帮助&#xff0c;欢迎加入我的知识星球或面包多&#xff0c;更多代码等你来学 知识星球&#xff1a;https://wx.zsxq.com/d…

美客多测评系统:批量注册买家号的新利器

美客多&#xff08;MercadoLibre&#xff09;测评系统作为一种在跨境电商领域广泛应用的策略&#xff0c;其核心在于通过批量注册并管理买家账号&#xff0c;模拟真实用户的购物行为&#xff0c;以提升产品的销量、评价数量和店铺权重。以下是对美客多测评系统中批量注册买家号…

HCIE《网络括谱图》

企业园区网 终端>接入>汇聚>核心>出口区(防火墙)>互联网

大数据新视界 --大数据大厂之TeZ 大数据计算框架实战:高效处理大规模数据

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

stm32学习笔记-RTC实时时钟

文章目录 一、RTC基础知识1.1 RTC简介1.2 RTC的晶振 二、stm32的RTC2.1 RTC和后备寄存器2.2 stm32 RTC结构框图及特性 三、stm32 RTC编程2.1 RTC初始化2.2 RTC控制程序 一、RTC基础知识 1.1 RTC简介 实时时钟的缩写是RTC(Real_Time Clock)。RTC 是集成电路&#xff0c;通常称…

第十三篇——虚数:虚构这个工具有什么用?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 认知一下就拉起来了&#xff1b;没有的东西&#xff0c;构建出来&#xf…

如何使用Flair.ai实现模特换装效果

在数字化时代&#xff0c;科技让我们实现了许多过去无法想象的功能。Flair.ai就是这样一个神奇的工具&#xff0c;它可以帮助你轻松实现模特换装效果。以下是详细步骤&#xff0c;教你如何使用Flair.ai来实现这一过程。 第一步&#xff1a;访问Flair.ai网站 首先&#xff0c;…

10.3 Linux_进程_创建守护进程

守护进程创建方法 守护进程是什么&#xff1a; 守护进程又叫精灵进程&#xff0c;是一个生存期较长的进程&#xff0c;通常独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。它是一个在后台运行的孤儿进程&#xff0c;这使得守护进程不受终端的信息影响&…

【算法笔记】二分算法原理的深度剖析

【算法笔记】二分算法原理的深度剖析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;算法笔记 文章目录 【算法笔记】二分算法原理的深度剖析前言一.二分查找1.1题目1.2朴素二分1.3细节问题1.4代码实现1.5朴素模版总结 二.在排序数组中查找…