Python转换与其他
[TOC]
Python代码格式
Python中靠缩进识别代码块的首尾。
通过定义Tab
键为4个空格Space
,解决Python代码缩进和移植问题。
Python命名规则
驼峰命名法(Camel-Case)
多单词组合,第一个词首字母小写,其余词首字母大写;小驼峰
全部单词首字母大写;大驼峰(Pascal命名法)
1 | myFirstName\yourObjects...... |
Guido命名法
见《Python命名规范》一文
匈牙利命名法
据说这种命名法是一位叫 Charles Simonyi 的匈牙利程序员发明的,后来他在微软待了几年,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。
这种命名法的出发点是把变量名按:属性+类型+对象描述的顺序组合起来。
Python GUI编程可用。
个人习惯使用大驼峰命名法,有时会加入对属性、类型的描述。
Python注释
1 | #!/usr/bin/env python3 |
第一行指定Python3解释器位置,第二行指定程序字符编码。
第一行为了兼容Linux,第二行为了兼容Python2的ASCⅡ编码。
#!/usr/bin/python3
是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python3解释器;#!/usr/bin/env python3
是为了防止用户没有将python3装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python3的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python3
相当于写死了python3路径;#!/usr/bin/env python3
会去环境设置寻找python3目录。
1 | # xxxxxxx |
Python调试
Run|Python Shell
Debug|Debugger
Set BreakPoint
Run|Run Module
Linux中使用内置模块pdb调试。
进制转换
1 | int([number | string[, base]]) |
2进制 | 8进制 | 10进制 | 16进制 | |
---|---|---|---|---|
2进制 | - | bin(int(x, 8)) | bin(int(x, 10)) | bin(int(x, 16)) |
8进制 | oct(int(x, 2)) | - | oct(int(x, 10)) | oct(int(x, 16)) |
10进制 | int(x, 2) | int(x, 8) | - | int(x, 16) |
16进制 | hex(int(x, 2)) | hex(int(x, 8)) | hex(int(x, 10)) | - |
1 | bin() # 二进制数 |
list与dict的转换
1 | # list 转成 dict |
1 | # dict 转成 list |
list与set的转换
1 | # set 转成 List |
1 | # List 转成 set |
list与set的效率比较
1 | ~$ python -m timeit -n 1000 "[x for x in range(1000) if x in range(500, 1500)]" |
List 大概用了Set的225倍的时间。List转Set基本用不了什么时间,所以如果有需要求(集合,列表等)的并集和交集的时候,最好使用Set。
考虑到range(500, 1500) 调用了1000次(会比较耗时),改成只调用一次的话,时间从28.2msec降到了18.2msec。仍然要(比Set)慢大概150倍。
1 | ~$ python -m timeit -n 1000 "range1500=range(500, 1500);[x for x in range(1000) if x in range1500]" |
https://www.linuxidc.com/Linux/2012-07/66404.htm
Python 中list ,set,dict的大规模查找效率
https://blog.csdn.net/jmh1996/article/details/78481365