Python3基础-代码阅读系列—优惠码生成

时间:2023-03-09 08:40:39
Python3基础-代码阅读系列—优惠码生成

代码展示

```
import random
# 生成200组长度为8的优惠码,字典集是数字加字母

def generate_key(number=200, length=8):

char_set = "abcdefghijklmnopqrstuvwxyz0123456789"

result = ""

for i in range(0, number):

temp = ""

while(temp == ""):

for j in range(0, length):

temp = temp+char_set[random.randint(0, 35)]

# 判断新生成的优惠吗是否与之前的重复

if(result.find(temp) == -1):

result = result + "%d " % (i+1) + temp

else:

temp = ""

result = result+'\n'

return result

def file_write():

fp = open("result.txt", 'w')

fp.writelines(generate_key())

fp.close()

if name == 'main':

file_write()

<h1 style="background-color:#FF69B4; font-family:verdana; font-size:25px; text-align:center; font-weight:bold; color:white; ">知识点理解</h1>
## random库
`random.randint(0,35)`随机数中使包括0和35,或者其中的一个。
在python中的`random.randint(a, b)`用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: **a <= n <= b** print(random.randint(12, 20)) #生成的随机数n: 12 <= n <= 20
print(random.randint(20, 20)) #结果永远是20
print(random.randint(20, 10)) #该语句是错误的。因为下限必须小于上限 ## 字符串的find()方法
String.find(字串) 方法检测字符串中是否包含子字符串str,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内。 如果包含子字符串返回开始的**索引值**
如果不包含字串则返回-1 ## 循环结构
**内循环**:
生成包含8个字符的字符串,并且不重复,保存在结果result中
**外循环**:
功能是将内循环操作200次。 <h1 style="background-color:#FF69B4; font-family:verdana; font-size:25px; text-align:center; font-weight:bold; color:white; ">代码来源</h1>
[github](https://github.com/brightyu/python/blob/master/ShaoyuanLi/0001/0001.py)