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

yipeiwu_com7年前Python基础

最近好多分享这个问题的代码,题目说的是用面向对象或者函数式编程,下面是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上传package到Pypi(代码简单)

废话不多说了,直接给大家贴代码了。 编写setup.py后 $ python setup.py register $ python setup.py sdist upload 以上...

浅谈Python访问MySQL的正确姿势

Py2 时代,访问 MySQL 数据库的模块除了 PyMySQL 和 MySQL-python 之外,还有以速度见长的 Umysql,以及非常小众的 Oursql 模块。进入了 Py3...

windows 下python+numpy安装实用教程

如题,今天兜兜转转找了很多网站帖子,一个个环节击破,最后装好费了不少时间。 希望这个帖子能帮助有需要的人,教你一篇帖子搞定python+numpy,节约科研时间。 水平有限,难免存在不足...

详解Python的单元测试

如果你听说过“测试驱动开发”(TDD:Test-Driven Development),单元测试就不陌生。 单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。 比如...

Pycharm配置远程调试的方法步骤

Pycharm配置远程调试的方法步骤

动机 一些bug由于本地环境和线上环境的不一致可能导致本地无法复现 本地依赖和线上依赖版本不一致也可以导致一些问题 有时一些bug跟数据相关,本地数据无法和线上数据一致...