1. 程式人生 > 程式設計 >python實現逢七拍腿小遊戲的思路詳解

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

逢七拍腿遊戲

幾個小朋友在一起玩逢七拍腿的遊戲,從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共拍腿","次")  #顯示拍腿次數

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

總結

到此這篇關於python實現逢七拍腿小遊戲的思路詳解的文章就介紹到這了,更多相關python實現逢七拍腿小遊戲內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!