Python的基础知识

一、编码规范

PEP8[^ 注] 编码规范

Guido的关键点之一是:代码更多是用来读而不是写。编码规范旨在改善Python代码的可读性。

风格指南强调一致性。项目、模块或函数保持一致都很重要。

[^ 注]: PEP是Python Enhancement Proposals的缩写。一个PEP是一份为Python社区提供各种增强功能的技术规格,也是提交新特性,以便让社区指出问题,精确化技术文档的提案。《Python Enhancement Proposal #8》 (8号python增强提案)又叫PEP8,他针对的python代码格式而编订的风格指南。

1.1 注释

所谓注释,就是在程序中添加解释说明,能够大大增强程序的可读性。注释中的内容,不是真正要执行的程序,起辅助说明作用

单行注释

以#开头,#右边的所有东西当做说明

# 我是注释,可以在里写一些功能说明之类的哦
print('hello world')

多行注释(文档注释)

使用3引号,3个单引号或者3个双引号

'''
我是多行注释,可以写很多很多行的功能说明
这就是我牛X指出 哈哈哈。。。
'''
"""
我也是多行注释啊,巴拉巴拉。。
"""

1.2 缩进

每级缩进用4个空格

python 不使用 {} 来组织代码,完全依靠缩进,所以缩进的格式非常重要。

使用4个空格来缩进,不要使用 tab ,更不能 tab 和 空格混用。

使用空格的时候永远使用4个空格,不能使用其他数量的空格,否则语法错误。

建议把开发工具的tab改成4个空格。

1.3 分号

python不严格要求使用分号( ;)。

理论上应该每行放一句代码。每行代码之后可以添加 分号; 也可以不添加 分号;

尽量不要多句代码放在一行,如果放在一行,则需要添加分号把他们隔开。

1.4 行长度

每行不超过80个字符(最大行宽为79字符,文本长块,比如文档字符串或注释,行长度应限制为72个字符。)

以下情况除外:

  1. 长的导入模块语句
  2. 注释里的URL

不要使用反斜杠连接行。

如果一个文本字符串在一行放不下, 可以使用圆括号来实现隐式行连接:

x = ('这是一个非常长非常长非常长非常长 '
'非常长非常长非常长非常长非常长非常长的字符串')

1.5 空行

两行空行分割顶层函数和类的定义。

类的方法定义用单个空行分割。

额外的空行可以必要的时候用于分割不同的函数组,但是要尽量节约使用。

额外的空行可以必要的时候在函数中用于分割不同的逻辑块,但是要尽量节约使用。

1.6 源文件编码

在核心Python发布的代码应该总是使用UTF-8(ASCII在Python 2)。

# Python推荐使用
#-*- coding:utf-8 -*-
# 简化写法
# encoding: utf-8

Python 3(默认UTF-8)不应有编码声明。

1.7 导入在单行

import os
from urllib2 import request

导入始终在文件的顶部,在模块注释和文档字符串之后,在模块全局变量和常量之前。

导入顺序如下:标准库进口,相关的第三方库,本地库。各组的导入之间要有空行。

禁止使用通配符导入。

1通配符导入(from import *)应该避免,因为它不清楚命名空间有哪些名称存,混淆读者和许多自动化的工具。

1.8 括号

宁缺毋滥的使用括号,除非是用于实现行连接, 否则不要在返回语句或条件语句中使用括号. 不过在元组两边使用括号是可以的.

括号里边避免空格

# 括号里边避免空格
# Yes
spam(ham[1], {eggs: 2})
# No
spam( ham[ 1 ], { eggs: 2 } )

1.9 空格

按照标准的排版规范来使用标点两边的空格

1.9.1括号内不要有空格.

Yes: spam(ham[1], {eggs: 2}, [])

No:  spam( ham[ 1 ], { eggs: 2 }, [ ] )

1.9.2 不要在逗号, 分号, 冒号前面加空格, 但应该在它们后面加(除了在行尾).

Yes: x = 4
if x == 4:
y = 2
print(x,y)
x,y = y,x #交换了两个数
print(x,y) No: if x == 4 :
print(x , y)
x , y = y , x

1.9.3参数列表, 索引或切片的左括号前不应加空格.

Yes: spam(1)

no: spam (1)

Yes: dict['key'] = list[index]

No:  dict ['key'] = list [index]

1.9.4在二元操作符两边都加上一个空格,

比如赋值(=), 比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not). 至于算术操作符两边的空格该如何使用, 需要你自己好好判断. 不过两侧务必要保持一致.

Yes: x == 1

No:  x<1

但是注意:当'='用于指示关键字参数或默认参数值时, 不要在其两侧使用空格.

Yes: def complex(real, imag=0.0): return magic(r=real, i=imag)

No:  def complex(real, imag = 0.0): return magic(r = real, i = imag)

用空格来垂直对齐多行间的标记, 因为这会成为维护的负担(适用于:, #, =等):

Yes:
foo = 1000 # 注释
long_name = 2 # 注释不需要对齐 dictionary = {
"foo": 1,
"long_name": 2,
} No: ./¯9*((XQ))
foo = 1000 # 注释
long_name = 2 # 注释不需要对齐 dictionary = {
"foo" : 1,
"long_name": 2,
}

强烈不建议使用复合语句(Compound statements: 多条语句写在同一行)。

if foo == 'blah': print(100)

2.1 标识符和关键字

标识符就是对程序中变量,常量,类,方法,参数等命名时使用的字符序列。

