使用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同时兼容python2和python3的8个技巧分享
Jul 11 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
利用python GDAL库读写geotiff格式的遥感影像方法
Nov 29 Python
python web框架 django wsgi原理解析
Aug 20 Python
Python CSV文件模块的使用案例分析
Dec 21 Python
Python matplotlib画曲线例题解析
Feb 07 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
python实现输入三角形边长自动作图求面积案例
Apr 12 Python
Jupyter Notebook 实现正常显示中文和负号
Apr 24 Python
Python3读写ini配置文件的示例
Nov 06 Python
Django中template for如何使用方法
Jan 31 Python
python学习之panda数据分析核心支持库
May 07 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
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
js将滚动条滚动到指定位置的简单实现方法
2016/06/25 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
vue结合element-ui使用示例
2019/01/24 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
vue实现计算器功能
2020/02/22 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
python检测远程udp端口是否打开的方法
2015/03/14 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
深入解答关于Python的11道基本面试题
2017/04/01 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
keras 权重保存和权重载入方式
2020/05/21 Python
Python可视化工具如何实现动态图表
2020/10/23 Python
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
《锄禾》教学反思
2014/04/08 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python