今天我把random模組拿出來特別講,因為我們平時在程式設計時,很常需要用到亂數的部分,而且能應用的地方也非常多,所以除了簡單介紹外,也做個新手起步的小遊戲吧!
(感覺學習任何一種程式語言,random是讓人練習的第一步...)
下面就是一些random常用的語法:
random.random(),用於產生0~1之間的隨機小數,還沒學之前,從沒想過會是小數XD
>>> import random #匯入random模組
>>> random.random()
0.6597262888580337
random.randint(a,b),用於產生指定範圍內的隨機整數。參數a為下限,b則是上限。
>>> random.randint(1,10)
3
>>> random.randint(1,10)
4
random.uniform(a,b),用於產生指定範圍內的隨機浮點數。a、b參數可互換。
>>> random.uniform(1,10)
7.09141630344087
>>> random.uniform(10,1)
4.668378256374945
random.choice(序列物件),從序列中隨機選擇一項。序列包含串列、元組、字串、清單等。
>>> random.choice([1,3,5,7,9])
3
>>> random.choice([1,3,5,7,9])
7
>>> random.choice(('apple','orange','pear','lemon','peach'))
'lemon'
>>> random.choice(('apple','orange','pear','lemon','peach'))
'pear'
random.randrange([start],stop[,step]),在指定範圍內(start到stop),按指定步數(step)遞增的集合中取一亂數。
>>> random.randrange(1,10) #step預設為1,相當於[1,2,3...,9,10]
6
>>> random.randrange(1,10,2) #只會是奇數,step為2
5
random.sample(序列,k),從序列中隨機取得指定長度k的片斷。序列包含串列、元組、字串、清單等。
>>> fruit = ('apple','orange','pear','lemon','peach')
>>> I_love = random.sample(fruit,3)
>>> I_hate = random.sample(fruit,2)
>>> I_love
['peach', 'orange', 'pear']
>>> I_hate
['pear', 'apple']
-------------------
>>> a = 'python'
>>> random.sample(a,2)
['n', 'o']
random.shuffle(x[,random]),用於將清單中的元素打亂(洗牌)。
>>> fruit = ['apple','orange','pear','lemon','peach'] #tuple不能用0..0
>>> random.shuffle(fruit)
>>> fruit
['apple', 'peach', 'lemon', 'orange', 'pear']
猜數字小遊戲,要在1到1000中猜出正確的數字,只有10次機會。
import random
def hint(guess_num,ans): #定義提示,回傳值
if guess_num > ans:
return 1
elif guess_num < ans:
return -1
else:
return 0
Answer = random.randint(1,1000) #產生亂數1~1000
count = 0 #計算次數
while count<10:
left = 10-count #幫你記還剩幾次
guess = int(input('請猜數字(1~1000),還剩%d次:'%left))
check = hint(guess,Answer) #檢查是否相符
if check == 1: #用if判斷回傳值結果
print ("太大了!")
elif check == -1:
print ("太小了!")
else:
break #猜對直接跳出迴圈
count += 1
if count==10: #玩了10次失敗
print ("遊戲結束,你失敗了。")
else:
print ("恭喜猜對了~~")