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