摘要:在講述有關(guān)的時(shí)候,提到做游戲的事情后來(lái)這個(gè)事情一直沒(méi)有接續(xù)?,F(xiàn)在就是開(kāi)始做那個(gè)游戲的時(shí)候了。游戲過(guò)程描述程序運(yùn)行起來(lái),隨機(jī)在某個(gè)范圍內(nèi)選擇一個(gè)整數(shù)。我們現(xiàn)在做一個(gè)很小的程序,也是這樣來(lái)做。這個(gè)游戲還沒(méi)有完呢,即使用了循環(huán),后面還會(huì)繼續(xù)。
在講述有關(guān)list的時(shí)候,提到做游戲的事情,后來(lái)這個(gè)事情一直沒(méi)有接續(xù)。不是忘記了,是在想在哪個(gè)階段做最合適。經(jīng)過(guò)一段時(shí)間學(xué)習(xí),看官已經(jīng)不是純粹小白了,已經(jīng)屬于python初級(jí)者了?,F(xiàn)在就是開(kāi)始做那個(gè)游戲的時(shí)候了。
游戲內(nèi)容:猜數(shù)字游戲太簡(jiǎn)單了吧。是的,游戲難度不大,不過(guò)這個(gè)游戲中蘊(yùn)含的東西可是值得玩味的。
游戲過(guò)程描述程序運(yùn)行起來(lái),隨機(jī)在某個(gè)范圍內(nèi)選擇一個(gè)整數(shù)。
提示用戶輸入數(shù)字,也就是猜程序隨即選的那個(gè)數(shù)字。
程序?qū)⒂脩糨斎氲臄?shù)字與自己選定的對(duì)比,一樣則用戶完成游戲,否則繼續(xù)猜。
使用次數(shù)少的用戶得勝.
分析在任何形式的程序開(kāi)發(fā)之前,不管是大還是小,都要進(jìn)行分析。即根據(jù)功能需求,將不同功能點(diǎn)進(jìn)行分解。從而確定開(kāi)發(fā)過(guò)程。我們現(xiàn)在做一個(gè)很小的程序,也是這樣來(lái)做。
隨機(jī)選擇一個(gè)數(shù)要實(shí)現(xiàn)隨機(jī)選擇一個(gè)數(shù)字,可以使用python中的一個(gè)隨機(jī)函數(shù):random。下面對(duì)這個(gè)函數(shù)做簡(jiǎn)要介紹,除了針對(duì)本次應(yīng)用之外,還擴(kuò)展點(diǎn),也許別處看官能用上。
還是要首先強(qiáng)化一種學(xué)習(xí)方法,就是要學(xué)會(huì)查看幫助文檔。
>>> import random #這個(gè)是必須的,因?yàn)椴皇莾?nèi)置函數(shù) >>> dir(random) ["BPF", "LOG4", "NV_MAGICCONST", "RECIP_BPF", "Random", "SG_MAGICCONST", "SystemRandom", "TWOPI", "WichmannHill", "_BuiltinMethodType", "_MethodType", "__all__", "__builtins__", "__doc__", "__file__", "__name__", "__package__", "_acos", "_ceil", "_cos", "_e", "_exp", "_hashlib", "_hexlify", "_inst", "_log", "_pi", "_random", "_sin", "_sqrt", "_test", "_test_generator", "_urandom", "_warn", "betavariate", "choice", "division", "expovariate", "gammavariate", "gauss", "getrandbits", "getstate", "jumpahead", "lognormvariate", "normalvariate", "paretovariate", "randint", "random", "randrange", "sample", "seed", "setstate", "shuffle", "triangular", "uniform", "vonmisesvariate", "weibullvariate"] >>> help(random.randint) Help on method randint in module random: randint(self, a, b) method of random.Random instance Return random integer in range [a, b], including both end points.
耐心地看文檔,就明白怎么用了。不過(guò),還是把主要的東西列出來(lái),但仍然建議看官在看每個(gè)函數(shù)的使用之前,在交互模式下通過(guò)help來(lái)查看文檔。
隨機(jī)整數(shù):
>>> import random >>> random.randint(0,99) 21
隨機(jī)選取0到100間的偶數(shù):
>>> import random >>> random.randrange(0, 101, 2) 42
隨機(jī)浮點(diǎn)數(shù):
>>> import random >>> random.random() 0.85415370477785668 >>> random.uniform(1, 10) 5.4221167969800881
隨機(jī)字符:
>>> import random >>> random.choice("qiwsir.github.io") "g"
多個(gè)字符中選取特定數(shù)量的字符:
>>> import random random.sample("qiwsir.github.io",3) ["w", "s", "b"]
隨機(jī)選取字符串:
>>> import random >>> random.choice ( ["apple", "pear", "peach", "orange", "lemon"] ) "lemon"
洗牌:把原有的順序打亂,按照隨機(jī)順序排列
>>> import random >>> items = [1, 2, 3, 4, 5, 6] >>> random.shuffle(items) >>> items [3, 2, 5, 6, 4, 1]
有點(diǎn)多了。不過(guò),本次實(shí)驗(yàn)中,值用到了random.randint()即可。多出來(lái)是買(mǎi)一送一的(哦。忘記了,沒(méi)有人買(mǎi)呢,本課程全是白送的)。
關(guān)鍵技術(shù)點(diǎn)之一已經(jīng)突破。可以編程了。再梳理一下流程。畫(huà)個(gè)圖展示:
(備注:這里我先懶惰一下吧,看官能不能畫(huà)出這個(gè)程序的流程圖呢?特別是如果是一個(gè)初學(xué)者,流程圖一定要自己畫(huà)哦。剛才看到網(wǎng)上一個(gè)朋友說(shuō)自己學(xué)編程,但是邏輯思維差,所以沒(méi)有學(xué)好。其實(shí),畫(huà)流程圖就是幫助提高邏輯思維的一種好方式,請(qǐng)畫(huà)圖吧。)
圖畫(huà)好了,按照直觀的理解,下面的代碼是一個(gè)初學(xué)者常常寫(xiě)出來(lái)的(老鳥(niǎo)們不要噴,因?yàn)槭谴沓鯇W(xué)者的)。
#!/usr/bin/env python #coding:utf-8 import random number = random.randint(1,100) print "請(qǐng)輸入一個(gè)100以內(nèi)的自然數(shù):" input_number = raw_input() if number == int(input_number): print "猜對(duì)了,這個(gè)數(shù)是:" print number else: print "錯(cuò)了。"
上面的程序已經(jīng)能夠基本走通,但是,還有很多缺陷。
最明顯的就是只能讓人猜一次,不能多次。怎么修改,能夠多次猜呢?動(dòng)動(dòng)腦筋之后看代碼,或者看官在自己的代碼上改改,能不能實(shí)現(xiàn)多次猜測(cè)?
另外,能不能增強(qiáng)一些友好性呢,讓用戶知道自己輸入的數(shù)是大了,還是小了。
根據(jù)上述修改想法,新代碼如下:
#!/usr/bin/env python #coding:utf-8 import random number = random.randint(1,100) print "請(qǐng)輸入一個(gè)100以內(nèi)的自然數(shù):" input_number = raw_input() if number == int(input_number): print "猜對(duì)了,這個(gè)數(shù)是:" print number elif number > int(input_number): print "小了" input_number = raw_input() elif number < int(input_number): print "大了" input_number = raw_input() else: print "錯(cuò)了。"
嗯,似乎比原來(lái)進(jìn)步一點(diǎn)點(diǎn),因?yàn)樵试S用戶輸入第二次了。同時(shí)也告訴用戶輸入的是大還是小了。但,這也不行呀。應(yīng)該能夠輸入很多次,直到正確為止。
是的。這就要用到一個(gè)新的東西:循環(huán)。如果看官心急,可以google一下while或者for循環(huán),來(lái)進(jìn)一步完善這個(gè)游戲,如果不著急,可以等等,隨后我也會(huì)講到這部分。
這個(gè)游戲還沒(méi)有完呢,即使用了循環(huán),后面還會(huì)繼續(xù)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37334.html
摘要:我在這里將他寫(xiě)的程序恭錄于此,單元李航同學(xué)不要見(jiàn)怪,如果李航同學(xué)認(rèn)為此舉侵犯了自己的知識(shí)產(chǎn)權(quán),可以告知我,我馬上撤下此代碼。我用的是,在輸入指令上區(qū)別于李同學(xué)程序用變量接收了輸入的內(nèi)容。 while,翻譯成中文是當(dāng)...的時(shí)候,這個(gè)單詞在英語(yǔ)中,常常用來(lái)做為時(shí)間狀語(yǔ),while ... someone do somthing,這種類型的說(shuō)法是有的。在python中,它也有這個(gè)含義,不過(guò)...
摘要:大學(xué),光學(xué)工程研究生畢業(yè),和程序猿完全不搭邊。那怎么辦,試著學(xué)一學(xué)唄,學(xué)習(xí)才是程序猿的天性。所以我在想程序猿是不是都需要新知識(shí)刺激一下,才能保持興奮的頭腦。有句話說(shuō)的很對(duì)程序猿就像好奇的貓,追著毛球的線頭玩,最后一個(gè)毛球在腦袋里攪漿糊。 說(shuō)說(shuō)我自己的經(jīng)歷。211大學(xué),光學(xué)工程研究生畢業(yè),和程序猿完全不搭邊。 畢業(yè)后進(jìn)了成都某國(guó)字頭研究所,在行業(yè)里摸爬滾打了四年,2018年機(jī)緣巧合在家養(yǎng)...
摘要:為啥你天天刷抖音一點(diǎn)都不煩,因?yàn)槟阌X(jué)得視頻好看你有興趣啊。比如我們說(shuō)你玩是不是要開(kāi)始搭建一個(gè)自己的網(wǎng)站,是不是可以自己寫(xiě)一個(gè)小的腳本來(lái)自動(dòng)發(fā)消息給你的女朋友等等,通過(guò)這樣的小例子來(lái)慢慢的培養(yǎng)自己的學(xué)習(xí)的興趣。學(xué)習(xí),切勿貪快貪多。 大家好,我是菜鳥(niǎo)哥! 周末啦,跟大家聊一下我們粉絲團(tuán)的情況...
摘要:首先,在學(xué)習(xí)之前一定會(huì)考慮一個(gè)問(wèn)題版本選擇對(duì)于編程零基礎(chǔ)的人來(lái)說(shuō),選擇。建議從下面課程開(kāi)始教程標(biāo)準(zhǔn)庫(kù)官方文檔非常貼心地提供中文翻譯首先需要學(xué)習(xí)的基礎(chǔ)知識(shí),下載安裝導(dǎo)入庫(kù)字符串處理函數(shù)使用等等。 提前說(shuō)一下,這篇福利多多,別的不說(shuō),直接讓你玩回最有手感的懷舊游戲,參數(shù)貼圖很方便自己可以根據(jù)喜好修改哦。 本篇通過(guò)以下四塊展開(kāi),提供大量資源對(duì)應(yīng)。 showImg(https://segmen...
閱讀 1352·2023-04-25 15:21
閱讀 2684·2021-11-24 10:23
閱讀 3409·2021-10-11 10:59
閱讀 3255·2021-09-03 10:28
閱讀 1739·2019-08-26 13:45
閱讀 2329·2019-08-26 12:11
閱讀 929·2019-08-26 12:00
閱讀 1718·2019-08-26 10:44