Python内置方法和属性应用
1. 前言python除了丰富的第三方库外,本身也提供了一些内在的方法和底层的一些属性,大家比较常用的如dict、list、set、min、max、range、sorted等。笔者最近在做项目框架时涉及到一些不是很常用的方法和属性,在本文中和大家做下分享。 2. 内置方法和函数介绍 enumerate 如果你需要遍历可迭代的对象,有需要获取它的序号,可以用enumerate, 每一个next返回的是一个tuple 12345678list1 = [1, 2, 3, 4]list2 = [4, 3, 2, 1]for idx, value in enumerate(list1): print(idx, value, list2[idx])# 0 1 4# 1 2 3# 2 3 2# 3 4 1 zip zip从参数中的多个迭代器取元素组合成一个新的迭代器; 12345678# 给list加上序号b = [4, 3, 2, 1]for i in zip(range(len(b)), b): print(i)# (0, 4)# (1, 3)# (2, 2)...
怎么修改Logic K580的快捷键
怎么修改Logic K580的快捷键在使用Logic K580键盘的时候有时候会想要切换到默认的快捷键,使用如下的方法: 使用右边的Fn键+ESC键切换
Test with Coverage
前几天,听了公司某位大佬关于编程心得的体会,其中讲到了“测试驱动开发”,感觉自己的测试技能薄弱,因此,写下这篇文章,希望对测试能有个入门。这段时间,笔者也体会到了测试的价值,一句话,学会测试,能够让你的开发更加高效。 本文将介绍以下两个方面的内容: Test with Coverage Mock 0.1. Test with Coverage测试覆盖率通常被用来衡量测试的充分性和完整性。从广义的角度讲,主要分为两大类:面向项目的需求覆盖率和更偏向技术的代码覆盖率。对于开发人员来说,我们更注重代码覆盖率。 代码覆盖率指的是至少执行了一次的条目数占整个条目数的百分比。如果条目数是语句,对应的就是代码行覆盖率;如果条目数是函数,对应的就是函数覆盖率;如果条目数是路径,对应的就是路径覆盖率,等等。统计代码覆盖率的根本目的是找出潜在的遗漏测试用例,并有针对性的进行补充,同时还可以识别出代码中那些由于需求变更等原因造成的废弃代码。通常我们希望代码覆盖率越高越好,代码覆盖率越高越能说明你的测试用例设计是充分且完备的,但测试的成本会随着代码覆盖率的提高而增加。 在Python中,cover...
Python面向对象编程
1. Python 面向对象编程面向对象程序设计思想,首先思考的不是程序执行流程,它的核心是抽象出一个对象,然后构思此对象包括的数据,以及操作数据的行为方法。 本专题主要讨论面向对象编程(OOP)的基础和进阶知识,实际开发模型中OOP的主要实践,尽量使用最贴切的例子。 2. 基础专题2.1. 类定义动物是自然界一个庞大的群体,以建模动物类为主要案例论述OOP编程。 Python语言创建动物类的基本语法如下,使用class关键字定义一个动物类: 12class Animal(): pass 类里面可包括数据,如下所示的Animal类包括两个数据:self.name和self.speed: 1234class Animal(): def __init__(self,name,speed): self.name = name # 动物名字 self.speed = speed # 动物行走或飞行速度 注意到类里面通过系统函数__init__为类的2个数据赋值,数据前使用self保留字。 self的作用是指名这两个数据是实例上的,而非类上的。 ...
Python学习之整数比较
最近学习python,发现整数比较时一个有趣的现象: 12345678910111213141516a = 256b = 256print id(a)print id(b)print(a == b)print(a is b)print(id(a) == id(b))print(id(a) is id(b))c = 257d = 257print id(c)print id(d)print(c == d)print(c is d)print(id(c) == id(d))print(id(c) is id(d)) 在pycharm中运行的结果是: 1234567891011123201910432019104TrueTrueTrueFalse4055042440550424TrueTrueTrueFalse 而在Python IDE中运行: 1234567891011121314151617181920>>> a = 256>>> b = 256>>> a == bTrue>>> a is bTrue>&...
Python中的star总结
1. Python中的“*”总结对于一般的Python使用者来说,清楚Python中的“*”号是作为乘法运算符就足够了,但是如果你想要更进一步,想要在Python领域中更进一步的话,就需要了解Python中“星号”的五个强大的用途。 1.1. 1.作为乘法或者是乘幂运算符 作为基础的Python应用,乘法运算和乘幂运算是大家最容易想到的星号作用。上述程序中,单个星号运算符起到了乘法运算的目的,而连续的两个乘号起到了乘幂运算的目的。从结果可以看出,3*3的结果是9,而3的3次方是27。 1.2. 2.接收多个参数当我们在编写函数时,有时候函数的参数数量太多,所以我们想尽量的缩短程序,让程序看起来简介,除此之外,我们可能不知道函数有多少个具体的参数,这个时候,就可以用星号来发挥作用。 上述程序中,单个星号起到的作用是帮助我们捕获多个位置参数,然后将其放入到字典中,需要注意的是,在传入参数时,它的顺序位置需要明确,以方便在函数调用中使用。 而对于双星号的参数,可以帮助我们捕获多个带关键字名字的参数,并放入到字典中去,这样的话,我们在程序内使用的时候,可以根据关键字名字来调用,而...
Jupyter notebooks单元测试
在 Jupyter notebooks 中进行单元测试我们都知道开发过程中应该编写单元测试,实际上我们中的许多人都这样做。对于生产代码,库代码,或者归因于测试驱动的开发过程,这一点尤其正确。 通常,Jupyter notebooks用于数据探究,因此用户可能不选择(或不需要)为其代码编写单元测试,因为当他们在Jupyter中运行时,通常会查看每个单元格的结果,然后得出结论,之后继续。但是,以我的经验来看,Jupyter通常会发生的情况是,Jupyter中的代码很快就超出了数据探究的范围,对于进一步的工作很有用。或者,Jupyter本身可能会产生有用的结果,需要定期运行。也许需要维护代码并将其与外部数据源集成。然后,确保可以测试和验证notebook中的代码就变得很重要。 在这种情况下,我们有哪些选择对Jupyter代码来进行单元测试?在本文中,我将介绍在Jupyter notebooks中对Python代码进行单元测试的几个选项。 也许只是不做? Jupyter notebook 单元测试的第一个选择是根本不做。这样,我并不是说不要对代码进行单元测试,而是将其从notebook ...
SPEC 基础知识
SPEC 文件基础知识制作 rpm 软件包并不是一件复杂的工作,其中的关键在于编写软件包的 spec 描述文件。要想制作一个 rpm 软件包就必须写一个软件包描述文件 spec。这个文件中包含了软件包的诸多信息,如:软件包的名字、版本、类别、说明摘要、创建时要执行什么指令、安装时要执行什么操作、以及软件包所要包含的文件列表等等。在实际过程中,最关键的地方是要清楚虚拟路径的位置,以及宏的定义。 Mandatory parameters to be present in SPEC file to build and generate RPM Below options are mandatory to be present in SPEC file Name, Version, Release, Summary, License, description, install and files 1234567891011Name: test-devVersion: %{_version}Release: %{_release}Summar...
SPEC file writing - Best Practices
SPEC file writing - Best Practices1. Do not leave empty tagsAlways fill “Summary”, “description”, etc tags. Never left things blank.They will be displayed when queried using “rpm -qi “. 2. SPEC Directives values aligned to same columnIt is easier to read SPEC files if values of directives are aligned to same column like this: sample spec 123456789101112131415161718Name: RUOAM-CommonLibraryVersion: %{_version}Release: %{_release}Summary: Common libraryGroup: ...
Makefile基础
Makefile基础 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不得不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令...


