經典示例-在快樂中鍛鍊程式邏輯
一.構造程式邏輯
剛接觸一門語言,最重要的是從根本上懂得此語言的邏輯,懂得執行原理.這就需要我們通過一些簡單有趣的例子來鍛鍊自己的語言邏輯思維,嘗試用所學知識去解決現實中的問題,換句話說就是鍛鍊自己把人類自然語言描述的演算法(解決問題的方法和步驟)翻譯成Python程式碼的能力,而這件事情必須通過大量的練習才能達成。
這裡為大家整理了一些經典的案例,一方面幫助大家鞏固之前所學的Python知識,另一方面幫助大家瞭解如何建立程式中的邏輯以及如何運用一些簡單的演算法解決現實中的問題。
二.經典示例
1.python-尋找水仙花數
說明:水仙花數也被稱為超完全數字不變數、自戀數、自冪數、阿姆斯特朗數,它是一個3位數,該數字每個位上數字的立方之和正好等於它本身。
例如: 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153程式碼演示:
for i in range(100, 1000): a = i//100 # 取百位數字 b = i//10 % 10 # 取十位數字 c = i%10 # 取個位數字 if a**3 + b**3 + c**3 == i: print(i, "是水仙花數")
2.python-求素數,合數
求2~100之內的所有素數。【素數:只能被1或本身整除的數】
程式碼演示:
for n in range(2, 101): for i in range(2, n): if n % i == 0: # print(n, '不是質數') break else: print(n, "是質數")
3.python-列印九九乘法表
列印九九乘法表
程式碼演示:
for i in range(1, 10): for j in range(1, i + 1): print(str(j) + "*" + str(i) + '=' + str(i * j), end=' ') print()
4.python-求斐波那契數列
求斐波那契數列中第n個數的值,n是正整數。n值由控制檯輸入
說明:斐波那契數列是這樣的一個數列:1、1、2、3、5、8、13、21、34、… ,第一個數和第二個數是1,從第三個數開始每個元素是前兩個元素相加的和。程式碼演示:
n = int(input('請輸入一個數字:')) a = 1 # 第1個數 b = 1 # 第2個數 c = 0 if n <= 2: print(1) else: for i in range(3, n+1): c = a + b # c = 2(第一次時) a = b b = c print(c)
5.python-百馬百擔問題
問題:一匹大馬能馱3擔貨,一匹中馬能馱2擔貨,兩匹小馬能馱1擔貨,如果用一百匹馬馱一百擔貨,問有大、中、小馬各幾匹?
程式碼演示:
for i in range(34): for j in range(51): k = 100 - i - j if i*3 + j*2 + k/2 == 100: print(i, j, k)
上面使用的方法叫做窮舉法,也稱為暴力搜尋法,這種方法通過一項一項的列舉備選解決方案中所有可能的候選項並檢查每個候選項是否符合問題的描述,最終得到問題的解。這種方法看起來比較笨拙,但對於運算能力非常強大的計算機來說,通常都是一個可行的甚至是不錯的選擇,而且問題的解如果存在,這種方法一定能夠找到它。
6.python-CRAPS賭博遊戲
說明:CRAPS又稱花旗骰,是美國拉斯維加斯非常受歡迎的一種的桌上賭博遊戲。該遊戲使用兩粒骰子,玩家通過搖兩粒骰子獲得點數進行遊戲。簡單的規則是:玩家第一次搖骰子如果搖出了7點或11點,玩家勝;玩家第一次如果搖出2點、3點或12點,莊家勝;其他點數玩家繼續搖骰子,如果玩家搖出了7點,莊家勝;如果玩家搖出了第一次搖的點數,玩家勝;其他點數,玩家繼續要骰子,直到分出勝負。
程式碼演示:
from random import randint money = 1000 while money > 0: print('你的總資產為:', money) needs_go_on = False while True: debt = int(input('請下注: ')) if 0 < debt <= money: break first = randint(1, 6) + randint(1, 6) print('玩家搖出了%d點' % first) if first == 7 or first == 11: print('玩家勝!') money += debt elif first == 2 or first == 3 or first == 12: print('莊家勝!') money -= debt else: needs_go_on = True while needs_go_on: needs_go_on = False current = randint(1, 6) + randint(1, 6) print('玩家搖出了%d點' % current) if current == 7: print('莊家勝') money -= debt elif current == first: print('玩家勝') money += debt else: needs_go_on = True print('你破產了, 遊戲結束!')
相關文章
- Java鍛鍊邏輯思維能力綜合練習Java
- [ 邏輯鍛鍊] 用 JavaScript 做一個小遊戲 ——2048 (初級版)JavaScript遊戲
- [ 邏輯鍛鍊] 用 JavaScript 做一個小遊戲 ——2048 (詳解版)JavaScript遊戲
- 幾道經典邏輯推理題,提高你的邏輯思考能力
- 【Java】經典示例程式碼Java
- unbound中快取時間邏輯快取
- 18 個鍛鍊程式設計技能的網站程式設計網站
- 這個VR健身遊戲,能讓你在谷歌街景中進行戶外鍛鍊VR遊戲谷歌
- 一道經典面試邏輯題的python解法面試Python
- 在程式設計中體驗純粹的快樂程式設計
- 連結串列經典示例
- vue專案中mapboxgl的幾個經典操作程式碼示例Vue
- 在程式設計中思考,簡化你的判斷邏輯程式設計
- 年輕工程師如何鍛鍊成高手的工程師
- 模糊邏輯工具箱在Simulink中…
- 程式設計師工作之餘應該注意鍛鍊自己的身體程式設計師
- 3.2.2的Model的快取邏輯快取
- AI「王道」邏輯程式設計的復興?清華提出神經邏輯機,已入選ICLRAI程式設計ICLR
- [用設計模式鍛鍊C#系列]之Strategy (轉)設計模式C#
- [用設計模式鍛鍊C#系列]之Builder (轉)設計模式C#UI
- [用設計模式鍛鍊C#系列]之Decorator (轉)設計模式C#
- 輕投資專案優惠寄快遞程式賺錢邏輯
- 【pygame遊戲開發】這幾個經典遊戲,勾起了少年的快樂GAM遊戲開發
- ANTELOPE智慧健身衣:鍛鍊身體穿它才有範兒
- 《快樂碼農》第7期 嘗試在帳篷中寫程式碼
- 在Oracle中,什麼是物理讀和邏輯讀?Oracle
- 在Linux中,如何使用LVM管理邏輯卷?LinuxLVM
- 業務邏輯層快取應該設計快取
- 技術崗角色能鍛鍊成為管理人才嗎?
- 不做工具人,學會鍛鍊感悟愛與幸福的能力
- 培養程式碼邏輯
- 第七篇:兩個經典的檔案IO程式示例
- 10個Java 8 Lambda表示式經典示例Java
- 在LVM中恢復已刪除的邏輯卷LVM
- 請教在ssh種哪裡實現邏輯程式碼
- 網站程式碼審計服務 技術人員是如何學習鍛鍊成的網站
- 七大快取經典問題快取
- 我的產品/競品分析鍛鍊記錄(分析產品核心)