python實現模擬數字的魔術遊戲
遊戲介紹
在遊戲中,魔術師要每位觀眾心裡想一個三位數abc (a、b、c分別是百位、十位和個位數字),然後魔術師讓觀眾心中記下acb、bac、bca、cab、cba五個數以及這5個數的和值。隻要觀眾說出這個和是多少,則魔術師一定能猜出觀眾心裡想的原數abc是多少。例如,觀眾甲說他計算的和值是1999,則魔術師立即說出他想的數是443,而觀眾乙說他計算的和值是1998,則魔術師說:“你算錯瞭!”。
【輸入】
輸入一個正整數。
【輸出】
輸出對應的三位數。如果對應的三位數不存在,則輸出:“Thesum you calculated is wrong!”。
【輸入示例】
1998
【輸出示例】
The sum you calculated is wrong!
解題思路
簡單粗暴的進行循環賦值比較
涉及的知識點
- python基礎語法
- 字符串類型和數字類型的相互轉換
- range()內置函數的使用
- for循環的嵌套使用
- if-else結構語句的使用
主要代碼
def magic_numbers(): ''' 魔術數字,根據數據總和推算原始數據 核心思想:依次將0-9賦值給abc,進行循環比較後得出結果 ''' # 用戶算出的數字總和,需要轉換數據類型 user_input = int(input('請輸入數字的總和:\n')) # 默認用戶失敗時的輸出結果 result = 'The sum you calculated is wrong!' #3層嵌套for循環依次對abc進行賦值 for a in range(10): for b in range(10): for c in range(10): # 將數字裝換為字符串進行排列組合和拼接 a = str(a) b = str(b) c = str(c) # 要將拼接好的字符串組合重新轉換為數字類型 即int acb = int(a+c+b) bac = int(b+a+c) bca = int(b+c+a) cab = int(c+a+b) cba = int(c+b+a) # 計算出每種排列組合後的數字的總和 sum = acb + bac + bca + cab + cba # 用排列組合的總和與用戶給出的總和進行比較,相等則正確,並排列出abc的值,輸出 if sum == user_input: abc = int(a+b+c) # 將默認的失敗值置空,備後面判斷使用 result = '' print('The original number is : ',abc) # 循環完成後判斷默認的失敗值是否改變,如果沒有改變則直接輸出,表示用戶計算錯誤 if result != '': print(result)
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。