Python實(shí)現(xiàn)簡單猜數(shù)字游戲
本文實(shí)例為大家分享了Python實(shí)現(xiàn)簡單猜數(shù)字游戲的具體代碼,供大家參考,具體內(nèi)容如下
一、需求分析
編寫一個(gè)猜數(shù)字游戲,游戲規(guī)則:計(jì)算機(jī)給出一個(gè)1-20的之間的隨機(jī)數(shù)字,讓玩家來猜猜它是幾,計(jì)算機(jī)會(huì)告訴你每次猜出的數(shù)字或大或小,如在6次內(nèi)猜到正確數(shù)字,即贏了。
二、編寫思路
1.首先導(dǎo)入random隨機(jī)模塊 ,然后定義隨機(jī)數(shù)的范圍,然后定義次數(shù)。
2.使用while循環(huán)來判斷是否符合隨機(jī)數(shù)和輸入數(shù)值的比較,并且設(shè)置次數(shù)遞減
3.使用 isdigit 函數(shù)來完成判斷玩家數(shù)據(jù)類型,避免報(bào)錯(cuò)。
4.使用if else 流程控制語句即玩家輸入數(shù)字比隨機(jī)數(shù)大則提醒玩家數(shù)字大,反之則小并且提醒玩家剩余幾次機(jī)會(huì)。
5.最后編寫輸入機(jī)會(huì)用完猜對(duì)則游戲結(jié)束,猜錯(cuò)則提醒機(jī)會(huì)用完,并且公布電腦給出的隨機(jī)數(shù)答案。
三、問題
1.如何來判斷玩家輸入的數(shù)據(jù)類型來避免報(bào)錯(cuò)?
解決:使用isdigit函數(shù)來判斷玩家輸入的數(shù)據(jù)類型是否為數(shù)字,是則繼續(xù)運(yùn)行反之則提醒玩家輸入的內(nèi)容不合法。
2.如何限制玩家輸入字符的數(shù)量?
解決:定義一個(gè)最大常量和最小常量,超出最大常量或者最小常量則會(huì)提醒玩家輸入內(nèi)容的范圍。
四、代碼
import random # 導(dǎo)入隨機(jī)模塊times = 6 # 定義嘗試次數(shù)game = random.randint(0, 20) # 定義隨機(jī)數(shù)范圍max = 20 # 定義最大常量min = 0 # 定義最小常量print(’猜一猜我心目中的數(shù)字(0-20之間):’)print(’你有%d次機(jī)會(huì):’ % times)while times > 0: # 循環(huán)判斷如果有機(jī)會(huì)往下運(yùn)行 times = times - 1 # 次數(shù)遞減 str = input() # 輸入數(shù)值 if not str.isdigit(): # 判斷數(shù)據(jù)類型 輸入的是不是數(shù)字 print(’您輸入的數(shù)據(jù):’ + str + ’不合法,請(qǐng)重新輸入我心目中的數(shù)字(0-20)之間,還有%d次機(jī)會(huì)’ % times) else: guess = int(str) if guess == game: #玩家輸入與隨機(jī)數(shù)相同 print(’猜對(duì)了!’) else: if guess > max: #玩家輸入大于猜測(cè)隨機(jī)數(shù)范圍 print(’輸入無效!請(qǐng)輸入%d到%d之間的數(shù)字,還有%d次機(jī)會(huì).’ % (min, max, times)) continue if guess > game: #玩家輸入大于隨機(jī)數(shù) print(’您輸入的數(shù)字大了!還有%d次機(jī)會(huì)’ % times) else: print(’您輸入的數(shù)字小了!還有%d次機(jī)會(huì)’ % times) if times > 0: #還有次數(shù) print(’在嘗試一次吧’) else: print(’沒機(jī)會(huì)了’) print(’我心目中的數(shù)字是%d’ % game)print(’游戲結(jié)束!’)
五、感悟
通過本次的項(xiàng)目練習(xí),我感覺自己收獲還是很大的,不僅考驗(yàn)了自己對(duì)基礎(chǔ)知識(shí)的掌握程度,而且和同學(xué)在討論中也發(fā)現(xiàn)了更多的問題并且學(xué)會(huì)解決問題,然后在師父的驗(yàn)收過程中也發(fā)現(xiàn)了代碼可以調(diào)優(yōu)完善的地方,最后在紀(jì)老師驗(yàn)收的過程中,通過看其他同學(xué)的代碼和自己的代碼來對(duì)比可以發(fā)現(xiàn)一些自己所不了解的知識(shí)及語法,老師也提了很多的問題,并且提供了更多的思路,例如代碼里曲線 背景快出現(xiàn)的原因,以及如何設(shè)計(jì)游戲更多的樂趣,然后以后完成項(xiàng)目還可以使用PPT,因?yàn)檫@樣可以更清楚更便于自己或者同學(xué)來理解,使我受益匪淺,在自己解決問題的過程中也學(xué)會(huì)了一些更多的函數(shù)用法,例如如何判斷數(shù)據(jù)類型,通過在網(wǎng)上搜索學(xué)習(xí)了這個(gè)函數(shù),我也對(duì)類似的這種函數(shù)進(jìn)行了解:
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)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python time.strptime格式化實(shí)例詳解2. Java SiteMesh新手學(xué)習(xí)教程代碼案例3. axios和ajax的區(qū)別點(diǎn)總結(jié)4. PHP 工程師面試的四個(gè)環(huán)節(jié)5. XML解析錯(cuò)誤:未組織好 的解決辦法6. 解決ajax的delete、put方法接收不到參數(shù)的問題方法7. Spring下Filter過濾器配置全局異常處理的詳細(xì)步驟8. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法9. Android webview注入JS代碼 修改網(wǎng)頁內(nèi)容操作10. 使用idea開發(fā)javaWeb應(yīng)用程序的思路(實(shí)現(xiàn)用戶的增刪改查)
