如何写出Pythonic的代码?

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


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


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


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


等风来,不如追风去……


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篇。


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

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



回页首


老齐漫画头像

精品文章:

来源:老齐教室


Python 入门指南【Python 3.6.3】


好文力荐:


CSDN实用技巧博文:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻精灵_cq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值