基本开发规范、格式化输出与字体简单处理
易读,易维护,易扩展
字符编码,执行平台系统编码,文件编码,文件内容编码三统一。
使用python,需要在开始前声明字符编码规则(尤其是用python2)。# -*-coding:utf-8-*-
变量名,门牌号比喻,指向内存地址,命名规则(官方推荐下划线形式,须对指向的内容有描述性)
python用缩进区分代码块,顶级代码块必须顶行写,同级代码块缩进必须一致。需要注意的是,在不同系统间Tab键的定义有别,先将Tab设置自动转为4个空格,多行快速缩进,设置好Tab键的情况下,shift+Tab
注释:单行用#空格即# ,多行用多个#或者用三引号“”“ ”“”。 快捷键操作: 选定注释对象,ctrl+/
- PEP8基本规则:
- 关于缩进:使用足够的缩进,使得代码的可读性更高,不足的缩进,不好看。另外,python流行的缩进是仅使用空格,所以制表符和空格绝对不能混淆,更不能混用,尽量使用空格而非制表符,或者提前设置将制表符自动转化为4个空格
- 关于空行:类和顶级函数之间,用双空行间隔;类内部函数之间,用单空行间隔
- 关于每行的内容:每行最多放79个字符
- py2默认编码为ascii或者Latin-1,但py3的默认编码为utf-8
- 在模块导入时,大模块每个模块用一个import导入一下,尽量避免几个模块一并import。但是如果是是从大模块中导入几个小模块,from import 可以合并。
- 元素之间的空格,在运算符两侧都各加一个空格;在逗号,分号,冒号之后需要留一个空格但是其前面不能加空格。注意在定义和调用函数时,关键参数的等号两侧不能加空格。
- 注释应当易读,可读性差的注释还不如没有注释。单行注释#后要加一个空格,多行注释,注意段落关系。如果注释内容较长,内容最后要用句号结束,并且句号后要保留两个空格。行内注释,尽量少用。
- 关于命名规范
2.1 “”“ ”“” 用于多行注释的同时,能方便的用于定义输出格式
2.2占位符
%方式基本格式 % [(name)] [flags] [width] .[precision] typecode
(name)为指定key值,可选
[flags] 可选,主要作用如下表:
可选项 |
实现功能 |
+ |
右对齐;并且在给定的数字前加符号(正,负) |
- |
左对齐;正数无符号,负数加负号 |
空格 |
右对齐;正数前加空格,负数前加负号 |
0 |
右对齐;正数前无符号,负数前加负号用0填充空白 |
[width] 占用宽度,可选
[precision] 小数点后保留的位数,可选
typecode,指定替换的值得类型:
类型 |
规定范围 |
s |
字符串 |
d |
十进制整数 |
e |
科学计数法 |
E |
科学计数法,用E表示 |
f,F |
转化为浮点型 |
o |
整数转化为八进制表示 |
g |
保留有效数字为,并转化成小数或科学计数法输出 |
G |
与g的功能区别在于,E表示科学计数 |
c |
数字转化为Unicode对应的值, |
r |
获取所获对象的__repr__方法返回值 |
% |
%%可表示一个百分号 |
总结一下常见的部分占位符:
类型 |
占位符 |
描述 |
字符串输出 |
%s |
字符串占位符 |
%20s |
右对齐,占位符20位 |
|
%-20s |
左对齐,占位符20位 |
|
%.5s |
截取5位字符串 |
|
%20.5s |
20位占位符,截取5位字符串 |
|
数字输出 |
%i |
整数 |
%d |
十进制整数 |
|
%o |
八进制整数 |
|
%x |
十六进制整数 |
|
%X |
十六进制整数,大写 |
|
%u |
无符号整数 |
|
%f |
浮点数 |
|
%.2f |
截取浮点数2位小数 |
|
%e |
科学计数法(默认保留小数点后6位有效数字) |
|
%.4e |
科学计数法,保留4位小数位 |
|
%g |
在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法 |
|
%.2g |
保留2位有效数字的前提下,使用小数方式或科学计数法 |
2.3 format 方式格式化输出
基本语法格式[ [fill] align] [sign] [#] [0] [width] [,] [.precision] [type]
[fill]可选部分,指定空白的填充内容
align可选,配合width使用实现对齐方式,具体的:
选项 |
实现效果 |
< |
内容左对齐 |
> |
内容右对齐(默认) |
= |
内容右对齐,将符号放置在填充字符的左侧,只对数字类型数据有效,符号+填充对象+数字 |
^ |
内容居中处理 |
[sign]可选,有无符号数字
[#]可选,实现二进制,八进制,十六进制前的特殊标识。0b/ 0o/ 0x
[,]可选,数字的千位分隔符
[width] 可选,格式化输出所占宽度
[ .precision] 可选 ,小数位保留精度
[type] 可选,具体的格式化的类型。参照%格式
几个使用实例:
print('my name is {name} my age is {age}'.format(name='abc',age=18)) print('my name is {} my age is {}'.format('abc',18)) print('my name is {0}{0} my age is {1}'.format('abc',18))
基本语法格式:“\033[ 显示方式; 字背景颜色; 字体颜色m 显示内容字符串 \033[0m”
显示方式主要参数:
参数 |
描述 |
0m |
默认值 |
1m |
高亮 |
22m |
非粗体 |
4m |
下划线 |
24m |
非下划线 |
5m |
闪烁 |
25m |
非闪烁 |
7m |
反显 |
27m |
非反显 |
30m——37m |
设置前景色 |
40m——47m |
设置背景色 |
字体颜色主要参数:
前景色(字体) |
背景色 |
30(黑色) |
40(黑色) |
31(红色) |
41(红色) |
32(绿色) |
42(绿色) |
33(黄色) |
43(黄色) |
34(蓝色) |
44(蓝色) |
35(洋红) |
45(洋红) |
36(青色) |
46(青色) |
37(白色) |
47(白色) |