鱼C论坛

 找回密码
 立即注册
查看: 4659|回复: 19

[技术交流] [checkio]游戏之<<斯蒂芬的语音模块>>

[复制链接]
发表于 2015-3-21 20:01:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
史蒂芬的语音模块坏了。该模块是负责他的数字发音的。他必须点击输入所有数字,因此当有大数字就要花费他很长的时间来输入。为他写一个新的语音模块帮助机器人正常说话并且增加他的数字的处理速度。字符串中的所有单词必须以一个空格字符分隔。请小心使用空格 -- 如果你把两个空格当做一个,那是很难看到的。

输入: 作为整数(int)的一个数字。

输出: 代表数字的字符串。(str)

范例:
  1. checkio(4)=='four'
  2. checkio(143)=='one hundred forty three'
  3. checkio(12)=='twelve'
  4. checkio(101)=='one hundred one'
  5. checkio(212)=='two hundred twelve'
  6. checkio(40)=='forty'
复制代码

代码提示:
  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. def checkio(number):

  9.     return
复制代码




评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +2 收起 理由
拈花小仙 + 3 + 3 + 2 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-21 21:18:04 | 显示全部楼层

回帖奖励 +2 鱼币

本帖最后由 lightninng 于 2015-3-23 09:49 编辑

来赚点鱼币~~有时间的话就参与一下~~
  1. FIRST_TEN = ["", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
  2. SECOND_TEN = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen",
  3.               "seventeen", "eighteen", "nineteen"]
  4. OTHER_TENS = ["", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"]
  5. def checkio(number):
  6.     """hun = number//100  # 原版
  7.     dig = (number - hun*100)//10
  8.     sig = number - dig*10 - hun*100"""
  9.     hun, mod = divmod(number, 100)  # 改进版
  10.     dig, sig = divmod(mod, 10)
  11.     if hun == 0:
  12.         out = ""
  13.     else:
  14.         out = FIRST_TEN[hun] + " " + "hundred"
  15.     if dig == 0:
  16.         out += " " + FIRST_TEN[sig]
  17.     elif sig == 0:
  18.         out += " " + OTHER_TENS[dig]
  19.     elif dig == 1:
  20.         out += " " + SECOND_TEN[sig]
  21.     else:
  22.         out += " " + OTHER_TENS[dig] + " " + FIRST_TEN[sig]
  23.     return out.strip(" ")
复制代码


评分

参与人数 1鱼币 +5 收起 理由
挥舞乾坤 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-21 22:55:42 | 显示全部楼层
惯例,先发自己的代码:
  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. def checkio(number):
  9.     data = list(map(int, list(str(number).rjust(3,'0'))))
  10.     result = []
  11.     if data[0]:
  12.         result.append(FIRST_TEN[data[0] - 1])
  13.         result.append(HUNDRED)
  14.     if data[1] == 1:
  15.         result.append(SECOND_TEN[data[2]])
  16.     else:
  17.         if data[1]:
  18.             result.append(OTHER_TENS[data[1] - 2])
  19.         if data[2]:
  20.             result.append(FIRST_TEN[data[2] - 1])      

  21.     return ' '.join([e for e in result if e ])
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-21 23:44:57 | 显示全部楼层

回帖奖励 +2 鱼币

checkio我也有玩過, 不過到了後面看不明白題目就沒玩了(渣英文)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-22 17:04:31 | 显示全部楼层
lightninng 发表于 2015-3-21 21:18
来赚点鱼币~~有时间的话就参与一下~~
  1. hun, mod = divmod(number, 100)
  2. dig, sig = divmod(mod, 10)
复制代码


这么写,感觉更python,刚学到的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-22 20:49:20 | 显示全部楼层
挥舞乾坤 发表于 2015-3-22 17:04
这么写,感觉更python,刚学到的

thanks for teaching~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-22 20:53:25 | 显示全部楼层
kit1858644 发表于 2015-3-21 23:44
checkio我也有玩過, 不過到了後面看不明白題目就沒玩了(渣英文)

友情提示,现面的checkio在题目的界面可以选择中文的,题目就是中文显示~~
昨天注册的,感觉做的好好~~决定驻扎了已经
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-22 20:57:48 | 显示全部楼层

回帖奖励 +2 鱼币

lightninng 发表于 2015-3-22 20:53
友情提示,现面的checkio在题目的界面可以选择中文的,题目就是中文显示~~
昨天注册的,感觉做 ...

也有英文题目。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-22 20:59:30 | 显示全部楼层
戴宇轩 发表于 2015-3-22 20:57
也有英文题目。。。

好吧。我还没有进展到那一步~~继续往后做做看~~半机翻半猜感觉应该没问题~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-22 22:43:52 | 显示全部楼层
lightninng 发表于 2015-3-22 20:53
友情提示,现面的checkio在题目的界面可以选择中文的,题目就是中文显示~~
昨天注册的,感觉做 ...

現在有中文啦? 再去玩玩, 謝謝提示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-23 06:37:48 | 显示全部楼层

回帖奖励 +2 鱼币

支持大神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-23 08:59:33 | 显示全部楼层
lightninng 发表于 2015-3-21 21:18
来赚点鱼币~~有时间的话就参与一下~~

最后一行多了个括号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-23 09:50:31 | 显示全部楼层
挥舞乾坤 发表于 2015-3-23 08:59
最后一行多了个括号

观察的好仔细。经常会编辑它。有时候莫名其妙的多些或者少些东西~~:sweat:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-23 12:24:04 | 显示全部楼层

回帖奖励 +2 鱼币

已收藏,回去吗代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-23 17:05:58 | 显示全部楼层

回帖奖励 +2 鱼币

学习了:loveliness:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-10 12:16:36 | 显示全部楼层

回帖奖励 +2 鱼币

我爱鱼C,
正如我爱小甲鱼,
他那呱唧呱唧
呱唧呱唧
呱唧呱唧的声音,
总缠绕于我的脑海,久久不肯散去……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-12 04:00:46 | 显示全部楼层

回帖奖励 +2 鱼币

还没学到这里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-13 09:07:19 | 显示全部楼层
什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-17 01:57:22 | 显示全部楼层

回帖奖励 +2 鱼币

顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-17 10:45:31 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 10:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表