脚本专栏 
首页 > 脚本专栏 > 浏览文章

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

(编辑:jimmy 日期: 2024/11/17 浏览:3 次 )

最近好多分享这个问题的代码,题目说的是用面向对象或者函数式编程,下面是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读取浮点数和读取文本文件示例
一句话新闻
Windows上运行安卓你用过了吗
在去年的5月23日,借助Intel Bridge Technology以及Intel Celadon两项技术的驱动,Intel为PC用户带来了Android On Windows(AOW)平台,并携手国内软件公司腾讯共同推出了腾讯应用宝电脑版,将Windows与安卓两大生态进行了融合,PC的使用体验随即被带入到了一个全新的阶段。