1. 什么是 PEP8?

答:PEP8 --《Python Enhancement Proposal #8》(8 号 Python 增强提案),他针对的 Python 代码格式而编订的风格指南。

2. 了解 Python 之禅么?

答:通过 import this 语句可以获取其具体的内容。它告诉大家如何写出高效整洁的代码。例如:

避复就简
Simple is better than complex.

避隐就显
Explicit is better than implicit.

能不嵌套就不嵌套
Flat is better than nested.

3. 了解 DocStrings 么?

答:

1)DocStrings 文档字符串是一个重要工具,主要是解释代码作用的,帮助你的程序文档更加简单易懂。
2)我们可以在函数体的第一行使用一对三个单引号 ‘’’ 或者一对三个双引号 “”" 来定义文档字符串。
3)可以使用 doc(注意双下划线)调用函数中的文档字符串属性。

def function():''' say something here!'''pass
print (function.__doc__) # 调用 doc

输出结果为:

 say something here!

4. 了解类型注解么?

答:
Python是动态语言,变量随时可以被赋值,且能赋值为不同的类型
Python不是静态编译型语言,变量类型是在运行器决定的
动态语言很灵活,但是这种特性也是弊端

    def add(x, y):return x + yprint(add(4, 5))print(add('hello', 'world'))add(4, 'hello')   

难发现:由于不做任何类型检查,直到运行期问题才显现出来,或者线上运行时才能暴露出问题
难使用:函数的使用者看到函数的时候,并不知道你的函数的设计,并不知道应该传入什么类型的数据

函数注解

  • Python 3.5 引入
  • 对函数的参数进行类型注解
  • 对函数的返回值进行类型注解
  • 只对函数参数做一个辅助的说明,并不对函数参数进行类型检查
  • 提供给第三方工具,做代码分析,发现隐藏的bug
  • 函数注解的信息,保存在__annotations__属性中
def add(x:int , y:int) -> int:''':param x::param y::return:'''return x + y
print(help(add))
print(add.__annotations__)

运行结果

add(x:int, y:int) -> int:param x::param y::return:
None
{'x': <class 'int'>, 'y': <class 'int'>, 'return': <class 'int'>}

变量注解

Python 3.6引入。它也只是一种对变量的说明,非强制

i:int = 3

5. 例举你知道 Python 对象的命名规范,例如方法或者类等

答:

:总是使用首字母大写单词串,如 MyClass。

内部类:可以使用额外的前导下划线。

变量:小写,由下划线连接各个单词。方法名类似

常量:常量名所有字母大写 等

函数&方法:函数名应该为小写,可以用下划线风格单词以增加可读性,如:myfunction, my_example_function。(混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。)

函数和方法的参数:总使用“self”作为实例方法的第一个参数。总使用“cls”作为类方法的第一个参数。
如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪的拼写。

详情见:python命名规范

6. Python 中的注释有几种?

答:总体来说分为两种,单行注释和多行注释。

单行注释在行首是 #。
多行注释可以使用三个单引号或三个双引号,包括要注释的内容。

7. 如何优雅的给一个函数加注释?

答:可以使用 docstring 配合类型注解

8. 如何给变量加注释?

答:可以通过变量名:类型的方式如下

a: str = "this is string type"

9. Python 代码缩进中是否支持 Tab 键和空格混用。

答:不允许 tab 键和空格键混用,这种现象在使用 sublime 的时候尤为明显。

一般推荐使用 4 个空格替代 tab 键。

10. 是否可以在一句 import 中导入多个库?

答:可以是可以,但是不推荐。因为一次导入多个模块可读性不是很好,所以一行导入一个模块会比较好。同样的尽量少用 from modulename import *,因为判断某个函数或者属性的来源有些困难,不方便调试,可读性也降低了。

11. 在给 Py 文件命名的时候需要注意什么?

答:
给文件命名的时候不要和标准库中的一些模块重复,比如 abc。
另外要名字要有意义,不建议数字开头或者中文命名。

12. 例举几个规范 Python 代码风格的工具

答:

自动检测工具Pylint:一个检查违反 PEP8 规范和常见错误的库,它会自动查找不符合代码风格标准和有潜在问题的代码,并在控制台输出代码中违反规范和出现问题的相关信息。

自动优化工具Black:在众多代码格式化工具中,Black算是比较新的一个,它最大的特点是可配置项比较少,个人认为这对于新手来说是件好事,因为我们不必过多考虑如何设置Black,让 Black 自己做决定就好。
在使用方面,black默认读取指定python文件并对其进行代码规范格式化,然后输出到原文件。

