5

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

 3 years ago
source link: https://blog.51cto.com/u_13389043/5071375
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

大家好,我是Python进阶者。

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

# yyds干货盘点 # 群友教你使用Python编程来实现“猜数字”游戏_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】自己也写了一份代码,和这个基本上一样的,就不单独展示了。

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

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

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

#-*-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

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

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

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

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

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

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

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

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

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

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

真是太秀了。

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

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

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

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

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


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK