Python学习-41.Python中的断言

先来点题外话:

在现代编程开发中,TDD(测试驱动开发)变得越来越流行(PS:DDD(领域驱动开发)也是,但两者并不冲突,就像面向过程和面向对象)。而作为TDD的根本——单元测试也是越来越重要,单元测试可以测试代码的正确性,例如以下的C#代码:

1 public class Helper
2 {
3     public string RemoveHtmlMarkup(string str)
4     {
5         return str;
6     }
7 }

需求是去除字符串中的html标记。当然现在这样是错误的,只会原样输出。

接下来编写测试代码。(使用了NUnit)

 1 [TestFixture]
 2 public class HelperTest
 3 {
 4     [Test]
 5     public void RemoveHtmlMarkupTest([Values("<html></html>")]string str)
 6     {
 7         var output = new Helper().RemoveHtmlMarkup(str);
 8         Assert.False(output.Contains("<html>"));
 9     }
10 }

现在肯定是不通过的了。修改原来的代码,去除掉"<html>"然后再跑测试,过了,html标记不止这么点(还有title等等),然后测试代码修改,不通过,修改Helper的代码。这样反复进行,TDD就是这样。

当然这个例子可能并不是很好,将就一下吧。

好了,再继续就扯题了,回到Python中。

首先,令我想不到的是,Python中有断言,并且上升到了一等公民——关键字的水平。使用的关键字是assert。语法很简单,不像C#中Assert还得点(无论是MSUnit还是NUnit)。

1 var = input(‘please input 1:‘)
2 assert var == ‘1‘,‘you must input 1‘

assert关键字后跟两个或一个参数。第一个参数是一个布尔值,如果该布尔值为False,则断言不通过,抛出一个AssertionError的错误,第二个参数是错误的描述,也可以不码上,但一般情况下还是码上吧。

呃,就是这几行,没了。Python就是这样简洁。

时间: 2024-10-12 13:39:46

Python学习-41.Python中的断言的相关文章

python学习之web中的html

Web概述web起源web特点1.易导航和图形化界面2.与平台无关3.分布式结构4.动态性5.交互性 html 网页结构 HTML(Hyper Text Mark-up Language )即是超文本标记语言, 通过使用标记标签来描述页面文档结构和表现形式的一种语言,再由浏览器进行解析,然后把结果展示在网页上.?超文本指的是超链接?标记指的是标签1).HTML文件用编辑器打开显示的是文本,可以用文 本的方式编辑.2). HTML文件用浏览器打开,浏览器会按照标签描述内容将文件渲染成网页,显示的网

总结:Python学习 和 Python与C/C++交互

本篇仅仅是Python的学习和Python和C++数据对接过程中的一些总结. 由于工作的需要,用一周的时间学习 Python. Python是基于C实现的一门解释型语言,由于其易用性,俘获了不少开发者和运维的心.据说,Python 在科学计算领域,逐步吞噬着古老语言 Fortran的份额.这门语言是Google的第二语言,国内的知乎,豆瓣,都使用纯Python开发.Python的官方网站:http://www/python.org. 为了逐步完善的我们的数据库驱动服务,我们需要为客户提供更多,更

Python学习教程(Python学习路线+Python学习视频):Python数据结构

Python学习教程(Python学习路线+Python学习视频):Python数据结构   数据结构引言:   数据结构是组织数据的方式,以便能够更好的存储和获取数据.数据结构定义数据之间的关系和对这些数据的操作方式.数据结构屏蔽了数据存储和操作的细节,让程序员能更好的处理业务逻辑,同时拥有快速的数据存储和获取方式. 在这篇文章中,你将了解到多种数据结构以及这些数据结构在Python中实现的方式.    抽象数据类型和数据结构 数据结构是抽象数据类型(ADT)的实现,通常,是通过编程语言提供的

Python基础教程:Python学习视频Python让你敲的代码不再是造轮子

你敲的代码是在造轮子?那就学Python呗!_Python基础教程 Bruce大神说" 人生苦短,我用Python ". 从公司角度而言: 国内基于Python创业成功的案例不在少数,豆瓣.知乎.果壳,全栈都是 Python,大家对Python自然有信心.并且从这几家公司出来的程序员与 CTO,创业的话一般都会选择Python. 从开发者个人角度而言: 计算机语言只是用来达成目的工具,?各种强大的第三方库,拿来就能用才是王道,让程序替代我们执行一些枯燥繁琐的工作.?至于句式是否优美.能

Python学习之--python概要

1 Python的优点 Python语言类库齐全,语法简洁,而且在linux上自带安装,在处理大数据以及自动化方面有其独有的特点.2 Python的解释器 Python解释器用来解释python代码,比较流行的python解释器有:   CPython, 使用C解释器,将python源码解释为.pyc文件(字节码)   JPython, 使用java解释器,将python源码解释为java识别的字节码   IronPython, 使用c#解释器解释为c#识别的字节码   PyPy,解释器解释为字

Python学习(一) Python安装配置

我本身是Java程序猿,听说Python很强大,所以准备学习一下Python,虽说语言都是相同的,但java跟python肯定还是有区别的.希望在此记录一下自己的学习过程. 目前,Python分2.X版本和3.X版本.我选择的是Python2.x版本.为了快速学习Python的WEB开发,我选择的Python的WEB开发框架是Django.Django有个好处就是自带了后台管理系统. 第一步,下载: 因本人使用的电脑操作系统是Windows7 64位,所以选择下载Python的windows安装

Python学习之Python简介

Python简介 Python的由来 Python(英国发音:/?pa?θ?n/ 美国发音:/?pa?θɑ?n/), 是一种面向对象.解释型计算机程序设计语言,它是吉多·范罗苏姆(Guide van Rossum)——龟叔在1989年12月时,想寻找一门“课余”编程项目来打发圣诞节前后的时间,决定为当时正构思的一个新的脚本语言写一个解释马戏团的狂热爱好者,他选择了Python作为项目的标题,使用C进行开发. 1991年 发布Python第一个版本. Python是纯粹的自由软件, 源代码和解释器

Python学习-7.Python的循环语句-for语句

Python中循环可以使用for语句来实现 1 list = ['Tom','Lucy','Mary'] 2 for name in list: 3 print(name) 则将会依次输出Tom Lucy Mary 另外Python还支持continue和break关键字,用法与C#相同. 比较有特点的是Python的for语句中支持else关键字 例子: 1 max = 15 2 for i in range(10): 3 if(i==max): 4 break 5 print(i) 6 el

python学习笔记-python安装

我是在读的大四学生,小白一枚,想要学习人工智能.我会把我每天所学的分享出来,希望那些跟我志同道合的人,咱们一起学习和交流. 那咱们就从python开始学起.第一次写博客,心里还有点小激动..嘻嘻 本教程非常简单,如果有编程基础的人可以直接跳过.我主要是还考虑到什么都不懂的小白.虽然我也是个小白,嘻嘻. python有两个版本,一个2.x,一个3.x, 建议学python3,因为后面要学习的一些东西python2可能不支持. 首先打开度娘,百度python,进入python官网 点击下载 底下有各