Python實現(xiàn)簡單猜數(shù)字游戲
本文實例為大家分享了Python實現(xiàn)簡單猜數(shù)字游戲的具體代碼,供大家參考,具體內容如下
一、需求分析
編寫一個猜數(shù)字游戲,游戲規(guī)則:計算機給出一個1-20的之間的隨機數(shù)字,讓玩家來猜猜它是幾,計算機會告訴你每次猜出的數(shù)字或大或小,如在6次內猜到正確數(shù)字,即贏了。
二、編寫思路
1.首先導入random隨機模塊 ,然后定義隨機數(shù)的范圍,然后定義次數(shù)。
2.使用while循環(huán)來判斷是否符合隨機數(shù)和輸入數(shù)值的比較,并且設置次數(shù)遞減
3.使用 isdigit 函數(shù)來完成判斷玩家數(shù)據(jù)類型,避免報錯。
4.使用if else 流程控制語句即玩家輸入數(shù)字比隨機數(shù)大則提醒玩家數(shù)字大,反之則小并且提醒玩家剩余幾次機會。
5.最后編寫輸入機會用完猜對則游戲結束,猜錯則提醒機會用完,并且公布電腦給出的隨機數(shù)答案。
三、問題
1.如何來判斷玩家輸入的數(shù)據(jù)類型來避免報錯?
解決:使用isdigit函數(shù)來判斷玩家輸入的數(shù)據(jù)類型是否為數(shù)字,是則繼續(xù)運行反之則提醒玩家輸入的內容不合法。
2.如何限制玩家輸入字符的數(shù)量?
解決:定義一個最大常量和最小常量,超出最大常量或者最小常量則會提醒玩家輸入內容的范圍。
四、代碼
import random # 導入隨機模塊 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('游戲結束!')
五、感悟
通過本次的項目練習,我感覺自己收獲還是很大的,不僅考驗了自己對基礎知識的掌握程度,而且和同學在討論中也發(fā)現(xiàn)了更多的問題并且學會解決問題,然后在師父的驗收過程中也發(fā)現(xiàn)了代碼可以調優(yōu)完善的地方,最后在紀老師驗收的過程中,通過看其他同學的代碼和自己的代碼來對比可以發(fā)現(xiàn)一些自己所不了解的知識及語法,老師也提了很多的問題,并且提供了更多的思路,例如代碼里曲線 背景快出現(xiàn)的原因,以及如何設計游戲更多的樂趣,然后以后完成項目還可以使用PPT,因為這樣可以更清楚更便于自己或者同學來理解,使我受益匪淺,在自己解決問題的過程中也學會了一些更多的函數(shù)用法,例如如何判斷數(shù)據(jù)類型,通過在網(wǎng)上搜索學習了這個函數(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。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Django中在xadmin中集成DjangoUeditor過程詳解
這篇文章主要介紹了Django中在xadmin中集成DjangoUeditor過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07利用Python小工具實現(xiàn)3秒鐘將視頻轉換為音頻
這篇文章主要介紹了利用Python小工具實現(xiàn) 3秒鐘將視頻轉換為音頻效果,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10pandas索引與賦值操作、排序以及Series排序和DataFrame排序方式
這篇文章主要介紹了pandas索引與賦值操作、排序以及Series排序和DataFrame排序方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09