目标:利用测试程序来写函数。
体会:一步一步来,完成后开森~

# -*-coding:utf-8 -*-## 预定义词汇表
verbs = ('go', 'stop', 'kill', 'eat')
directions = ('north', 'south', 'east', 'west', 'down', 'up', 'left', 'right', 'back')
stops = ('the', 'in', 'of', 'from', 'at', 'it')
nouns = ('door', 'bear', 'princess', 'cabinet')def scan(stuff):## 结果存储L = []words = stuff.split()for word in words:if word in verbs:L.append(('verb', word))elif word in stops:L.append(('stop', word))elif word in nouns:L.append(('noun', word))## 判断是否全是数字elif word.isdigit():L.append(('number', int(word)))elif word in directions:L.append(('direction', word))else:L.append(('error', word))return L

测试用例的代码如下(原书提供):

from nose.tools import *
from ex48 import lexicondef test_directions():assert_equal(lexicon.scan("north"), [('direction', 'north')])result = lexicon.scan("north south east")assert_equal(result, [('direction', 'north'),('direction', 'south'),('direction', 'east')])def test_verbs():assert_equal(lexicon.scan("go"), [('verb', 'go')])result = lexicon.scan("go kill eat")assert_equal(result, [('verb', 'go'),('verb', 'kill'),('verb', 'eat')])def test_stops():assert_equal(lexicon.scan("the"), [('stop', 'the')])result = lexicon.scan("the in of")assert_equal(result, [('stop', 'the'),('stop', 'in'),('stop', 'of')])def test_nouns():assert_equal(lexicon.scan("bear"), [('noun', 'bear')])result = lexicon.scan("bear princess")assert_equal(result, [('noun', 'bear'),('noun', 'princess')])
def test_numbers():assert_equal(lexicon.scan("1234"), [('number', 1234)])result = lexicon.scan("3 91234")assert_equal(result, [('number', 3),('number', 91234)])
def test_errors():assert_equal(lexicon.scan("ASDFASDFASDF"), [('error', 'ASDFASDFASDF')])result = lexicon.scan("bear IAS princess")assert_equal(result, [('noun', 'bear'),('error', 'IAS'),('noun', 'princess')])

《笨办法学python》(《learn python the hard way 3thrd》)习题48(ex48)的代码实现相关推荐

  1. 笨办法学python 粗略笔记(learn python the hard way)

    笨办法学python 粗略笔记(learn python the hard way) 标签(空格分隔): python # _*_ coding: utf_8 _*_ ''' ### ex1 prin ...

  2. [IT学习]Learn Python the Hard Way (Using Python 3)笨办法学Python3版本

    黑客余弦先生在知道创宇的知道创宇研发技能表v3.1中提到了入门Python的一本好书<Learn Python the Hard Way(英文版链接)>.其中的代码全部是2.7版本. 如果 ...

  3. 笨办法学python3_月底送书!入门Python都在学的“笨办法”,出进阶篇了!

    你们知道吗?每10个将Python作为自己的入门语言的程序员里,就有8个是读着<"笨办法"学Python>的书成长的!这位拥有近20年的编程和写作经验的IT书籍作家-- ...

  4. 笨办法学 Python · 续 中文版

    笨办法学 Python · 续 中文版 原书:Learn More Python 3 The Hard Way 译者:飞龙 自豪地采用谷歌翻译 在线阅读 PDF格式 EPUB格式 MOBI格式 代码仓 ...

  5. 笨办法学 Python · 续 练习 33:解析器

    练习 33:解析器 原文:Exercise 33: Parsers 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 想象一下,你将获得一个巨大的数字列表,你必须将其输入到电子表格 ...

  6. 笨办法学python第五版_笨办法学python PDF下载|笨办法学python第五版 电子版附目录_最火软件站...

    笨办法学Python第五版PDF电子版是专门为初学Python的朋友准备的一款电子图书资料,可以帮助你更好的学习Python编程知识,该电子书每章节都附带了常见问题回答以及练习题目,能够帮助学习者快速 ...

  7. 笨办法学python3在线阅读知乎_Python第三课——笨办法学Python

    需要学习资料的请直接看文末 <笨办法学Python>(Learn Python The Hard Way,简称LPTHW)是Zed Shaw编写的一本Python入门书籍.适合对计算机了解 ...

  8. 笨办法学Python 3 ex35学习笔记

    笨办法学Python 3 ex35学习笔记 from sys import exitdef gold_room():#print("This room is full of gold. Ho ...

  9. 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇

    编辑推荐: 适读人群 :本书适合所有已经开始使用Python的技术人员,包括初级开发人员和已经升级到Python 3.6版本以上的经验丰富的Python程序员. "笨办法学"系列, ...

  10. python教程第四版pdf下载-笨办法学python第四版

    笨办法学python第四版是由Zed Shaw所编写的一本书.如果你还是Python新手,那么这是一本非常不错的入门书籍.书本里以习题方式,引导读者慢慢学会了编程. 目录: 习题 0: 准备工作 习题 ...

最新文章

  1. c#window服务程序
  2. vue子组件向父组件传递数据
  3. 根据在同一时间使用计算机,3.根据在同一时间使用计算机用户的多少,操作系统可以分为单用户操作系统和多用户操作系统。...
  4. NET对象的XML序列化和反序列化
  5. python eval exec_Python基础教程 使用 exec和eval 执行字符串及计算其结果
  6. java字体推荐_最适合编程的10大字体推荐
  7. 论文笔记:Bridging Textual and Tabular Data for Cross-Domain Text-to-SQL Semantic Parsing
  8. 电脑开关电源维修图解
  9. DevExpress 报表 格式化
  10. Quadratic Video Interpolation 视频插帧
  11. 动态背景下的运动目标检测
  12. SQLyog键盘快捷方式
  13. 计算机网络(二)集线器_网桥交换机_路由器
  14. 干得漂亮!微信封禁大量色情账号
  15. ​几张图看懂区块链到底是什么?
  16. matlab画图中该如何标注途中的某一点,以SIR模型为例
  17. 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器
  18. android动画平移 加速,Android动画总结
  19. 又见上海电影节抢票热,电影节不该只有狂欢
  20. 多ip服务器代理设置

热门文章

  1. Map转xml格式字符串
  2. ofbiz mysql 中文安装_ofbiz的部署及安装问题解决办法
  3. scheduledexecutorservice 的使用_使用J.U.C实现定时任务
  4. python文件名带日期变量_Python实现文件按照日期命名的方法
  5. string 转 int_面试官:String长度有限制吗?是多少?还好我看过
  6. python在abaqus中的应用代码下载_Python-(source-code)-in--Abaqus Python语言在Abaqus中的应用(源码) - 下载 - 搜珍网...
  7. js 拼接html 表格,js合并table单元格(拼table的时候并不知道具体几行几列)
  8. python怎么封装方法然后调用_Python实现封装打包自己写的代码,被python import
  9. sql 发送邮件网络附件_利用VBA发送附件电子邮件
  10. thinkphp5 图片压缩旋转_PPT图片超多,如何让排版更精致?