zoukankan      html  css  js  c++  java
  • 【python小练习】简单的猜数字游戏

    简单的猜数字游戏

    前两天在论坛回答问题时候,看到一个猜数字的游戏,就在原来的基础上改了一下,玩一玩。

    此程序,数字范围和尝试次数是事先设定好的,当然可以通过代码修改。经过测试,由于难度过大,我在其中加入的作弊功能,聪明的你一定能发现啦~

    代码思路:

    随机生成初始数 random.randint()

    循环限制尝试次数

    将输入的数与初始数进行比较,并输出比较结果

    经过不断尝试,相等后会下载一张暴漫的图片,暴漫的图片分两种

    imglist = re.findall('data-original-image-url="(.*?.jpg)"',html) # 一种是单幅的图片
    picSmall = re.findall('src="(https://wanzao2.b0.upaiyun.com/web_maker/.*?-picSmall)',html) # 另一种是一系列组图,因为一系列的这种我还没想到怎么区分不同的组图,所以就使上一种了

    最后用urllib下载列表中随机一张,就以这张图片作为答对的奖励啦。其实还可以做翻页的,但想到就是奖励,没有太大必要。

    代码:

    import re
    import requests
    import random
    import urllib.request
    
    def getHtml(url):
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Accept-Encoding': 'gzip, deflate',
            'Upgrade-Insecure-Requests': '1',
        }
        page = requests.get(url,headers=headers)
        html = page.text
        return html
    
    def getImg(html):
        imglist = re.findall('data-original-image-url="(.*?.jpg)"',html) # .decode('utf-8')
        # picSmall = re.findall('src="(https://wanzao2.b0.upaiyun.com/web_maker/.*?-picSmall)',html)
        rad = random.randint(0,len(imglist))
        urllib.request.urlretrieve(imglist[rad],'开心一刻.jpg')
        print('请在目录下查看今日图片...')
    
    if __name__ == '__main__':
        
        i=1
        jihui = 8
        number=random.randint(1,1000)
        usage = '''
        ------------------------
        -    每日一笑 v 1.0    -
        -    数字范围:1-1000  -
        -    尝试次数:8       -
        ------------------------
        '''
        print(usage)
        temp=int(input('请猜一猜今天的数字是什么:'))
        while i<9:
                if temp == 123456:
                        print('答案是'+ str(number) +'...')
                if temp!=number:
                        jihui -= 1
                        if jihui == 0:
                                print('机会用完了...')
                                break
                        if temp>number:
                                print('哎呀,大啦!' + '还剩余'+ str(jihui) +'次机会..')
                        elif temp<number:
                                print('哎呀,小啦,小啦!'+'还剩余'+ str(jihui) +'次机会..')
                        temp=int(input('请再猜一次吧:'))
                else:
                        print('对啦对啦!!!')
                        html = getHtml("http://baozoumanhua.com/all/hot?page=1")
                        getImg(html)
                        break
                i+=1
        print('游戏结束~')
  • 相关阅读:
    java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä'.. 问题解决方法
    Mysql存储引擎federated
    实习心语
    Linux版本CentOS、Ubuntu和Debian的异同
    Ubuntu忘记MySQL密码重设方法
    运行时异常和一般异常
    网络爬虫-正方教务系统登录
    大四心语
    缓存更新的套路
    (String)、toString、String.valueOf的区别
  • 原文地址:https://www.cnblogs.com/zhaijiahui/p/8244669.html
Copyright © 2011-2022 走看看