Python實現(xiàn)簡單猜數(shù)字游戲
本文實例為大家分享了Python實現(xiàn)簡單猜數(shù)字游戲的具體代碼,供大家參考,具體內(nèi)容如下
一、需求分析
編寫一個猜數(shù)字游戲,游戲規(guī)則:計算機給出一個1-20的之間的隨機數(shù)字,讓玩家來猜猜它是幾,計算機會告訴你每次猜出的數(shù)字或大或小,如在6次內(nèi)猜到正確數(shù)字,即贏了。
二、編寫思路
1.首先導(dǎo)入random隨機模塊 ,然后定義隨機數(shù)的范圍,然后定義次數(shù)。
2.使用while循環(huán)來判斷是否符合隨機數(shù)和輸入數(shù)值的比較,并且設(shè)置次數(shù)遞減
3.使用 isdigit 函數(shù)來完成判斷玩家數(shù)據(jù)類型,避免報錯。
4.使用if else 流程控制語句即玩家輸入數(shù)字比隨機數(shù)大則提醒玩家數(shù)字大,反之則小并且提醒玩家剩余幾次機會。
5.最后編寫輸入機會用完猜對則游戲結(jié)束,猜錯則提醒機會用完,并且公布電腦給出的隨機數(shù)答案。
三、問題
1.如何來判斷玩家輸入的數(shù)據(jù)類型來避免報錯?
解決:使用isdigit函數(shù)來判斷玩家輸入的數(shù)據(jù)類型是否為數(shù)字,是則繼續(xù)運行反之則提醒玩家輸入的內(nèi)容不合法。
2.如何限制玩家輸入字符的數(shù)量?
解決:定義一個最大常量和最小常量,超出最大常量或者最小常量則會提醒玩家輸入內(nèi)容的范圍。
四、代碼
import random # 導(dǎo)入隨機模塊times = 6 # 定義嘗試次數(shù)game = random.randint(0, 20) # 定義隨機數(shù)范圍max = 20 # 定義最大常量min = 0 # 定義最小常量print(’猜一猜我心目中的數(shù)字(0-20之間):’)print(’你有%d次機會:’ % times)while times > 0: # 循環(huán)判斷如果有機會往下運行 times = times - 1 # 次數(shù)遞減 str = input() # 輸入數(shù)值 if not str.isdigit(): # 判斷數(shù)據(jù)類型 輸入的是不是數(shù)字 print(’您輸入的數(shù)據(jù):’ + str + ’不合法,請重新輸入我心目中的數(shù)字(0-20)之間,還有%d次機會’ % times) else: guess = int(str) if guess == game: #玩家輸入與隨機數(shù)相同 print(’猜對了!’) else: if guess > max: #玩家輸入大于猜測隨機數(shù)范圍 print(’輸入無效!請輸入%d到%d之間的數(shù)字,還有%d次機會.’ % (min, max, times)) continue if guess > game: #玩家輸入大于隨機數(shù) print(’您輸入的數(shù)字大了!還有%d次機會’ % times) else: print(’您輸入的數(shù)字小了!還有%d次機會’ % times) if times > 0: #還有次數(shù) print(’在嘗試一次吧’) else: print(’沒機會了’) print(’我心目中的數(shù)字是%d’ % game)print(’游戲結(jié)束!’)
五、感悟
通過本次的項目練習(xí),我感覺自己收獲還是很大的,不僅考驗了自己對基礎(chǔ)知識的掌握程度,而且和同學(xué)在討論中也發(fā)現(xiàn)了更多的問題并且學(xué)會解決問題,然后在師父的驗收過程中也發(fā)現(xiàn)了代碼可以調(diào)優(yōu)完善的地方,最后在紀老師驗收的過程中,通過看其他同學(xué)的代碼和自己的代碼來對比可以發(fā)現(xiàn)一些自己所不了解的知識及語法,老師也提了很多的問題,并且提供了更多的思路,例如代碼里曲線 背景快出現(xiàn)的原因,以及如何設(shè)計游戲更多的樂趣,然后以后完成項目還可以使用PPT,因為這樣可以更清楚更便于自己或者同學(xué)來理解,使我受益匪淺,在自己解決問題的過程中也學(xué)會了一些更多的函數(shù)用法,例如如何判斷數(shù)據(jù)類型,通過在網(wǎng)上搜索學(xué)習(xí)了這個函數(shù),我也對類似的這種函數(shù)進行了解:
s為字符串
s.isalnum() 所有字符都是數(shù)字或者字母,為真返回 Ture,否則返回 False。
s.isalpha() 所有字符都是字母,為真返回 Ture,否則返回 False。
s.isdigit() 所有字符都是數(shù)字,為真返回 Ture,否則返回 False。
s.islower() 所有字符都是小寫,為真返回 Ture,否則返回 False。
s.isupper() 所有字符都是大寫,為真返回 Ture,否則返回 False。
s.istitle() 所有單詞都是首字母大寫,為真返回 Ture,否則返回 False。
s.isspace() 所有字符都是空白字符,為真返回 Ture,否則返回 False。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
