編寫一個簡單的游戲來學(xué)習(xí) Python
通過編寫一個“猜數(shù)字”游戲來探索 Python(和其他編程語言)。
在這個系列中,我們要用不同的編程語言編寫相同的應(yīng)用,以比較各種語言是如何工作的,并說明使用標準測試程序是學(xué)習(xí)新編程好方法。
當你學(xué)習(xí)一門新的編程語言時,關(guān)注它們的共同點是件好事。變量、表達式和語句是大多數(shù)編程語言的基礎(chǔ)。一旦你理解了這些概念,你就可以開始弄清楚其余的東西。
因為編程語言有許多相似之處,一旦你知道一種語言,你通??梢酝ㄟ^觀察它與你所知道的語言的不同之處來學(xué)習(xí)另一種語言的基礎(chǔ)知識。使用你用其他語言編寫的標準測試程序,可以讓你專注于語言,而不是程序的邏輯。
為了證明這點,我們正在測試如何用多種語言編寫一個“猜數(shù)字”程序。計算機選擇一個 1 到 100 之間的數(shù)字,然后讓你猜。程序循環(huán),直到你猜出正確答案。
“猜數(shù)字”程序練習(xí)了編程語言的幾個概念:
- 變量
- 輸入
- 輸出
- 條件判斷
- 循環(huán)
這是一個很好的學(xué)習(xí)新編程語言的實踐實驗。
用 Python 猜數(shù)字
用 Python 軟件基金會的話來說。“Python 是一種解釋性的、交互式的、面向?qū)ο蟮某绦蛟O(shè)計語言,它包含了模塊、異常、動態(tài)類型、非常高層的動態(tài)數(shù)據(jù)類型和類。”它是一種很好的通用編程語言,從簡單的腳本到復(fù)雜的 GUI 應(yīng)用都很適用。
你可以通過編寫一個版本的“猜數(shù)字”游戲來探索 Python。這是我的實現(xiàn):
import random as randomlib
random = randomlib.randint(1, 100)
print("Guess a number between 1 and 100")
while True:
guess = int(input())
if guess < random:
print("Too low")
elif guess > random:
print("Too high")
else:
print("That's right!")
break
要給一個變量賦值,請列出變量的名稱,然后是 =
號。例如,語句 random = 0
給 random
變量分配了一個零值。
腳本的第一行就導(dǎo)入了 random
模塊。由于本系列中的所有程序都使用 random
作為變量的名稱,你可以使用 import random as randomlib
以別名導(dǎo)入它,以避免命名沖突。
很少有函數(shù)被內(nèi)置到 Python 中,大多數(shù)函數(shù)必須從標準庫中顯式導(dǎo)入。random
標準庫模塊有生成各種隨機值的功能。
腳本的第二行讀取函數(shù) randint()
的結(jié)果,并將其賦值給名為 random
的變量。函數(shù)需要兩個參數(shù):一個最小值和一個最大值。在本例中,范圍是 1
到 100
,以使游戲具有足夠的挑戰(zhàn)性。
你可以使用 input()
函數(shù)提示用戶輸入一個值。如果你寫 guess = int(input())
,Python 會等待用戶輸入一些文本,將其轉(zhuǎn)換為一個整數(shù),然后將值存儲在 guess
變量中。
Python 支持條件表達式和循環(huán)等流程控制。在“猜數(shù)字”游戲中,只要 guess
中的值不等于 random
,Python 就會繼續(xù)循環(huán)。
如果猜測值小于隨機數(shù),Python 會打印 Too low
,如果猜測值大于這個數(shù)字,Python 會打印 Too high
。
示例輸出
現(xiàn)在你已經(jīng)寫好了 Python 程序,運行它來玩“猜數(shù)字”游戲。每次運行程序,Python 都會隨機選取一個不同的數(shù)字。為了完成這個游戲,你需要猜測,直到找到正確的數(shù)字:
$ python guess.py
Guess a number between 1 and 100
50
Too high
25
Too high
12
Too high
7
Too high
3
Too low
5
Too low
6
That's right!
在學(xué)習(xí)一門新的編程語言時,這個“猜數(shù)字”游戲是一個很好的入門程序,因為它以一種相當直接的方式練習(xí)了幾個常見的編程概念。通過在不同的編程語言中實現(xiàn)這個簡單的游戲,你可以展示不同編程語言的一些核心概念,并比較每種語言的細節(jié)。
你有喜歡的編程語言嗎?你會如何編寫“猜數(shù)字”游戲?請關(guān)注本系列文章,看看你可能感興趣的其他編程語言的例子吧!