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

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

(0)

相关推荐

  • 拉钩网java笔试题分享

    你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏.此时有100名学生在上课.游戏的规则是:1. 你首先说出三个不同的特殊数,要求必须是个位数,比如3.5.7.2. 让所有学生拍成一队,然后按顺序报数.3. 学生报数时,如果所报数字是第一个特殊数(3)的倍数,那么不能说该数字,而要说Fizz:如果所报数字是第二个特殊数(5)的倍数,那么要说Buzz:如果所报数字是第三个特殊数(7)的倍数,那么要说Whizz.4. 学生报数时,如果所报数字同时是两个特殊数的倍数情况下,也要特殊处理,

  • java实现拉钩网上的FizzBuzzWhizz问题示例

    复制代码 代码如下: package test; /** * 你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏.此时有100名学生在上课.游戏的规则是: *  * 1. 你首先说出三个不同的特殊数,要求必须是个位数,比如3.5.7.  * 2. 让所有学生拍成一队,然后按顺序报数.  * 3.学生报数时,如果所报数字是第一个特殊数(3)的倍数,那么不能说该数字,而要说Fizz:如果所报数字是第二个特殊数(5)的倍数,那么要说Buzz:如果所报数字是第三个特殊数(7)的倍数,那么要

  • shell实现FizzBuzzWhizz问题示例(拉勾网面试题)

    试题: https://www.jinshuju.net/f/EGQL3D 语言: Shell (Bash)运行方式:sh num-game.sh 数字1 数字2 数字3如果不想使用传递数字的方式, 可以修改 num-game.sh 第 9 行, 将NUM=$*改为NUM='数字1 数字2 数字3'然后直接运行 sh num-game.sh 即可 复制代码 代码如下: #!/bin/bash ## Author : TaxKiz## Email  : taxkiz@gmail.com expor

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

    最近好多分享这个问题的代码,题目说的是用面向对象或者函数式编程,下面是PYTHON的实现示例 复制代码 代码如下: #!/usr/bin/python#encoding:utf8 '''The Game of "FizzBuzzWhizz"author : wang.jiankui89@gmail.commobile : 130-2199-5152'''import sys class teacher:    def __init__(self, student_num):      

  • Python 脚本拉取 Docker 镜像问题

    好久没有介绍小工具了,今天碰到一个,简单粗糙但是有用的一个,这个工具有多简单粗糙呢?证据有二: 连 Python shebang 都没有: 简单到原创 300 字都很难凑够. 言归正传:安装工经常会遇到一个问题:没 Docker 怎么拉镜像?这个小工具就是做这个事情的. 该项目同样是个开源项目,地址为: https://github.com/NotGlop/docker-drag 这个项目使用 Python 的 Request 库,借助 API 直接从仓库中拉取镜像,并保存为 TAR 文件. 保

  • 使用python将图片格式转换为ico格式的示例

    因为python打包的时候需要用到ico图片格式,网上看好的图片又没有ico,于是自己寻找了一下python转换图片格式的方法,彻底解决这个问题,以后就可以自己轻松实现转化了. 代码如下: """ Author:Robin·QI Notes:将图片转换为ico格式 """ # PythonMargick包可以到Unofficial Windows Binaries for Python Extension Packages下载 import Py

  • Python调用scp向服务器上传文件示例

    最近做的项目中有一个小功能:在python中调用scp命令 使用ssh登录,然后将指定目录中的图片上传到服务器指定目录 网上搜了很多方法都没用,最后终于碰到一个可以成功上传的,特此记录 import paramiko # 用于调用scp命令 from scp import SCPClient # 将指定目录的图片文件上传到服务器指定目录 # remote_path远程服务器目录 # file_path本地文件夹路径 # img_name是file_path本地文件夹路径下面的文件名称 def u

  • python多线程semaphore实现线程数控制的示例

    前面写过一篇关于python多线程的实现的文章, 但是效果不是最佳的,写法也不是很好.通过网上学习,也了解到了semaphore这个东西. 百度给的解释:Semaphore是一种在多线程环境下使用的设施,该设施负责协调各个线程,以保证它们能够正确.合理的使用公共资源的设施,也是操作系统中用于控制进程同步互斥的量. 一个有趣的例子:假设停车场只有三个车位,一开始三个车位都是空的.这时如果同时来了五辆车,看门人允许其中三辆不受阻碍的进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在

  • Python操作Word批量生成合同的实现示例

    背景:大约有3K家商家需要重新确认信息并签订合同.合同是统一的Word版本.每个供应商需要修改合同内的金额部分.人工处理方式需要每个复制粘贴且金额要生成大写金额.基于重复工作可偷懒.用Python解救一下. #导入对应数据库 import numpy as np import pandas as pd import os import docx from docx.shared import Pt from docx.oxml.ns import qn #修改项目文件地址 os.chdir(r'

  • python实现暗通道去雾算法的示例

    何凯明博士的去雾文章和算法实现已经漫天飞了,我今天也就不啰里啰唆,直接给出自己python实现的完整版本,全部才60多行代码,简单易懂,并有简要注释,去雾效果也很不错. 在这个python版本中,计算量最大的就是最小值滤波,纯python写的,慢,可以进一步使用C优化,其他部分都是使用numpy和opencv的现成东东,效率还行. import cv2 import numpy as np def zmMinFilterGray(src, r=7): '''最小值滤波,r是滤波器半径''' ''

  • Python将QQ聊天记录生成词云的示例代码

    在这个情人节前夕,我把现任对象回收掉了,这段感情积攒了太多的失望,也给了我太多的伤害,所以我看到这个活动的第一反应是拒绝的.然而人生嘛,最重要的就是体验,沉浸在过去的回忆里没有意义,积极面对才能让自己更好地重振旗鼓. 所以,当大家都一致地在这个活动里各种秀恩爱时,我决定走一条不一样的路来为单身狗和刚分手的小伙伴们打打气:时间能改变的,是那些原本就不坚定的东西,未来的路还很长,笑一笑,一切都会过去的! 言归正传,我们要做的任务是,把 QQ 分手聊天记录导出,使用 Python 分词后做成分开的桃心

  • Python实现Telnet自动连接检测密码的示例

    最近在学习Python网络相关编程,这个代码实现了Telnet自动连接检测root用户密码,密码取自密码本,一个一个检测密码是否匹配,直到匹配成功,屏幕输出停止. Python内置了telnetlib模块,支持telnet远程操作,只要直接import就可以. 代码如下: # encoding=utf-8 import telnetlib import time import sys import os def do_telnet(Host, Port, username, password,

随机推荐