Speech Module

本文详细解析了如何利用Python编程实现数字发音转换的代码逻辑,包括对个位数、十位数以及百位数的特殊处理,通过定义不同数字集合与条件判断,最终将整数转换为对应的发音字符串。

Speech Module

 

 1 FIRST_TEN = ["one", "two", "three", "four", "five", "six", "seven",
 2              "eight", "nine"]
 3 SECOND_TEN = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen",
 4               "sixteen", "seventeen", "eighteen", "nineteen"]
 5 OTHER_TENS = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy",
 6               "eighty", "ninety"]
 7 HUNDRED = "hundred"
 8 
 9 
10 def checkio(number):
11     spoken = []
12     
13     hundred_bit = number / 100
14 
15     if hundred_bit > 0:
16         spoken.append(FIRST_TEN[hundred_bit - 1])
17         spoken.append(HUNDRED)
18 
19     remain = number % 100
20 
21     if remain >= 10 and remain <= 19:
22         spoken.append(SECOND_TEN[remain % 10])
23     else:
24         decade = remain / 10
25         if decade > 0:
26             spoken.append(OTHER_TENS[decade - 2])
27 
28         unit = remain % 10
29         if unit > 0:
30             spoken.append(FIRST_TEN[unit - 1])
31 
32     return ' '.join(spoken)

python有个divmod函数, 即可返回商又可返回余数h, number = divmod(number, 100)

可以如此构造字符串 final_string = "%s%s%s" (hundred_s, decade_s, unit_s)

使用strip去除字符,lstrip, rstrip; rstrip()去除右边空格

转载于:https://www.cnblogs.com/hzhesi/p/3891525.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值