zoukankan      html  css  js  c++  java
  • random模块

    random 需要import

    random.choice(seq),可以是列表,字符串,元组

    random.choice(string.ascii_lowercase)
    >>'u'
    
    random.choice('123')
    >> '3'
    
    random.choice([1,2,3])
    >> 2
    random.choices(string.ascii_lowercase, k=3)
    >>['r', 'c', 'y']

    random.randint(a,b) 返回a~b之间的整型数

    random.randint(1,10)
    >>5

    random.randrange(a,b,c) 返回一个a~b,步长为c的数字

    random.randrange(1,10,2)
    >>3

    random.sample(populationk) 返回一个无序的长度为k的list

    1 random.sample(string.ascii_lowercase,k=4)
    2 >>['n', 'p', 't', 'b']
    3 
    4 random.sample([1,2,3,4], 3)
    5 >>[2, 1, 4]
    6 
    7 random.sample(string.ascii_lowercase,4)
    8 >>['j', 'f', 'r', 'd']

    random.shuffle(list),将list乱序

    a = [1,3,4,5,6]
    random.shuffle(a)
    a
    >>[1, 6, 3, 4, 5]

    例子:在文件中生成密码

     1 import string
     2 import random
     3 
     4 
     5 def create_pwd():
     6     password = ""
     7     temp_list = []
     8     t = random.randint(1, 3)
     9     temp1 = random.choices(string.ascii_lowercase, k=t)
    10     temp2 = random.choices(string.ascii_uppercase, k=t)
    11     temp3 = random.choices(string.digits, k=t)
    12     temp4 = random.choices(string.punctuation, k=2)
    13 #temp1 = random.sample(string.ascii_lowercase, k=t)代替
    14     temp_list.extend(temp1)
    15     temp_list.extend(temp2)
    16     temp_list.extend(temp3)
    17     temp_list.extend(temp4)
    18     random.shuffle(temp_list)  # list乱序
    19     for i in temp_list:
    20         password += i
    21     if len(password) < 6:
    22         password = create_pwd()
    23     return password
    24 
    25 
    26 def count_pwd(num):
    27     lines = []
    28     while num > 0:
    29         # with open('1.tx', 'a+', encoding='utf-8') as f:
    30         line = create_pwd()
    31         lines.append(line)
    32         num -= 1
    33     lines = list(set(lines)) #通过集合保存密码,并转化成list,便于去重一样的密码
    34     if len(lines) < num:
    35         temp_length = num - len(lines)
    36         t = count_pwd(temp_length, lines)
    37         lines.extend(t)
    38     else:
    39         return lines
    40 
    41 
    42 if __name__ == "__main__":
    43     num = int(input("请输入要产生的密码条数:").strip())
    44     t = count_pwd(num)
    45     with open('pwd.txt', 'a+', encoding='utf-8') as f:
    46         for line in range(len(t)):
    47             f.write(t[line] + '
    ')
    48     with open('pwd.txt', 'r', encoding='utf-8') as f:
    49         print(f.read())
  • 相关阅读:
    PAT 1010. 一元多项式求导 (25)
    PAT 1009. 说反话 (20) JAVA
    PAT 1009. 说反话 (20)
    PAT 1007. 素数对猜想 (20)
    POJ 2752 Seek the Name, Seek the Fame KMP
    POJ 2406 Power Strings KMP
    ZOJ3811 Untrusted Patrol
    Codeforces Round #265 (Div. 2) 题解
    Topcoder SRM632 DIV2 解题报告
    Topcoder SRM631 DIV2 解题报告
  • 原文地址:https://www.cnblogs.com/xinjing-jingxin/p/8749225.html
Copyright © 2011-2022 走看看