Python學習_random模塊使用


生成隨機數模塊:random 

作用:生成隨機浮點數、整數字符串,甚至幫助你隨機選擇列表序列中的一個元素,打亂一組數據等。

 

random.random()函數是這個模塊中最常用的方法了,它會生成一個隨機的浮點數,范圍是在0.0~1.0之間。

random.uniform()正好彌補了上面函數的不足,它可以設定浮點數的范圍,一個是上限,一個是下限。

random.randint()隨機生一個整數int類型,可以指定這個整數的范圍,同樣有上限和下限值,python random.randint。

random.choice()可以從任何序列,比如list列表中,選取一個隨機的元素返回,可以用於字符串、列表、元組等。

random.shuffle()如果你想將一個序列中的元素,隨機打亂的話可以用這個函數方法。

random.sample()可以從指定的序列中,隨機的截取指定長度的片斷,不作原地修改。

'''隨機函數,random生成的只能是數,不是可迭代對象沒有方法.__iter__()'''
import random#隨機生成數字
a = random.random() #隨機生成0到1中間的小數
a = random.randint(1,3) #隨機生成[1,3]1到3三個數的任意一個,兩個參數必須寫,單獨寫一個報錯TypeError: randint() missing 1 required positional argument: 'b'
a = random.randrange(3) #隨機生成(0,2]三個數的任意一個
a = random.choice([1,3,3,[33,44,]]) #隨機顯示序列中的元素
a = random.uniform(1,3) #隨機產生實數(整數、小數、無限循環小數)
list_t = [1,3,4,'sigle',5]
a = random.sample(list_t,2)#從指定序列中獲取指定長度的個數,即從list_t中隨機拿出2個元素
a = random.suffle(list_t)#將指定序列中的元素隨機打亂 print(a) '''練習:4位包含字母數字驗證碼的生產 思路: 1、需要4位驗證碼且是隨機的即項目要求通過運算最后返回一個4位的字符串 2、4位驗證碼的每一位都需要是隨機的,且應在包含有所有數字及字符的序列中選擇 3、故需先要生成帶有所有數字及字母的序列,然后從中選4次,拼接成一個4位字符串 4、隨機選擇參數需要用到模塊random模塊 ''' import random def verify_fun(): # while True: verify = ''#創建一個空的字符串,當拼接成4位的字符串返回,即實現需求 for i in range(1,5): #循環4次,此處如用random.randint會報錯不是可迭代的對象 ver_num = random.randint(0,9)#隨機生成0,9中任意數字 # ver_num = chr(random.randint(48,57))##ASCII碼表中48~57分別表示0~9 ver_upper = chr(random.randint(65,90))#ASCII碼表中65~90分別表示a~z,通過chr(a)可將數字轉換成對應字母 ver_lower = chr(random.randint(97,122))#ASCII碼表中97~122分別表示A~Z choic_table = [ver_num,ver_lower,ver_upper]#生成一個帶有數字和字母的列表 single_str = str(random.choice(choic_table)) verify += single_str #連續遞加拼接,生成目標字符串 return verify#verify是全局變量,如果在前面將verify放到for里面就是局部變量,如果在for外調用,只會得到一個數,因為每次循環,開始都會將verify上次的值重新賦值為空。
          #如果return放到for里面就會執行一次就結束,因為函數中一遇到return函數就會結束,不再運行
print(verify_fun())

注:

1、字符串拼接只能是字符串與字符串,single_str拼接時它必須是字符串類型才行:  TypeError: must be str, not int

2、局部變量的含義,當變量verify在for里時,在for外調用verfiy變量會報如下錯誤:Local variable 'verify' might be referenced before assignment less... (Ctrl+F1) 
This inspection warns about local variables referenced before assignment.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM