在學習Python的時候我也閱讀了一些其他類型的書籍,比如;算法。因為Python比較強的是爬蟲和大數(shù)據(jù)分析,當然其他語言也都可以去做爬蟲和數(shù)據(jù)分析,可能是Python更容易學作為小白的話嘗試了一下 確實比較容易理解和實踐~。
我們之前有玩過一個游戲 就是通過隨機數(shù)讓計算機出一個數(shù),然后我們?nèi)ヅ袛嘤嬎銠C出的數(shù)是哪個。
計算機會從1~100中隨機出一個數(shù),我們有6次機會去計算,看看能否猜出來。
import random
def caishuzi(fanwei,caideshu):
cishu=1
while cishu<7:
caideshu=int(input('請輸入你猜的數(shù):'))
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次以內(nèi)可以搞定,最多可能需要6-7次,當然這是咱們玩了很多次以后找到了一個好的辦法 ,就是2分法,因為知道是1~100里面的數(shù)字,那么第一次最大就是100,最小是1,先取個中間值50(取整數(shù)),如果猜得大了,再從中間值到最小值去考慮,如果小了,就從中間值到最大值去考慮。
按這個思路 我們可以做一個二分法的函數(shù)出來。注意:這個方法只能用于有序的范圍,如果范圍是無序的就不管用了哈。
做出來后干嘛呢?用魔法打敗魔法吧~計算機跟計算機去玩吧。
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('請輸入你猜的數(shù):'))
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)
讓魔法打敗魔法就跟找到外掛一樣有趣~


本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 sumchina520@foxmail.com 舉報,一經(jīng)查實,本站將立刻刪除。
如若轉載,請注明出處:http://www.qjsdgw.cn/9331.html
如若轉載,請注明出處:http://www.qjsdgw.cn/9331.html