# yyds干货盘点 # 群友教你使用Python编程来实现“猜数字”游戏

Posted Python进阶者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了# yyds干货盘点 # 群友教你使用Python编程来实现“猜数字”游戏相关的知识,希望对你有一定的参考价值。

大家好,我是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<n:
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<key:
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学习交流群共同探讨学习。

以上是关于# yyds干货盘点 # 群友教你使用Python编程来实现“猜数字”游戏的主要内容,如果未能解决你的问题,请参考以下文章

# yyds干货盘点 # 盘点一道Python取整的基础题目

#yyds干货盘点# 盘点两种使用Python读取.nc文件的方法

# yyds干货盘点 # 盘点一道使用Python编程来实现高斯计算的基础算术题目

# yyds干货盘点 # 盘点Python列表的一道基础题目

# yyds干货盘点 # 编写一个闭包函数,要实现的功能是计数功能

# yyds干货盘点 # 编写一个闭包函数,要实现的功能是计数功能