关键字(保留字)就是python中预先保留下来,具有特殊含义的词。

Python的关键字:

and	as	assert	break	class	continue	def	del	elif	else	except
exec finally for from global if in import is lambda not or pass
print raise return try while with yield

命名规则如下(会背)

  1. 标识符由字母,下划线,和数字组成,且数字不能开头

  2. python 大小写敏感。 a 和 A 是完全不同的。

  3. 不能是python关键字。

编码习惯:

  1. 见名知意

  2. 使用有意义的,英文单词或词组,绝对不要使用汉语拼音

  3. 下划线命名和驼峰式命名

    ​ 下划线:student_name

    ​ 小驼峰:studentName

    ​ 大驼峰:StudentNameTable

  4. 避免采用的名字

决不要用字符'l'(小写字母el),'O'(大写字母oh),或 'I'(大写字母eye) 作为单个字符的变量名。一些字体中,这些字符不能与数字1和0区别。用'L' 代替'l'时。


补充:pycharm的一些常用快捷键

ctrl+y:删除当前行

ctrl+d:复制当前行

ctrl+/:添加或删除注释

ctrl+alt+L:格式化

shift+enter:强制换行

Python第一章-编码规范的更多相关文章

  1. 简学Python第一章__进入PY的世界

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  2. 学习笔记之Python最简编码规范

    Python最简编码规范 - 机器学习算法与Python学习 https://mp.weixin.qq.com/s/i6MwvC4jYTE6D1KHFgBeoQ https://www.cnblogs ...

  3. Python 常用 PEP8 编码规范

    Python 常用 PEP8 编码规范 代码布局 缩进 每级缩进用4个空格. 括号中使用垂直隐式缩进或使用悬挂缩进. EXAMPLE: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  4. python的统一编码规范

    请注意这一点:没有编码规范的代码没有阅读价值,也更谈不上复用. 目前业界比较流行的Python的编码规范目前主要有PEP8的编程.Google的编码风格.Python Guide和Pocoo Styl ...

  5. Python PEP 8 编码规范中文版

    原文链接:http://legacy.python.org/dev/peps/pep-0008/ 转发链接:https://blog.csdn.net/ratsniper/article/detail ...

  6. Python最简编码规范

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

  7. python第一章计算机基础

    第一章 计算机基础 1.1 硬件 计算机基本的硬件由:CPU / 内存 / 主板 / 硬盘 / 网卡 / 显卡 / 显示器 等组成,只有硬件但硬件之间无法进行交流和通信. 1.2 操作系统 操作系统用 ...

  8. Python第一章-基础知识

    第一章:基础知识 1.1 安装python.     直接官网下载最新的python然后默认安装就可以了,然后开始菜单里找到pyhton *.*.* Shell.exe运行python的交互shell ...

  9. python第一章:简介与安装--小白博客

    Python简介 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项 ...

随机推荐

  1. 烘焙ID贴图

    ID贴图(ID Map)的作用主要就是用来区分同一个模型中不同的区块,具体的用法查看此文.下面介绍几种不同的方式来烘焙ID贴图,用到的工具分别是Blender和Substance Painter. 在 ...

  2. Rails工程实战记录

    项目git:https://github.com/yixiaoyang/ruby 为熟悉Rails的基本特性创建的工程,本博文仅作更新记录. (1)2013.10.1-2013.10.5 Ruby基本 ...

  3. diary20180428

    17:05:59 今天早晨去了图书馆.学习了一把vscode.试图在河边看电脑,总有小虫不让我专心. 23:27:34 看纯黑直播打战神,有点感触. 动漫或游戏,角色觉醒,实力大增,小时候(甚至现在) ...

  4. CSS——NO.2(CSS样式的基本知识)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  5. 30s源码刨析系列之函数篇

    前言 由浅入深.逐个击破 30SecondsOfCode 中函数系列所有源码片段,带你领略源码之美. 本系列是对名库 30SecondsOfCode 的深入刨析. 本篇是其中的函数篇,可以在极短的时间 ...

  6. Python第一周基本语句学习整理

    目录 Python第一周基本语句学习整理 一.字符串切割 二.体重单位转换 三.计算器的实现 四.猜年龄游戏 Python第一周基本语句学习整理 一.字符串切割 代码实现: s = 'luowenxi ...

  7. springboot自动装配原理回顾、配置文件分析

    配置文件 spring boot官方文档 官方外部配置文件说明参考文档 自动配置原理分析 1. SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfigurat ...

  8. 在windows上极简安装GPU版AI框架(Tensorflow、Pytorch)

    在windows上极简安装GPU版AI框架 如果我们想在windows系统上安装GPU版本的AI框架,比如GPU版本的tesnorflow,通常我们会看到类似下面的安装教程 官方版本 安装CUDA 安 ...

  9. VUE实现Studio管理后台(九):开关(Switch)控件,输入框input系列

    接下来几篇作文,会介绍用到的输入框系列,今天会介绍组普通的调用方式,因为RXEditor要求复杂的输入功能,后面的例子会用VUE的component动态调用,就没有今天的这么直观了,控件的实现原理都一 ...

  10. Deepin环境下启动Pycharm没有启动图标解决办法

    小伙伴们在deepin下运行pycharm时,是不是需要通过sh文件启动? 下面告诉大家如何将pycharm图标放在桌面上: 1.在桌面打开终端,输入命令: sudo gedit /usr/share ...