首页 > 编程语言 >python 14

python 14

时间:2024-01-29 18:44:06浏览次数:31  
标签:14 0011 python list 60 v1 v2 print

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

相关文章

  • python之常用标准库-configparser
    configparser主要用于生成和修改常见配置文档,所以常见的操作为读和写1.写定义参数变量,赋值直接赋值法conf['test_default']={'test_line1':'test_line1'}通过增加section,set赋值法conf.add_section('test')conf.set('test','test_line1',�......
  • P10114 [LMXOI Round 1] Size 题解
    题目链接:[LMXOIRound1]Size挺有意思的诈骗题,其实这类题都喜欢批一个外壳,例如数据范围提示之类的。记得以前遇到的很多诈骗题,有一道cf的高分题,问的是区间出现次数的次数\(mex\),这玩意一开始感觉好难,出现次数还简单,还要考虑次数的次数,所以带修莫队的时候,一直没法确定怎么解决......
  • P1438 无聊的数列 题解
    背景看到题解都是差分,竟然还有建两颗线段树和二阶差分的大佬。我感到不理解,很不理解。题目正解本题正解很明显就是:线段树是的,你没有看错,就只有线段树。很显然我们直接按照线段树板题写就可以了,维护题目需要维护的,注意到只有单点查询,所以我们根本不需要维护区间和,对于区间来......
  • python中get请求传参方式的写法
    get请求分为两大类:无参数和有参数1.无参数2.有参数2.1参数较少2.2参数较多-字典形式2.3参数较多-列表+元祖形式......
  • python版本管理Dynaconf模块
    示例代码importosimportsysfrompathlibimportPathfromdynaconfimportDynaconf_BASE_DIR=Path(__file__).parent.parent_CONFIG_DIR=_BASE_DIR/'config'LOG_DIR=_BASE_DIR/'files'/'logs'TOKEN_FILE=_BASE_DIR/�......
  • 如何在 Python 中使用 jieba 库来进行关键词提取
    jieba是一个流行的中文分词库,通过简单的几行代码,您就可以轻松地使用jieba库来提取中文文本中的关键词。本文将介绍jieba库的安装方法以及关键词提取的示例代码,并希望对您有所帮助。正文:1.安装jieba库:首先,我们需要安装jieba库。可以使用以下命令来安装jieba库:```pipinstalljieba......
  • python日志模块logging
    示例代码#导入日志模块importloggingimportlogging.configfromconfigimportLOG_DIR,settingsdefconfig_logging():#定义日志配置方法config_dict={#定义日志配置字典'version':1,'disable_existing_loggers':False,'......
  • Python中/与//的区别是什么?其如何使用?
    在学习Python或者使用Python进行工作的时候,大家应该都看到过“/”和“//”,它们是Python算术运算符中比较常用的两个运算符,那么Python语言中/与//的区别是什么?如果你还不清楚,这篇文章千万不要错过。Python语言中/与//的区别是什么?在Python中/表示浮点整除法,返回浮点结......
  • 四、python数据类型的性能
    四、python数据类型的性能比较列表list和字典dict两种内置数据类型上各种操作大O数量级两种都属于容器,都是可变类型。类型listdict索引自然数i不可变类型值key添加append/extend/insertb[k]=v删除pop/removepop更新a[i]=vb[k]=v正查a[i]/a[i......
  • 在Python中,子类继承父类并调用父类的构造方法有几种方式: 1. 如果子类没有重写`__init
    在Python中,子类继承父类并调用父类的构造方法有几种方式:1.如果子类没有重写`__init__`,实例化子类时,会自动调用父类定义的`__init__`¹。```pythonclassFather(object):  def__init__(self,name):    self.name=nameclassSon(Father):  passson=So......