注释:单行注释和多行注释
单行注释(行注释 和 块注释):
单行注释符 #
# 右侧的代码或者内容是不会被执行的
为了提高可读性,注释应该至少离开代码2个空格
多行注释(文档字符串 doctring):
我们对文档字符串的惯例是使用三重双引号" " "
shebang (Hashbang):
由#号和!号构成的字符串行,其出现在文本文件的第一行的两个字符
#!用于帮助内核找到Python解释器,但是在导入模块时会忽略。因此只有被直接执行的文件中才有必要加入#!
能否写好注释或者正确的做注释是一个优秀程序员的必修课 。
注释在程序运行过程中是可有可无的,它是附加在程序上的说明或者简单的标识,能够在短时间内理解程序的作用,对提高工作效率非常有帮助。
中文问题:
指定编码类型:UTF-8
Python2中文件的默认编码是ASCII,在文件中含有中文时会报错,因此在文件开头写上
#-*- coding:utf-8 -*-
python3中,文件的默认编码为utf-8。
小知识:
ASCII:美国标准信息交换代码,是基于拉丁字母的一套计算机编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位数来表示(一个字节),即2^8=256,所以ASCII码最多只能表示256个符号
Unicode:万国码,是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一且唯一的二进制编码,规定所有的字符和符号最少由16位来表示(2个字节),即:2^16=65536
UTF-8:是对Unicode编码的压缩和优化,它不再局限于最少使用两个字节,而且将所有字符和符号进行分类:ASCII码中的内容用1个字节保存、欧洲的字符用2个字节保存、东亚的字符用3个字符保存……
为了不必要的麻烦,必要时可以直接在文件开头加上:
#!/usr/bin/env python
# -*-coding: utf-8 -*-
模块导入:
模块是Python的命令集(通常就是Python文件),可以在一个脚本中导入另一个模块,也可以把模块导入到PythonShell的交互模式下。
import demo
表达式和语句:
表达式:值和运算符的组合,会产生新值,和数学的表达式定义是一致的。
语句:执行人物的指令,没有返回值。比如:x=1+1是一个语句,其中的1+1是表达式。
合理应用空白:空行 空格 缩进
空行:
顶级定义之间空两行,比如函数或者类定义。方法定义、类定义与第一个方法之间都应该空一行;某些地方
若合适就空一行。主要目的还是为了阅读方便。
空格:
<1>不要在逗号、分号、冒号前面加空格,在它们后面加,如果是行尾,则不加;括号内部要有空格。
正确:spam(ham[1], {eggs:2}, [])
错误:spam( ham[ 1 ], { eggs:2 }, [ ])
<2>在二元操作符两边都加上一个空格,比如:赋值(=)、比较(==、<、>、!=、<>、<=、>=、in、not in、is、is not),布尔(and 、or 、not)。
正确:x == 1
错误:x<1
<3>当=用于指定关键字参数或默认参数值时,不要在其两侧使用空格。
正确:def complex(real, imag=0.0): return magic(r=real, i=imag)
错误:def complex(real, imag = 0.0): return magic(r = real, i = imag)
<4>不要用空格来垂直对齐多行间的标记,看起来很整齐,但是这会成为维护的负担(适用于,、#、=等)。
正确:foo = 1000
long_name = 2
dictionary = {
"foo": 1,
"long_name": 2,
}
错误:foo = 1000 #等号不需要对齐
long_name = 2 #注释不需要对齐
dictionary = {
"foo" : 1,
"long_name": 2,
}
缩进:
Python中的缩进除了可以用来对齐相同特征的元素,使代码更具可读性外,更重要的是,可以用来分组。对于需要组合在一起的语句或表达式,Python采用相同空格的缩进进行区分,比如函数和它的代码块。
tab键
#字典中四个空格缩进
foo = {
long_dictionary_key:
long_dictionary_value,
……
}