亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

跟老齊學Python之做一個小游戲

系統 1886 0

在講述有關list的時候,提到做游戲的事情,后來這個事情一直沒有接續。不是忘記了,是在想在哪個階段做最合適。經過一段時間學習,看官已經不是純粹小白了,已經屬于python初級者了。現在就是開始做那個游戲的時候了。

游戲內容:猜數字游戲

太簡單了吧。是的,游戲難度不大,不過這個游戲中蘊含的東西可是值得玩味的。

游戲過程描述

程序運行起來,隨機在某個范圍內選擇一個整數。
提示用戶輸入數字,也就是猜程序隨即選的那個數字。
程序將用戶輸入的數字與自己選定的對比,一樣則用戶完成游戲,否則繼續猜。
使用次數少的用戶得勝.
分析

在任何形式的程序開發之前,不管是大還是小,都要進行分析。即根據功能需求,將不同功能點進行分解。從而確定開發過程。我們現在做一個很小的程序,也是這樣來做。

隨機選擇一個數

要實現隨機選擇一個數字,可以使用python中的一個隨機函數:random。下面對這個函數做簡要介紹,除了針對本次應用之外,還擴展點,也許別處看官能用上。

還是要首先強化一種學習方法,就是要學會查看幫助文檔。

復制代碼 代碼如下:

>>> import random? #這個是必須的,因為不是內置函數
>>> 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.

耐心地看文檔,就明白怎么用了。不過,還是把主要的東西列出來,但仍然建議看官在看每個函數的使用之前,在交互模式下通過help來查看文檔。

隨機整數:

復制代碼 代碼如下:

>>> import random
>>> random.randint(0,99)
21

隨機選取0到100間的偶數:

復制代碼 代碼如下:

>>> import random
>>> random.randrange(0, 101, 2)
42

隨機浮點數:

復制代碼 代碼如下:

>>> import random
>>> random.random()
0.85415370477785668
>>> random.uniform(1, 10)
5.4221167969800881

隨機字符:

復制代碼 代碼如下:

>>> import random
>>> random.choice('qiwsir.github.io')
'g'

多個字符中選取特定數量的字符:

復制代碼 代碼如下:

>>> import random
random.sample('qiwsir.github.io',3)
['w', 's', 'b']

隨機選取字符串:

復制代碼 代碼如下:

>>> import random
>>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
'lemon'

洗牌: 把原有的順序打亂,按照隨機順序排列

復制代碼 代碼如下:

>>> import random
>>> items = [1, 2, 3, 4, 5, 6]
>>> random.shuffle(items)
>>> items
[3, 2, 5, 6, 4, 1]

有點多了。不過,本次實驗中,值用到了random.randint()即可。多出來是買一送一的(哦。忘記了,沒有人買呢,本課程全是白送的)。

關鍵技術點之一已經突破。可以編程了。再梳理一下流程。畫個圖展示:

(備注:這里我先懶惰一下吧,看官能不能畫出這個程序的流程圖呢?特別是如果是一個初學者,流程圖一定要自己畫哦。剛才看到網上一個朋友說自己學編程,但是邏輯思維差,所以沒有學好。其實,畫流程圖就是幫助提高邏輯思維的一種好方式,請畫圖吧。)

圖畫好了,按照直觀的理解,下面的代碼是一個初學者常常寫出來的(老鳥們不要噴,因為是代表初學者的)。

復制代碼 代碼如下:

#!/usr/bin/env python
#coding:utf-8

import random

number = random.randint(1,100)

print "請輸入一個100以內的自然數:"

input_number = raw_input()

if number == int(input_number):
??? print "猜對了,這個數是:"
??? print number
else:
??? print "錯了。"

上面的程序已經能夠基本走通,但是,還有很多缺陷。

最明顯的就是只能讓人猜一次,不能多次。怎么修改,能夠多次猜呢?動動腦筋之后看代碼,或者看官在自己的代碼上改改,能不能實現多次猜測?

另外,能不能增強一些友好性呢,讓用戶知道自己輸入的數是大了,還是小了。

根據上述修改想法,新代碼如下:

復制代碼 代碼如下:

#!/usr/bin/env python
#coding:utf-8

import random

number = random.randint(1,100)

print "請輸入一個100以內的自然數:"

input_number = raw_input()

if number == int(input_number):
??? print "猜對了,這個數是:"
??? print number
elif number > int(input_number):
??? print "小了"
??? input_number = raw_input()
elif number < int(input_number):
??? print "大了"
??? input_number = raw_input()
else:
??? print "錯了。"

嗯,似乎比原來進步一點點,因為允許用戶輸入第二次了。同時也告訴用戶輸入的是大還是小了。但,這也不行呀。應該能夠輸入很多次,直到正確為止。

是的。這就要用到一個新的東西:循環。如果看官心急,可以google一下while或者for循環,來進一步完善這個游戲,如果不著急,可以等等,隨后我也會講到這部分。

這個游戲還沒有完呢,即使用了循環,后面還會繼續。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲欧美一区二区三区不卡 | 狠狠色噜噜狠狠狠狠黑人 | 国产欧美视频综合二区 | 伊人精品在线视频 | 亚洲免费高清 | 日日干夜夜欢 | 99综合在线| 日本不卡免免费观看 | 6080欧美一区二区三区四区 | 精品久久中文久久久 | 久久久国产这里有的是精品 | 香蕉观看在线视频成人 | 免费的毛片视频 | 久草成人| 亚洲欧美日韩久久精品第一区 | 最新国产午夜精品视频成人 | 米奇影视7777 | 老子影院无码午夜伦不卡 | 久草在线视频在线观看 | 四虎免费影院4hu永久免费 | 亚洲日本va中文字幕 | 日韩成人在线视频 | 国产精品二区页在线播放 | 99精品国产综合久久久久 | 亚洲欧美高清在线 | 四虎最新网址 | 美女美女高清毛片视频 | 久久久久久久久亚洲 | 日本高清中文字幕在线观穿线视频 | 国产免费观看a大片的网站 国产免费精彩视频 | 国产成人啪午夜精品网站男同 | 免费一级片在线 | 色综合视频一区二区三区 | 日韩欧美在线播放视频 | 国产区成人精品视频 | 国产精品亚洲欧美日韩区 | 国产精品亚洲专一区二区三区 | 狠狠色噜噜狠狠狠 | 亚洲夂夂婷婷色拍ww47 | 久久一本一区二区三区 | 一级欧美毛片成人免费视频 |