伪知识之通俗易懂得解释python编程常用规范持续更新:【内向即穷人--王艳】

该内容面向实际工作时所需要注意编程规范

纯属个人见解,内容并不是完全靠谱,仅供参考

 

一:重复命名对象:

 

items = 'a b c d'  # 首先指向字符串...

 

items = items.split(' ')  # ...变为列表

 

items = set(items)  # ...再变为集合

 

这种是常用的变量命名的方式,在简单的demo中使用并无大碍,但是对于大型的开发项目,如果也出现类似变量命名重复的问题的话,对于查看变量,处理变量是极其不方便的事情。

 

Python开发中建议不要对变量进行重复的命名,这样有助于提高代码的运行效率,方便开发人员的开发效率。

 

 

 

二:可变类型 or 不可变类型的区别:

 

可变类型就是可以对赋值的变量进行内部改变的变量类型

 

不可变类型就是对赋值的变量不能进行内部改变的变量类型

 

可变类型:

 

---------------------------------------------------------------------------------

 

#可变类型变量

variable_a=[1,2,3]

variable_a[0]=2

print(variable_a)

 

#不可变类型变量

variable_b=(1,2)

variable_b[0]=3

print(variable_b)

 

---------------------------------------------------------------------------------

 

 

 

三:列表推导式代替for循环

 

注意python中变量赋值了一个str对象,这个变量是不可变类型,如果要将不可变str类型放入可变类型list中该如何做呢,入门的菜鸟通常喜欢使用for循环+append的方法,但是这方法并不高明:

 

如下是高明的做法:

 

variable=list(map(str,range(20)))

print(variable)

 

Res:

 

['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19']

 

 

 

四:函数中的参数使用方法:

 

在这样一个函数中,python开发中建议调用函数时,

 

最好不要改变参数的顺序,不要给参数添加名称

 

列一:规范

 

deffunction(parameter_a,parameter_b):

    print(parameter_a,parameter_b)

function(1,2)

 

 

 

列二:不规范

 

deffunction(parameter_a,parameter_b):

    print(parameter_a,parameter_b)

function(parameter_b=1,parameter_a=2)

 

 

 

五:函数签名:

 

函数签名包含了函数的参数名,参数类型,参数顺序

 

deffun(url,timeout,verify=True):

 

如上黄色标注的内容正是函数签名

 

 

 

六:关键字参数,可选参数的使用方法:

 

deffun(url,timeout,verify=True):

    respones=requests.get(url,timeout,verify=verify)

    print(respones.text)

fun('https://www.zhihu.com/question/24627666',5)

 

如果不给函数的参数一个默认值的话,这个参数就是关键字参数,

 

如果给函数的参数一个默认值的话,这个参数就是可选

 

 

 

七:__init__使用方法:

 

classSpider:                           #创建一个Spider类

    def__init__(self,name,sex):  #定义初始化函数

        self.name=name            #创建私有属性

        self.sex=sex

    defrun(self):

        pass

instance=Spider('美丽','女')   #实例化一个类,初始化类的私有属性

print(instance.name)

#这里的self就是Spider('美丽','女')

 

 

#创建一个Spider类,给这个类添加私有属性

#实例化一个Spider类,相当于调用这个类,给这个类传入实参,这个实参就是类的私有属性

具体的方法,调试一下Spider这个类,就能大致明白其中原理了

 

 

 

八:实参,形参的具体形式:

 

deffunction(position,school):    #定义一个函数,函数中的参数就是形参

    print(position)

    print(school)

function('主播','中国传媒大学')  #调用函数,函数中的传入的参数就是是实参

 

 

 

九:废弃变量:  【工作编程环境下作用不大】

 

Python建议对于不需要赋值的变量可以使用__  (双下划线)

 

如果变量是__这个的话就可以认为是废弃变量,作用指明该变量是无用的

 

variable='university'

x,_,y=variable[0:3]

print(x,_,y)

 

Res:

 

u n i

 

 

 

十:set的使用环境:

 

s = set(['s', 'p', 'a', 'm'])l = ['s', 'p', 'a', 'm']

 

def lookup_set(s):

 

    return 's' in s

 

def lookup_list(l):

 

    return 's' in l

 

如上

 

在集合中,项的哈希值将会告诉Python在集合的哪里去查找匹配的项。

 

所以如果要在list中使用in的方法的话,python建议使用set(),这样的好处是提高性能。

 

 

 

十一:变量是什么:

 

如下声明一个变量

 

variable=dict([(i,y)fori inrange(10)if i%2if i>4for yin range(10)if y>6if y!=7])

 

Variable 是变量名

 

=        是赋值符号

 

dict([(i,y)fori inrange(10)if i%2if i>4for yin range(10)if y>6if y!=7])   是变量值

 

 

 

变量名=变量值  定义的这个关系就是变量,一般来说变量是可变的,在代码中会赋值不同的类型。

 

作用:规范代码

 

 

 

十二:常量是什么:

 

python常量包括:数字、字符串、布尔值、空值  (大致了解就行)

 

CONSTANT=reduce(lambda x,y:x+y,list(map(lambda x:x+100,a)))

 

一般常量会用大写来表示变量名,常量本质上就是变量,不过是换了个说法而已。

 

CONSTANT=reduce(lambda x,y:x+y,list(map(lambda x:x+100,a)))就是常量,

 

在代码中承担着引用的作用,一般不会随意赋值不同的类型给常量。

 

作用:规范代码

 

 

 

十三:真值测试的规范写法:

 

if attr == True:

 

print 'True!'

 

python中不建议使用==来检测变量是否是真,或假,以上代码不规范

 

 

 

if attr:

 

    print 'attr is truthy!'

 

以上是规范的python真值测试的写法

 

 

 

十四:访问字典元素:

 

访问字典元素的时候,python建议使用如下方法

 

d = {'hello': 'world'}

 

if 'hello' in d:

 

print d['hello']

 

print d.get('hello', 'default_value')

 

在实际工作时,还是比较实用的,了解就行

 

 

 

十四:物理行,逻辑行的区别:

 

物理行即编辑器中看到的行。

 

 

 

如上所示,header_zero变量有四个物理行,header_one变量有三个物理行

 

逻辑行即终端中看到的行

如上是终端执行的结果,可以看出header_zero在终端中有一个逻辑行

 

Header_one在终端中有三个逻辑行

 

Python建议当物理行较多时,可以使用隐性的行连接,就是header_zero的方法

 

猜你喜欢

转载自blog.csdn.net/qq_37995231/article/details/82819594
今日推荐