python3.14e5表示_python学数学1-3:认识数字--自然数的显示与获取

为了更好地进行测试,我们再增加两个函数,用来更加方便地设置数字和显示数字。

为了暂时避免与我们熟悉的十进制数字相混淆,我们用最原始的符号显示法。

以为目前,一个自然数与其他自然数之间的区别,就在于它的前驱数的不同。

我们这样定义表现规则:

①0表示为“□”

②0的后继数表现为“■”

③其他自然数,在它的前驱数表现形式后面在增加一个“■”def nShow(a):

if isZero(a):

return '□'

elif nEq(a, nNext(zero())):

return '■'

else:

return nShow(nPre(a))+'■'

如果你自己研究,这个函数会是一个常用的函数。但在自动测试框架中,它的用处没那么大。

此外,我们再增加一个更方便地自然数赋值方法nGetNum()。如果只能用nNext一个一个的取后继,在后面的计算试验中,代码会显得太长。

我们规定nGetNum()是nShow()的逆运算,输入一个显示用的字符串,返回自然数。

我们这样定义获取自然数的规则:

①“□”返回“0”

②“■”返回“0的后继数”

③否则,返回“去掉第一个字符后的字符串所代表的数字”的后继

此外,增加一些扩展,如果输入是空字符串,返回也是0。

def nGetNum(str):

if str=='□' or str=='':

return zero()

elif str=='■':

return nNext(zero())

else:

return nNext(nGetNum(str[1:]))

在我们没有获得十进制的表现法之前,这个函数将是我们唯一的一个快速设置自然数的方法。

我们可以再做一些新的测试:

def test_show():

z = zero()

one = nNext(z)

two = nNext(one)

three = nNext(two)

four = nNext(three)

five = nNext(four)

# 测试isZero函数

assert isZero(z)

assert isZero(nPre(one))

# 测试数字的显示效果

assert nShow(z)=='□'

assert nShow(one)=='■'

assert nShow(four)=='■■■■'

# 测试数字的获取

assert nEq(nGetNum('□'), z)

assert nEq(nGetNum('■■■'), three)

# 测试加法

assert nEq(nAdd(nGetNum('■■■'), five), nGetNum('■■■■■■■■'))

原文链接:https://blog.csdn.net/xiaorang/article/details/105414661

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值