输入一个整数值,返回代表该值得英文,数字限定在0---1000

#/use/bin/env python
#-*-coding:utf-8-*-
"this is a custom module"

def number_to_english(num):
    '''
    输入一个整数值,返回代表该值得英文,数字限定在0---1000
    '''
    number_0_10 = ['zero','one','two','three','four','five','six','seven','eight','nine','ten']
    number_11_19 = ['eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen']
    number_20_100 = ['twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety','hundred']
    number = int(num)
    transfer = ""
    if number < 0 or number > 1000:
        return transfer
    if number == 0:
        transfer = number_0_10[0]
        return transfer
    if number == 1000:
        transfer = "one-thousand"
        return transfer
    if number <= 10:
        transfer = number_0_10[number]
        return transfer
    elif number > 10 and number <= 20:
        index = number % 10
        index -= 1
        transfer = number_11_19[index]
        return transfer

    hundred_digit = number / 100
    ten_digit = number % 100 / 10
    single_digit = number % 100 % 10

    connect_word = ""
    if hundred_digit > 0:
        transfer = number_0_10[hundred_digit]
        transfer += "-hundred"
        connect_word = " and "
    if ten_digit > 0:
        if connect_word not in "":
            transfer += connect_word
            transfer += number_20_100[ten_digit - 2]
        else:
            if ten_digit == 1:
                index = single_digit - 1
                if index < 0:
                    transfer = 'ten'
                else:
                    transfer = number_11_19[index]
                return transfer
            else:
                transfer = number_20_100[ten_digit - 2]
    if single_digit > 0:
        if ten_digit > 0:
            transfer += '-'
            transfer += number_0_10[single_digit]
        else:
            if hundred_digit > 0:
                transfer += connect_word
            transfer += number_0_10[single_digit]

    return transfer
if __name__ == '__main__':
    print number_to_english(342)
    print number_to_english(89)
    print number_to_english(7)
    print number_to_english(18)
    print number_to_english(200)
    print number_to_english(506)
    print number_to_english(1000)
    print number_to_english(2000)
    print number_to_english(100)
    print number_to_english(999)
测试数据结果:https://img-blog.csdn.net/20180117164157630?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanVqdWVkdW9sdW8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值