歡迎您光臨本站 註冊首頁

python實現逢七拍腿小遊戲的思路詳解

←手機掃碼閱讀     limiyoyo @ 2020-05-30 , reply:0

逢七拍腿遊戲

幾個小朋友在一起玩逢七拍腿的遊戲,從1開始數數,當數到7的倍數或者尾號是7時,拍一下腿。現在從1數到99,假設每個人都沒有錯,計算一下共要拍腿幾次?
第一種實現思路:通過在for循環語句中使用continue語句來實現計算拍腿次數。首先假設可拍腿次數為最高次數99,每觸發滿足的條件的時候就直接跳轉到下一次循環當中,最後的total減1則不執行,不滿足條件時total則減1。因此實際上total減去的是不滿足條件的數字,代碼如下:

 total = 99 #記錄拍腿次數的變量 for number in range(1,100): #創建一個從1數到99的循環 if number&7 == 0: #判斷是否為7的倍數 continue #跳轉到下一次循環 else: string = str(number) #將數值轉化為字符串,方便判斷尾號是否為7 if string.endswith('7'): #判斷尾號數字是否為7 continue #跳轉到下一次循環 total -= 1 #可拍腿次數減1 print("從1數到99共拍腿",total,"次") #顯示拍腿次數


在此處我們新學到一個函數為endswith(),我們先來討論一下endswith()函數的作用。

函數:endswith()
作用:判斷字符串是否以指定字符或子字符串結尾,常用於判斷文件類型
相關函數:判斷字符串開頭 startswith()

運行結果如下:

在這裡插入圖片描述

第二種實現思路:通過設置一個計數器,每觸發條件一次計數器就加1.代碼如下:

 total = 0 #記錄拍腿次數的變量 for number in range(1,100): #創建一個從1數到99的循環 if number&7 == 0: #判斷是否為7的倍數 total +=1 #可拍腿次數加1次 else: string = str(number) #將數值轉化為字符串,方便判斷尾號是否為7 if string.endswith('7'): #判斷尾號數字是否為7 total +=1 #可拍腿次數加1次 print("從1數到99共拍腿",total,"次") #顯示拍腿次數


這兩種方法都可以實現,很有趣的是第一種實際上是一種逆向的思維,我們已經習慣於加法,很少會使用到減法。第二種是我們很多人習慣的思考方式。在學習python的過程當中,多發散一下思維,有時候逆向地思考也可以達到要實現的目的,甚至會更快!


[limiyoyo ] python實現逢七拍腿小遊戲的思路詳解已經有227次圍觀

http://coctec.com/docs/python/shhow-post-236281.html