Learn PYTHON3 the HARD WAY习题48 用户输入进阶 小白勿喷

考虑了处理数字的方式,在书里面提出通过try测试是否是数值,经过实践是可用的,而且不会太复杂,以下是代码:

def scan(str):
	words = str.split()
	s_list = []
	dict_nr = {
		'direction':['north','south','east','west','up','down','left','right','back'],
		'verb':['go','stop','kill','eat'],
		'stop':['the','in','of','from','at','it'],
		'noun':['door','bear','princess','cabinet'],
	}

	for word in words:
		try:
			num = int(word)
			s_list.append(('number',num))
		except ValueError:
			flag = 0
			for name,value in dict_nr.items():
				if word in value:
					s_list.append((name,word))
					flag = 1
			if flag == 0:
				s_list.append(('error',word))

	return s_list

按书中所给的测试方式是可以通过的:

> nosetests
......
----------------------------------------------------------------------
Ran 6 tests in 0.010s

OK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值