python学习记录——1.按位随机和直接取随机数的区别
一、随生成8位数的方法有两种:
方法1:0~9中随机取一位数,取8次;
import random
suffix = ''
for index in range(8):
suffix = suffix + str(random.randint(0,9))
print(sufffix)
方法2:在8位数中随机取一位;
import random
suffix = random.randint(0,99999999)
print(suffix)
二、两种方法的异同
1.第二种方法取到非8位数前面不会补零;
import random
suffix = ''
for m in range(7100):
i = random.randint(0,99999999)
m = m + 1
suffix = i
print(suffix)
结果:7位数前没有0
2.理论上两种方法对任意一种排列生成的概率是相同的;
3.两种方式生成的数据类型是不一样的;
方法一生成的数据类型是int,方法二生成的数据类型是str。
4.计算两种方法运行的时间;
time的介绍:https://finthon.com/python-time/
import random
import time
s1 = time.time()
s1_t = ''
for m in range(1000):
for index in range(8):
s1_t = s1_t + str(random.randint(0,9))
print(s1_t[-8,-1])
m = m + 1
s2 = time.time()
print(s2 - s1)
s_t = time.time()
s = ''
for m in range(1000):
i = random.randint(0,99999999)
m = m + 1
s = i
s_e = time.time()
print(s2 - s1)
print(s_e - s_t)
结果:生成1000个数字的情况下可以看出方法2耗时更少。