回复“书籍”即可获赠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<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学习交流群共同探讨学习。
------------------- End -------------------
往期精彩文章推荐:
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~