random模块
用于生成随机数
import random print(random.random()) print(random.randint(1, 100)) print(random.randrange(1,100)) 输出结果: 0.18246795790915304 46 66
生成随机验证码
import random checkcode = '' for i in range(6): current = random.randrange(0, 6) if current != i: temp = chr(random.randint(65, 90)) else: temp = random.randint(0, 9) checkcode += str(temp) print(checkcode) 输入结果: 7DWLGY
randint和randrange的区别
##########randint########## def randint(self, a, b): """Return random integer in range [a, b], including both end points. """ return self.randrange(a, b+1)
##########randrange########## def randrange(self, start, stop=None, step=1, _int=int): """Choose a random item from range(start, stop[, step]). This fixes the problem with randint() which includes the endpoint; in Python this is usually not what you want. """ # This code is a bit messy to make it fast for the # common case while still doing adequate error checking. istart = _int(start) if istart != start: raise ValueError("non-integer arg 1 for randrange()") if stop is None: if istart > 0: return self._randbelow(istart) raise ValueError("empty range for randrange()") # stop argument supplied. istop = _int(stop) if istop != stop: raise ValueError("non-integer stop for randrange()") width = istop - istart if step == 1 and width > 0: return istart + self._randbelow(width) if step == 1: raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width)) # Non-unit step argument supplied. istep = _int(step) if istep != step: raise ValueError("non-integer step for randrange()") if istep > 0: n = (width + istep - 1) // istep elif istep < 0: n = (width + istep + 1) // istep else: raise ValueError("zero step for randrange()") if n <= 0: raise ValueError("empty range for randrange()") return istart + istep*self._randbelow(n)