用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.
1
2
3
4
5
6
7
8
9
10
隨機整數:
>>> import random
>>> random.randint(0,99)
21
1
2
3
4
隨機選取0到100間的偶數:
>>> import random
>>> random.randrange(0, 101, 2)
42
1
2
3
4
隨機浮點數:
>>> import random
>>> random.random()
0.85415370477785668
>>> random.uniform(1, 10)
5.4221167969800881
1
2
3
4
5
6
隨機字元:
>>> import random
>>> random.choice("hiekay.github.io")
"g"
1
2
3
4
多個字元中選取特定數量的字元:
>>> import random
random.sample("hiekay.github.io",3)
["w", "s", "b"]
1
2
3
4
隨機選取字元串:
>>> import random
>>> random.choice ( ["apple", "pear", "peach", "orange", "lemon"] )
"lemon"
1
2
3
4
**洗牌:**把原有的順序打亂,按照隨機順序排列
>>> import random
>>> items = [1, 2, 3, 4, 5, 6]
>>> random.shuffle(items)
>>> items
[3, 2, 5, 6, 4, 1]
1
2
3
4
5
6
代碼
#!/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 "錯了。"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
上面的程序已經能夠基本走通,但是,還有很多缺陷。
最明顯的就是只能讓人猜一次,不能多次。怎麼修改,能夠多次猜呢?動動腦筋之後看代碼,或者看官在自己的代碼上改改,能不能實現多次猜測?
另外,能不能增強一些友好性呢,讓用戶知道自己輸入的數是大了,還是小了。
根據上述修改想法,新代碼如下:
#!/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 "錯了。"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
升級:
#! /user/bin/env python
#coding:utf-8
import random
number = random.randint(1,100)
i = 1
while i==1:
print "請輸入一個你猜的數字"
unumber = raw_input();
if int(unumber) > number:
print "大了"
elif int(unumber) < number:
print "小了"
elif int(unumber) == number:
print "對了"
i=2
else:
print "請輸入數字"
※求助:threejs+qml+json模型載入失敗
※su /sudo 命令、限制root遠程登陸
TAG:程序員小新人學習 |