Python微項目分享之幸運球抽獎

Python微項目分享之幸運球抽獎

作者:JiawuZhang
出品:JiawuLab(ID:jiawulab)

微項目系列是JiawuLab原創欄目,每期選取一個自創項目或發現有趣的項目,進行代碼、邏輯分析,達到python學習目的。

大家好,我是JiawuZhang,本次微項目是——幸運球抽獎。

最近翻看手機上的老視頻,發現了很多,以前學習python時拍下的一些項目視頻。

現在看看,還是能感受到當時能做出這個功能的喜悅之情。

其中一個項目,我至今還能回憶起來當時的感受,這個項目就是幸運球抽獎。

播放

暫停

進入全屏

退出全屏

00:00

00:00

重播

刷新

試試

這是我剛剛學完培訓課第三課,掌握了判斷(if…else…)和循環(for…/while…)。

那天晚上做完課後練習後,頭腦裡面就開始想,我能不能自己弄一個項目,然後自己來碼代碼解決掉

於是經歷了兩小時的構思,拋掉各種套路,直擊遊戲本身,所以就有了這個項目

一個抽獎遊戲,一個我自己也不知道正確答案的遊戲,而概率能達到萬分之一。

於是就有了這個項目的框架,如下

總共有6關,
每一關,有5只杯子,編號1、2、3、4、5,一個小球,
將小球隨機放入一隻杯子,
如果你猜中小球所在杯子編號,進入下一關
只要你猜錯了,跳回到第一關
總共有6次機會進行
如果6關都猜對,輸出“恭喜你,全通關,你獲得了萬中挑一的稱號!”
如果6次機會都用完,沒有猜對,退出程序。

然後就開始分析,怎麼來寫代碼呢?

1、小球隨機放入杯子,而且是每關都要隨機,可是隨機還沒有學過,於是百度知道了有random庫,很方便的解決我的問題。

只需要先導入“random”,然後整數1-5中選擇一個,於是知道了“randint(1, 5)”,可以滿足我的需求。

小編注:您可以看到,當你希望解決問題,一定會去主動找尋解決辦法,因此你就能學習原本不知道的更多東西,而這種學習會記憶更深刻。

2、猜這個動作,可以用到"input"這個方法,來給項目輸入信息。

3、當猜中或猜錯,會有相應的動作,那用判斷(if…else…)正好解決。

4、有6次機會,所以需要用到循環,那兩種循環用哪個呢? 兩個都能用,只在處理過程中會有點不同

5、當猜中,進入下一關,達到6關,全通關,只要猜錯,回到第一關,所以這裡要設置兩個變量,一個勝利次數,一個失敗次數

好了,分析完畢,我們也知道了應該運用哪些知識點來操作,現在開始碼代碼:

Python微項目分享之幸運球抽獎

運行下來,和上面視頻顯示的效果一樣,灰常Good~

你認為這樣就結束了嗎?

沒有,學習是不斷進行的,之後學習到了函數,我再想,用函數來改造這個小項目,正好也能實踐一下函數

函數可以傳參,所以我在想這個遊戲次數也可以改動啊,做為參數傳進去

同時我還想到把列表也放進去,以及字符串拼接,上面代碼中是用最基礎的方式

但是後來學到了佔位符,用“%s”來進行,這正好是新知識的應用

同時使用"for…"循環來實踐,於是我就把代碼改造成下面這樣:

Python微項目分享之幸運球抽獎

代碼分析一下:

1、有5個杯子,所以中獎數字就是在[1, 2, 3, 4, 5]中,所以設置luckylist列表

2、傳參,我這裡設置為6,如果這時我想把機會設置成為8次,只用改最後的數字就好,也可以做更多可能

比如,當完成指定動作後,可以增加抽獎次數,這個參數可以做出相應調整。

發現沒有?對的,就像各大電商平臺,當你完成指定任務,可以增加抽獎次數,我們可以將這個功能放進更多大項目中。

後來,我就把這個小項目,放入我自己原創的一個文字遊戲中,做為一個小功能來增強整個遊戲的可玩性,並改造成各種獎勵。

所以,很多時候,你做的一個小項目,不僅能學會更多python的知識,也能促進你學習更多新的知識

同時也能成為你日後,一些大項目的一部分,能快速的改造增強功能等。

所以我一直認為:

要想學會python,多做一些小項目,尤其是自己從生活中找到靈感的小項目。

本次的微項目——幸運球抽獎——分享結束。如果您喜歡這期文章,請點贊,支持一下。

歡迎您關注我,或者給我留言,說說你遇到的問題,我們一起探討。

Python微項目分享之幸運球抽獎


分享到:


相關文章: