群友教你使用Python编程来实现“猜数字”游戏

共 754字,需浏览 2分钟

 ·

2022-03-08 17:50

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

誓扫匈奴不顾身,五千貂锦丧胡尘。

大家好,我是Python进阶者。

一、前言

前几天在Python钻石交流群有个叫【dcpeng】的粉丝问了一个关于Python实现“猜数字”游戏的问题,这里拿出来给大家分享下,一起学习。

大概意思是说随机产生一个数字,然后你自己输入一个数字,一直猜,直到猜对为止,退出循环。

二、解决过程

这里给出【冯诚】和【德善堂小儿推拿-瑜亮老师】大佬的解答,一共两个方法,一起来看看吧!

【冯诚】解答

其实这个题目的逻辑和思路也相对简单,使用while循环和random库,借用input()函数,下面是【冯诚】大佬给的代码,如下所示:

import random
n=random.randint(1,100)
while True:
    a=int(input('请输入数字:'))
    if a>n:
        print('猜大了')
    elif a        print('猜小了')
    else :
        print('恭喜你猜对了')
        break

这个方法还是蛮好理解的,比较好理解,基本上运气好的话,几次运行结果,就会答对了。【dcpeng】自己也写了一份代码,和这个基本上一样的,就不单独展示了。

【德善堂小儿推拿-瑜亮老师】解答

这里加入了重新赋值的方法,使得交互性更强了一些,代码如下:

#-*-coding:utf8;-*-
#qpy:console

import random
key=random.randint(1,100)
btm=1
top=100
count=1
while True:
    try:
        user=int(input("请输入数字:"))
    except:
        continue
    if user>key:
        print('猜大了')
        print(f'数字区间为{btm}-{user}')
        top=user
    elif user        print('猜小了')
        print(f'数字区间为{user}-{top}')
        btm=user
    else:
        print(f'恭喜你共使用{count}次机会,猜对正确数字{key}')
        break
    count+=1

这样还能清楚的知道下一步的猜数是哪个具体的区间,确实好看很多。

不过后来【月神】日常测试,皮了一下,发现了一个小问题,如下图所示:

不仔细测试的话,是很难发现这个小问题。

后来【瑜亮老师】优化了他的这个代码,最新的代码如下所示:

import random

key = random.randint(1, 100)
btm = 1
top = 100
count = 1
while True:
    try:
        user = int(input("请输入数字:"))
    except:
        continue
    if user > key:
        if top >= user:
            top = user
        print(f'错误!正确数字比{user}小,答案就在区间{btm}-{top}之中')
    elif user < key:
        if btm <= user:
            btm = user
        print(f'错误!正确数字比{user}大,答案在区间{btm}-{top}之中')
    else:
        print(f'恭喜你共使用{count}次机会,猜对正确数字{key}')
        if count > 7:
            print('请继续努力!您还需要多练习猜数。')
        elif count == 1:
            print('啥也甭说了,快去买彩票!')
        else:
            print('你真是个机灵的小可爱!')
        break
    count += 1

最新代码修复了输入错误数字时提示区间显示的错误。加入一些互动,玩起来更有意思一些,这样就更加完美了。

真是太秀了。

三、总结

大家好,我是Python进阶者。这篇文章基于粉丝提问,针对Python实现猜数游戏的问题,给出了具体说明和演示,并且在实现过程中,群友们不断的测试和优化,精益求精,顺利地帮助粉丝解决了问题,让程序玩起来更有意思一些。

最后感谢粉丝【dcpeng】提问,感谢【冯诚】和【德善堂小儿推拿-瑜亮老师】大佬给出的示例和代码支持,感谢粉丝【月神】、【冯诚】、【Function】参与调测支持,感谢【孤烟逐云】、【东哥】、【某嘟】、【Function】、【布洛芬】、【果冻】等人参与学习交流。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

往期精彩文章推荐:

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~

浏览 119
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报