1.代码规范
程序员写代码四有规范的,不只是实现功能而已。
1.1名称
在python开发过程中会创建文件夹/文件/变量等,这些在命名有一些潜规则(编写代码时也要注意pep8规范)
-
文件夹,小写&小写下划线连接,例如:commands,data_utils等。
-
文件,小写&小写下划线连接,例如:page.py,db_convert.py等。
-
变量
-
全局变量,大写&大写下划线连接,例如:NAME = "吴佩琦",BASE_NAME = 18
-
局部变量,小写&小写下划线连接,例如:data = [11,22,33],user_parent_id = 9等。
-
1.2注释
作为程序员,写代码注释是非常基础且有用的技能。方便以后对代码进行维护和理解。
- 文件夹
- 文件注释
"""
这个文件主要为项目提供工具和转换的功能,初次之外还有日志....
例如
"""
- 代码注释
name = "alex"
#在名称后面添加一个大烧饼
data = name + "dsb"
print(data)
1.3todo
基于注释可以实现todo注释的效果,例如:
1.4条件嵌套
以后写条件语句一定要想办法减少嵌套的层级(最好不要超过3层)。
1.5简单逻辑先处理
1.6循环
尽量少循环多干事,提高代码效率。
key_list = []
value_list = []
info = {'k1':'v1','k2':'v2','k3':'v3'}
for key,value in info.items():
key_list.append(key)
key_list.append(value)
info = {'k1':'v1','k2':'v2','k3':'v3'}
key_list = list(info.keys())
value_list = list(info.values())
1.7变量和值
#推荐
name = "吴佩琦"
age = 19
#不推荐
name="吴佩琦"
age= 18
可以基于pycharm的格式化工具来实现自动处理。
2.知识补充
2.1pass
一般python的代码块是基于:和缩进来实现。python中规定代码中必须要有代码才算完整,在没有代码的情况下为了保证语法的完整型可以用pass代替,例如:
#其他编程语言
if{......
}else{......
}
if条件:
pass
else:
pass
2.2 is比较
is 和 ==的区别是什么?
- ==,用于比较两个值是否相等。
- is,用于表示内存地址是否一致。
#示例1
v1 = []
v2 = []
print(v1 == v2)#True,两个值相当
print(v1 is v2)#False,不属于同块内存。
#示例2
v1 = []
v2 = v1
print(v1 == v2)#True,两个值相当
print(v1 is v2)#True,属于同块内存。
#示例3
v1 = None
v2 = None
print(v1 == v2)#True,两个值相当
print(v1 is v2)#True,属于同块内存。
2.3位运算
计算机底层本质都是二进制,我们平时
- &,与(都为1)
a = 60 #60=0011 1100
b = 13 #13=0000 1101
c = a & b#12=0000 1100
- |,或(只要有一个为1)
a = 60 #60=0011 1100
b = 13 #13=0000 1101
c = a | b#61=0011 1101
- ^,异或(值不同)
a = 60 #60=0011 1100
b = 13 #13=0000 1101
c = a ^ b#49=0011 0001
- ~,取反
a = 60 #60=0011 1100
c = ~a;#-61=1100 0011
- <<,左移动
a = 60 #60=0011 1100
c = a << 2;#1111 0000
-
,右移动
a = 60 #60=0011 1100
c = a >> 2;#15=0000 1111
平时在开发中,二进制的位运算几乎很少使用,在计算机底层或网络协议底层用的会比较多,例如:
- 计算2**n
2**0 1 << 0 1 1
2**0 1 << 1 10 2
2**0 1 << 2 100 4
2**0 1 << 3 1000 8
...
- 计算一个数的一半【面试题】
v1 = 10 >> 1
print(v1) #值为5
v2 = 20 >> 1
print(v2)#值为10
- 网络传输数据,文件太大还未传完(websocket源码为例)。
)
#例如:接收到的第一个字节的值为245(11110101),让v的二进制和1000 0000 做&与运算。
v = 245 #245 1111 0101
#128 1000 0000
data = v & 128
if data == 0:
print("还有数据")
else:
print("已完毕")
标签:14,0011,python,list,60,v1,v2,print
From: https://www.cnblogs.com/zhangyj213/p/17995110