Pycharm 如何自动调整 Python 代码符合 pep8 编码规范

news2024/9/21 16:38:23

前言

学生时代,写的一手漂亮的好字,能给人留下好的印象。作为 IT 人,写的一手漂亮的代码也会给人留下美好的印象。
代码就是自己的脸面,不管写质量怎样,首先要写的漂亮。Python 有一套 pep8 编码规范标准。

什么是 pep8 编码规范标准

PEP是Python Enhancement Proposal的缩写,通常翻译为“Python增强提案”。
每个PEP都是一份为Python社区提供的指导Python往更好的方向发展的技术文档,其中的第8号增强提案(PEP 8)是针对Python语言编订的代码风格指南。

​尽管我们可以在保证语法没有问题的前提下随意书写Python代码,但是在实际开发中,采用一致的风格书写出可读性强的代码是每个专业的程序员应该做到的事情,
也是每个公司的编程规范中会提出的要求,这些在多人协作开发一个项目(团队开发)的时候显得尤为重要。

我们可以从Python官方网站的PEP 8链接中找到该文档https://peps.python.org/pep-0008/

这套编码规范要求有很多,没个1-2年的代码功底,你根本记不住。

举个例子

先看一个不好的示范

# Wrong:
from time import time,strftime

def long_function_name(
        var_one,var_two,var_three,var_four):
    print(var_one)
    print(var_two)
    print(time())
    return "hello"

# 调用函数
foo = long_function_name(var_one="a",var_two="b",var_three="c",var_four="d")
print(foo)

上面的代码虽然运行没有问题,但是在编辑器里面阅读会让人分分钟想骂娘

写的代码不用桨,全靠浪~~~

快捷键实现

可以用快捷键ctr+alt+L快速格式化代码,pycharm会按pep8标准给你美化
还有一种方法,安装autopep8插件,继续往下看

Pycharm 安装autopep8

如果我们想写出没有浪的代码,我们也不需要用桨,用 pycharm 的插件 autopep8 即可实现一键实现。

先pip安装autopep8

pip install autopep8

安装成功后开始在pycharm配置autopep8
依次点击file–>settings–>tools–>external tools–>点击绿色的加号添加工具弹出以下界面:
name和description可以自己随便写

找到安装的autopep8所在位置,在Script目录下
如果用的虚拟环境,那么在venv/Script目录下

Tool setting三个参数
Progarm: D:\...\venv\Scripts\autopep8.exe填写autopep8.exe的绝对地址
Arguments: --in-place --aggressive $FilePath$
Working directory: $ProjectFileDir$

自动调整pep8格式

上面的步骤安装完成后,回到 pycharm 的代码区域
右键-External Tools- autopep8

也可以在顶部Tools 中找到

点击后代码会自动调整为pep8规范

当然这个也不是100%的给你全部调整,它会调整一些基本的格式,比如缩进四个空格,函数前面空2行,变量左右两边给空格等一些基础的。
其它的不能调整的需要自己手工再调整下。

让代码更完美

pep8 让你的代码符合编码规范, 如果想写到完美,还需要进一步调整

完美看到右侧会有一些不同颜色的横线,这其实就是一些警告,需要自己再进一步调整,去掉多余代码,减少重复代码

当我们看到右侧没有各种颜色的横线,并且右上角有个绿色的√,那么恭喜你,你的代码是漂亮干净并且完美的!

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

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

相关文章

电感重要参数的理解

电感作为一种储能元件,广泛运用在硬件电路的各个模块。较为常见的有DCDC电路,滤波电路以及振荡电路等。对于电感的选取,大多数人往往只关心感值,感值越大,储能越强,纹波也就越小。然而除了感值以外&#xf…

用Python剪辑视频?太简单了

人生苦短,快学Python! 最近我在网上下载一个视频,结果下载到本地是近百个视频片段,为了方便观看只能将这些片段合并为一个视频整体。 不过我并没有搜到能够处理类似情况的小工具,只是发现剪映等软件可以实现视频合并功…

Allegro DFM Ravel Rule丝印文字到测试点pad间距检查

Allegro DFM Ravel Rule丝印文字到测试点pad间距检查 下面介绍丝印到测试点pad间距检查 设置top层丝印文字到孔属性测试点间距,默认值是1mil,可以自己修改这个值 设置bottom层丝印文字到孔属性测试点间距 设置top层丝印文字到通孔pin属性测试点间距 设置bottom层丝印文字…

VAEGAN:理解 VAE 与 GAN【图像生成】

标准VAE(Variational Autoencoder)的原理: 在autoencoder模型中,我们加入一个编码器,它能帮我们把图片编码成向量。然后解码器能够把这些向量恢复成图片。 标准自编码器我们现在获得了一个有点实际用处的网络了。而且我们现在能训练任意多的…

mulesoft Module 4 quiz解析

mulesoft Module 4 quiz1. What is NOT part of a Mule 4 event?2. A Database connector is configured to select rows from a Mysql database.3. What is the minimue required configuration in a flow for a Mule application to compile?4. What is the purpose of the…

Qt读写Excel文件与QXlsx的使用

最近项目比较忙,许久没写博客了,想着还是需要定期整理下学到的和用到的新东西,才有沉淀。刚好最近使用Qt时需要读取excel文件的数据,于是在github找了一个开源库QXlsx,Star数还比较多,应该靠谱,…

【CV】第 2 章:使用本地二进制模式的内容识别

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

MPLS隧道——PE与CE之间运行不同路由协议的情况分析

目录 PE和CE之间运行OSPF路由协议 Ospf的Dmian ID(还原属性) Ospf的Sham Link属性 OSPF的DN置位与VPN Router Tag PE和CE之间运行BGP路由协议 AS号替换功能 BGP的SoO属性 PE和CE之间可以不同部署不同的路由协议,部署不同的路由协议会存…

量子笔记:多比特量子门

目录 0. 前言 2. 量子多重H门 3. 量子SWAP门 4. 量子CNOT门(CX门):受控非门 5. 量子CY和CZ门 6. 量子C*门 6.1 受控S门 6.2 受控H门 6.3 受控Z旋转门 6.4 受控X旋转门 6.4 受控Y旋转门 7. 量子托佛利门(CCNOT门) 8. 量子弗雷德…

【Linux】Linux中的gcc/g++编译器的使用

💬推荐一款模拟面试、刷题神器 、从基础到大厂面试题:👉点击跳转刷题网站进行注册学习 目录 一、编译的过程 1、预处理阶段 1.1预处理的工作——头文件展开、去注释、宏替换、条件编译 1.2外部定义宏(-D选项) 1.…

记一次网络安全应急响应流程

0x01 事件分析 网站源码被篡改,攻击者一定获取到了权限,那么接下来的思路就是推测攻击者入侵手段,找到业务脆弱点,对服务器进行全方位排查,找到攻击者留下来的痕迹并进行分析处理。 2.1 信息收集 与客户简单沟通后&…

【C++】动态联编、delete/free【有无析构】的使用,虚析构

文章目录动态联编的条件:联编的概念:1. 动态联编:2. 静态联编:静态联编时确认了那些属性:结论:基类指针和派生类指针访问虚函数结论:delete和free的使用条件:1. 没有析构函数时&…

由一个按键程序引发的思考(上)

说起按键程序,只要会单片机的肯定都很熟悉。一般开始学习单片机的时候,入门程序基本都是LED灯和按键。那么这个按键程序有什么特别的吗,还需要专门去思考吗?如果我刚开始学单片机的时候也会这么想,但是随着项目的积累&…

微信早安消息推送(大升级版-企业微信)

微信早安消息推送(企业微信) 在微信公众号推送的基础上的一个升级 新增图文、疫情状况等 可以修改头像 、 昵称 效果展示 更多资讯 源代码获取 → 薇信公粽号“Cloud技术栈”,回复“企业微信推送” ———————————————————…

【贪心算法-LeetCode3:无重复字符的最长子串(Java实现)】

无重复字符的最长子串一、题目描述1.题目内容2.样例二、解决方案1.算法流程1)分析2)算法流程2.Java代码1)核心代码2)完整测试代码个人社区:https://bbs.csdn.net/forums/smile 个人主页:https://blog.csdn.…

STM32G070RBT6基于STM32CubeMX创建定时器中断控制LED闪烁

STM32G070RBT6基于STM32CubeMX创建定时器中断控制LED闪烁📍相关篇《【硬件开源电路】STM32G070RBT6开发板》🌺配置内容演示: 📚功能介绍 📑通过STM32CubeMX配置定时器1和定时器3分别作为两个led的定时闹钟。这里作为…

单片机原理及应用实验一交通信号系统(基于Proteus仿真)

1.实验内容与要求 交通信号系统是保障交通安全高效的重要设施。51单片机价格低廉、体积小、低功耗、抗干扰性好等优点,适用于交通信号系统中,本实验利用51单片机IO口的开关量的输入输出功能及内部CPU运算功能,设计一个简易的交通信号灯系统&…

生成.keystore 安卓签名

需要有openssl.exe和keytool.exe支持 signapk.jar手动签名命令 java -jar signapk.jar pl.x509.pem pl.pk8 smartrecord_3.5.8.apk smartrecord_3.5.8-signed.apk除了直接使用signapk.jar签名外,还可以将签名文件生成keystore文件,然后配置编译器给apk进…

数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(5)

文章目录前期准备1. 将create Time列设置为索引2. 生成一个和df长度相同的随机数DataFrame3. 将上一题生成的DataFrame与df合并4. 生成的新的一列new值为salary列减去之前生成的随机数列5. 检查数据中是否含有空值6. 将salary类型转换成浮点数7. 计算salary 大于10000的次数8. …

多线程之线程池

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、什么是线程池二.为什么要有线程池引入:为什么从池子里取,比创建线程速度要快什么是用户态,什么是内核态最终结论&#xf…