在学习Python的时候我也阅读了一些其他类型的书籍,比如;算法。因为Python比较强的是爬虫和大数据分析,当然其他语言也都可以去做爬虫和数据分析,可能是Python更容易学作为小白的话尝试了一下 确实比较容易理解和实践~。
我们之前有玩过一个游戏 就是通过随机数让计算机出一个数,然后我们去判断计算机出的数是哪个。
计算机会从1~100中随机出一个数,我们有6次机会去计算,看看能否猜出来。
import random
def caishuzi(fanwei,caideshu):
cishu=1
while cishu<7:
caideshu=int(input('请输入你猜的数:'))
if caideshu==a:
print(f'很厉害嘛,第{cishu}次,猜对的,')
break
else:
if caideshu>a:
print(f'猜大了,这是第{cishu}次')
else:
print(f'猜小了,这是第{cishu}次')
cishu+=1
a = random.randint(1,100)
fanwei=[i for i in range(1,101)]
caishuzi(fanwei,a)
运气好6次以内可以搞定,最多可能需要6-7次,当然这是咱们玩了很多次以后找到了一个好的办法 ,就是2分法,因为知道是1~100里面的数字,那么第一次最大就是100,最小是1,先取个中间值50(取整数),如果猜得大了,再从中间值到最小值去考虑,如果小了,就从中间值到最大值去考虑。
按这个思路 我们可以做一个二分法的函数出来。注意:这个方法只能用于有序的范围,如果范围是无序的就不管用了哈。
做出来后干嘛呢?用魔法打败魔法吧~计算机跟计算机去玩吧。
import random
def caishuzi(fanwei,caideshu):
zuixiaozhi=1
zuidazhi=len(fanwei)
cishu=1
while cishu<8:
zhongjianzhi = (zuidazhi + zuixiaozhi) // 2
print(f'计算机建议你猜:{zhongjianzhi}')
guess=int(input('请输入你猜的数:'))
guess=zhongjianzhi
if guess==caideshu:
print(f'很厉害嘛,第{cishu}次,猜对的,')
break
else:
if guess>caideshu:
zuidazhi=zhongjianzhi-1
print(f'猜大了,这是第{cishu}次')
else:
zuixiaozhi=zhongjianzhi+1
print(f'猜小了,这是第{cishu}次')
cishu+=1
a = random.randint(1,100)
fanwei=[i for i in range(1,101)]
caishuzi(fanwei,a)
让魔法打败魔法就跟找到外挂一样有趣~
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.vsaren.com/9331.html
如若转载,请注明出处:https://www.vsaren.com/9331.html