python面试题总结(2)--编码规范相关推荐

  1. Python编码规范(PEP 8)

    文章目录 在讲解具体的 Python 编码规范之前,先来看看图 1 中的代码: 对比图 1 中的两段代码你会发现,它们所包含的代码时完全相同的,但很明显,右侧的代码编写格式看上去比左侧的代码段更加规整 ...

  2. Python的编码规范(超详细)

    目录 一.前言 二.编写规范 三.命名规范 四.结语 一.前言 编码的规范性对代码的整体展现有着较大的影响. 先让我们看两张规范与不规范的代码截图来感受下. 先让我们看看不规范的吧. 看完有什么感觉吗 ...

  3. 腾讯大佬的 Python 编码规范

    文末有干货 "Python高校",马上关注 真爱,请置顶或星标 版权声明:本文为CSDN博主「天元浪子」 原文链接:https://blog.csdn.net/xufive/art ...

  4. google python代码规范_如何用好python编码规范,写一手漂亮的代码

    前一段时间在编写python 代码的时候编辑器中一直在提示规范问题,因为强迫症的原因,我决定遵循python 的编码规范去编码,然后把需要注意的点记录下来, 帮助自己和大家一起成长. 这是我的main ...

  5. Python最简编码规范

    0.前言 本文是阅读<Python Coding Rule>之后总结的最为精华及简单的编码规范,根据每个人不同喜好有些地方会有不同的选择,我只是做了对自己来说最简单易行的选择,仅供大家参考 ...

  6. python 编码规范 PEP8整理

    我是用Python的IDE:pycharm来编写Python代码的,用IDE编写代码有一个好处就是语法高亮,智能提示.Python的代码样式规范称之为PEP 8规范,每次编写代码如果有出现不符合PEP ...

  7. python编码规范手册-Python官方竟然给出了一种编码规范PEP 8

    写在之前 每个人都有自己的代码风格,随着写的行数增加,自己对于代码的审美也会变的不一样,这就像是一个逐渐蜕变的过程,每过一段时间回头再去看看自己之前写的代码就会生出一种「这么丑的玩意儿竟然是我写的」这 ...

  8. python编码规范手册-python之(8)Python编码规范整理

    我是用Python的IDE:pycharm来编写Python代码的,用IDE编写代码有一个好处就是语法高亮,智能提示.Python的代码样式规范称之为PEP 8规范,每次编写代码如果有出现不符合PEP ...

  9. python编码规范手册-PEP8 Python 编码规范整理

    决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...

  10. PEP8 Python 编码规范整理

    决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...

最新文章

  1. 互联网协议 — TCP — (面向面向连接的)三次握手、四次挥手
  2. python画椭圆-Python易学就会(五)turtle绘制椭圆与递归
  3. linux下文件系统的启动过程
  4. ASP.NET Core 3.x启动时运行异步任务(二)
  5. 创建下标为1-10的整形数组
  6. 18计算机二级考试用word吗,计算机二级Word篇-实操真题详解18
  7. 基于Pytorch的多任务推荐系统开源框架
  8. springboot 文件上传 设置文件大小配置
  9. 哪些东西影响计算机运行速度,影响电脑运行速度的因素主要的哪些?
  10. 通过雷达图的面积进行总体对比分析是不可靠的!
  11. 22. Asteroid: the PyTorch-based audio source separation toolkit for researchers
  12. 爬虫 (十九) 有趣的例子认识 while 循环 (十)
  13. 30000字Linux期末考试复习总结
  14. Zynq实现分布式Fir滤波器
  15. 2.Matlab图像坐标变换
  16. ACM 投稿时CCS CONCEPTS 生成及插入
  17. 通信感知一体化关键技术(IMT-2030 6G)
  18. 2020-09-24
  19. Python爬虫要学多久
  20. 微信小程序通过css实现底部边大圆弧效果

热门文章

  1. 英语一段落排序题技巧
  2. Android Gradle 批量修改生成的apk文件名
  3. 让钱生钱!商人赚钱的6条方法
  4. HEVC/H265 HM10.0 分析(一)NALread.cpp
  5. 国家部委对4G调研:未定给中电信联通发放牌照
  6. 面试问题汇总 精选 分析 解答 职业规划 part 1
  7. 在windows xp下编译出ffmpeg.exe
  8. 帧间、帧内像素块预测
  9. POJ 3352 Road Construction ; POJ 3177 Redundant Paths (双联通)
  10. 实验五 类和对象-3