Python課程設(shè)計(jì):序列應(yīng)用——猜單詞游戲

前言

????????????猜單詞游戲是Python課程設(shè)計(jì)中對(duì)于序列數(shù)據(jù)結(jié)構(gòu)和random模塊的綜合應(yīng)用,本文對(duì)于該章節(jié)將以以下內(nèi)容,從功能介紹、設(shè)計(jì)思路、關(guān)鍵技術(shù)和設(shè)計(jì)步驟進(jìn)行講解:


Ⅰ猜單詞游戲功能介紹

猜單詞游戲是計(jì)算機(jī)隨機(jī)產(chǎn)生一個(gè)單詞,打亂字母順序,供玩家去猜。該游戲采用控制字符界面,運(yùn)行界面如圖所示:


Ⅱ程序設(shè)計(jì)的思路

游戲中需要隨機(jī)產(chǎn)生單詞和隨機(jī)數(shù)字,所以引入random模塊的產(chǎn)生隨機(jī)數(shù)函數(shù),其中random.choice()可以從中隨機(jī)選取元素。例如:


? ? ? word就是從單詞序列中隨機(jī)挑出的一個(gè)單詞。

????? 游戲中隨機(jī)挑出一個(gè)單詞word后,如何把單詞word的字母順序打亂?方法是隨機(jī)從單詞字符串中選擇一個(gè)位置position,把position位置的字母加入亂序后單詞jumble,同時(shí)將原單詞word中的position位置的字母去掉(通過連接position位置前字符串和其后字符串實(shí)現(xiàn))。通過多次循環(huán)就可以產(chǎn)生新的亂序后單詞jumble。


Ⅲ關(guān)鍵技術(shù)

1.序列數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。序列中的每個(gè)元素都分配一個(gè)數(shù)字,即它的位置或索引,第一個(gè)索引是0,第二個(gè)索引是1,以此類推。序列都可以進(jìn)行的操作包括索引、切片、加、乘、成員檢查。此外,Python已經(jīng)內(nèi)置確定序列的長度以及最大和最小元素的方法

①列表

列表是最常用的Python數(shù)據(jù)類型,列表的數(shù)據(jù)項(xiàng)不需要有相同的類型。列表類似于其他語言的數(shù)組,但功能比數(shù)組強(qiáng)大的多。

????? 創(chuàng)建一個(gè)列表,只要把逗號(hào)分隔的不同的數(shù)據(jù)項(xiàng)使用方括號(hào)[]括起來即可。例如:


? ? ? 列表索引從0開始。列表可以進(jìn)行切片、組合等。

????? 可以使用下索引來訪問列表里的值,同樣也可以使用方括號(hào)的形式截取字符。例如:

????? 以上實(shí)例的輸出結(jié)果:

②元組

????? 元組(tuple)與列表類似,不同之處在于元組的元素不能修改。元組使用小括號(hào)(),列表使用方括號(hào)。元組中的元素類型也可以不相同。

????? 元組創(chuàng)建很簡單,只需要在括號(hào)中添加元素,并使用逗號(hào)隔開即可,例如:

如果創(chuàng)建空元組,只需寫個(gè)括號(hào)即可。

????? 元組只包含一個(gè)元素時(shí),需要在第一個(gè)元素后面添加逗號(hào)。

? ? ? 元組和字符串類似,下索引從0開始,可以進(jìn)行截取、組合等。

③字典

字典是另一種可變?nèi)萜髂P?,且可存?chǔ)任意類型對(duì)象,如字符串、數(shù)字、元組等其他容器模型。字典也被稱為關(guān)聯(lián)數(shù)組或哈希表。

字典的每個(gè)鍵值?key=>value?對(duì)用冒號(hào)?:?分割,每個(gè)鍵值對(duì)之間用逗號(hào)?,?分割,整個(gè)字典包括在花括號(hào)?{}?中 ,格式如下所示:

Ps:鍵必須是唯一的,但值則不必。值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的,如字符串、數(shù)字或元組。

????? 一個(gè)簡單的字典實(shí)例:

2.random模塊

? ? ? ? ? ? ? random模塊可以產(chǎn)生一個(gè)隨機(jī)數(shù)或者從序列中獲取一個(gè)隨機(jī)元素。它的常用方法和使用例子如下:

①random.random()

????? ????????random.random()用于生成一個(gè)0-1的隨機(jī)小數(shù)。

????執(zhí)行以上代碼,輸出結(jié)果如下:


②random.uniform(a,b)

????????????函數(shù)生成一個(gè)[a,b]之間的隨機(jī)小數(shù)(包含a,b)。

????????結(jié)果為:



③random.randint(a,b)

????????????????函數(shù)生成一個(gè)[a,b]之間的隨機(jī)整數(shù)(包含a,b)。


????????????結(jié)果為:


④random.choice(seq)

????????????函數(shù)可以從序列類型中隨機(jī)返回一個(gè)元素。


????????結(jié)果為:



????????結(jié)果為:


⑤random.shuffle(seq)

????????????函數(shù)可以將一個(gè)列表中的元素打亂,隨即排列。

????????????結(jié)果為:


⑥r(nóng)andom.sample(pop,k)

????????????函數(shù)從pop序列類型中隨機(jī)選取k個(gè)元素,以列表類型返回。


????????????結(jié)果為:



⑦random.randrange(start,stop[,step])

????????????函數(shù)可以生成一個(gè)[start,end)之間以step為步長的隨機(jī)整數(shù)。

????????????結(jié)果為:

⑧random.seed(a=None)

????????????初始化隨機(jī)數(shù)種子,默認(rèn)為當(dāng)前系統(tǒng)時(shí)間。

????????????生成隨即數(shù)之前可以通過seed()函數(shù)指定隨即數(shù)種子,隨機(jī)數(shù)種子一般是一個(gè)整數(shù),只要種子相同,每次生成的隨機(jī)數(shù)序列也相同。

????????????結(jié)果為:

Ⅳ程序設(shè)計(jì)的步驟

①猜單詞游戲程序?qū)胂嚓P(guān)模塊:

②創(chuàng)建所有待猜測的單詞序列元組WORDS。

③顯示游戲界面。

④以下實(shí)現(xiàn)游戲的邏輯。

????????????從序列中隨機(jī)跳出一個(gè)單詞,例如“easy”。然后使用1,2節(jié)介紹的方法打亂這個(gè)單詞的字母順序;通過多次循環(huán)產(chǎn)生新的亂序后的單詞jumble。例如“easy”單詞亂序后,產(chǎn)生“yaes”顯示給玩家。

????????????玩家輸入猜測的單詞,程序判斷出對(duì)錯(cuò)。若猜錯(cuò)則用戶可以繼續(xù)猜。

????????????運(yùn)行結(jié)果:

總結(jié)

????????????通過對(duì)于序列應(yīng)用的學(xué)習(xí)可以看出,其實(shí)我們可以通過Python寫出很多有意思的程序,在提升技術(shù)的同時(shí)也豐富了我們的日常生活,所以不要畏懼現(xiàn)在遇到的苦難,披星戴月走過的路,最終將會(huì)繁花遍地。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容