使用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 enumerate索引迭代代码解析

本文研究的主要是Python enumerate索引迭代的问题,具体介绍如下。 索引迭代 Python中,迭代永远是取出元素本身,而非元素的索引。 对于有序集合,元素确实是有索引的。...

Python在Matplotlib图中显示中文字体的操作方法

1.    说明 本篇主要针对在Ubuntu系统中,matplotlib显示不了中文的问题,尤其是在无法安装系统字体的情况下,解决Python绘图时中文显示...

基于python编写的微博应用

本文实例讲述了基于python编写的微博应用,分享给大家供大家参考。具体如下: 在编写自己的微博应用之前,先要到weibo开放平台申请应用的公钥和私钥。 下载python版的SDK,打开...

pytorch 模型可视化的例子

pytorch 模型可视化的例子

如下所示: 一. visualize.py from graphviz import Digraph import torch from torch.autograd import...

Python环境下安装使用异步任务队列包Celery的基础教程

1.简介 celery(芹菜)是一个异步任务队列/基于分布式消息传递的作业队列。它侧重于实时操作,但对调度支持也很好。 celery用于生产系统每天处理数以百万计的任务。 celery是...