python基礎之range()函數和random模塊


之前在寫腳本時,經常會用到range()函數和random模塊,有必要好好總結一下它們的使用方法

1、range()函數

值得說明的是:python3和python2中的range()函數有些區別(詳情可以看看菜鳥教程中的講解)
 
Python3 range() 函數返回的是一個可迭代對象(類型是對象),而不是列表類型
>>> temp = range(1, 5)
>>> print(temp)
range(1, 5)
>>> print(type(temp))
<class 'range'>
可以通過list()來將其轉換為列表
>>> list(temp)
[1, 2, 3, 4]
 
語法:
range(stop)
range(start, stop[, step])

參數說明:

  • start: 計數從 start 開始。默認是從 0 開始。例如range(5)等價於range(0, 5);
  • stop: 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
  • step:步長,默認為1。例如:range(0, 5) 等價於 range(0, 5, 1)
Python2中   range() 函數返回的是列表
>>> temp = range(1, 5)
>>> print(temp)
[1, 2, 3, 4]
>>> print(type(temp))
<type 'list'>

以下在python3中實驗

range()函數一般結合for循環使用,例如遍歷一個列表時,如果要通過列表的下標來打印每個元素,則可以通過range()函數實現

>>> nums = ["a","b","c","d","e"]
>>> for i in range(len(nums)):
    print(nums[i])
a
b
c
d
e

random模塊

 當需要生成隨機數或者從一個列表中隨機取一條或多條數據時,會使用到random模塊

1、生成的隨機數

 使用random.randint(a, b)來生成一個范圍內的隨機數
>>> random.randint(32768, 66538)
39701

2、從一組數據中隨機獲取一個元素

使用random.choice(sequence)可以從列表,元組或字符串中隨機獲取一個元素
>>> random.choice([1,2,3,4,5])
1
>>> random.choice([1,2,3,4,5])
5

3、從一組數據中隨機獲取n個元素

使用random.sample(sequence, n)可以從列表,元組或字符串中隨機獲取n個元素,且不重復

>>> l = [1,2,3,4,5]
>>> random.sample(l,3)
[4, 1, 5]
>>> random.sample(l,3)
[4, 2, 3]
>>> random.sample(l,4)
[4, 1, 5, 3]

>>> l
[1, 2, 3, 4, 5]  # 原序列l沒有變化

一個實際場景

結合range函數和random模塊的一個實際場景
有一個接口,它的功能是批量刪除數據,對應到頁面上:選擇多條數據后,點擊批量刪除按鈕,然后會把選擇的數據都刪掉。
我要做的是:
1、查詢列表中的數據,獲取其數據總量
2、從查詢到的數據中隨機取出n條數據
3、把這n條數據傳給接口,然后批量刪掉
 
現在需要把每次要批量刪到的數量確定下來,通過如下方式即可
count = random.choice(range(1, total+1))

total 表示查詢到的數據總數,

range(1, total+1) 表示1~total范圍的一個可迭代列表,
 
random.choice(range(1, total+1)),最小為1,最大為total,從這個范圍隨機獲取一個數,它就是准備刪掉的數據量,
 
后面只需從查詢結果中取出這么多條數據即可

 


免責聲明!

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



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