使用python实现拉钩网上的FizzBuzzWhizz问题示例


Posted in Python onMay 05, 2014

最近好多分享这个问题的代码,题目说的是用面向对象或者函数式编程,下面是PYTHON的实现示例

#!/usr/bin/python
#encoding:utf8
'''
The Game of "FizzBuzzWhizz"
author : wang.jiankui89@gmail.com
mobile : 130-2199-5152
'''
import sys
class teacher:
    def __init__(self, student_num):
        self.student_num = student_num
    def gameStart(self, numList):
        for i in range (1, self.student_num + 1):
            stu = student(i) 
            print stu.answer(numList)
class student:
    def __init__(self, my_num):
        self.my_num = my_num
    def judgeMod(self, numList):
        modRes = ""
        for num in numList:
            if self.my_num % num == 0:
                modRes += rule[num]
        return modRes if modRes else self.my_num
    def judgeContain(self, first_num):
        conRes = ""
        if str(first_num) in str(self.my_num) :
            conRes = rule[first_num]
        return conRes
    def answer(self, numList):
        conRes = self.judgeContain(numList[0])
        return conRes if conRes else self.judgeMod(numList)
def getOps():
    '''parse options'''
    if len(sys.argv) != 4 :
        print "use as fizzBuzzWhizz.py [0-9] [0-9] [0-9]"
        sys.exit()
    else:
        first_num = int(sys.argv[1])
        second_num = int(sys.argv[2])
        third_num = int(sys.argv[3])
    return first_num, second_num, third_num 
def main():
    first_num, second_num, third_num = getOps()
    global rule 
    rule = {first_num:"Fizz", second_num:"Buzz", third_num:"Whizz"}
    student_num = 100
    tea = teacher(100)
    tea.gameStart( (first_num, second_num, third_num) )
if __name__ == "__main__":
    main()
Python 相关文章推荐
Python socket C/S结构的聊天室应用实现
Nov 30 Python
用Python从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
python使用append合并两个数组的方法
Apr 28 Python
Python的randrange()方法使用教程
May 15 Python
详解Python命令行解析工具Argparse
Apr 20 Python
Python迭代和迭代器详解
Nov 10 Python
flask-socketio实现WebSocket的方法
Jul 31 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
python使用信号量动态更新配置文件的操作
Apr 01 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
python通过scapy获取局域网所有主机mac地址示例
May 04 #Python
python使用内存zipfile对象在内存中打包文件示例
Apr 30 #Python
python数据结构之二叉树的统计与转换实例
Apr 29 #Python
python数据结构之二叉树的遍历实例
Apr 29 #Python
python数据结构之二叉树的建立实例
Apr 29 #Python
python数据结构树和二叉树简介
Apr 29 #Python
Python的ORM框架SQLAlchemy入门教程
Apr 28 #Python
You might like
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
javascript实现节点(div)名称编辑
2014/12/17 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
2016/07/06 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
详解python中的 is 操作符
2017/12/26 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
2014年医院十一国庆节活动方案
2014/09/15 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
高三英语教学计划
2015/01/23 职场文书
党员违纪检讨书
2015/05/05 职场文书
加强党性修养心得体会
2016/01/21 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
Java实现多文件上传功能
2021/06/30 Java/Android
Python中文纠错的简单实现
2021/07/07 Python
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle