python中random的一些用法

本文主要介绍Python中随机数和随机字符的操作。涵盖随机小数、整数的生成,随机返回列表元素、打乱列表顺序,还给出验证码生成器示例,以及从多个字符中选取特定数量字符等操作的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

#(1)随机小数
import random
print(random.random())  #随机大于0 且小于1 之间的小数
'''
0.9441832228391154
'''

print(random.uniform(0,9))   #随机一个大于0小于9的小数,“0”为下限,“9”是上限
'''结果:
1.646583891572416
'''
 

#(2)随机整数
print(random.randint(1,5))  #随机一个大于等于1且小于等于5的整数
'''结果:
5
'''
 

print random.randint(12,20)      #生成的随机数a: 12 <= a =< 20

print random.randint(12,20)      #生成的随机数a: 结果永远是20

print random.randint(12,20)      #该语句是错误的

 

 

 

print(random.randrange(1,10,2))   #随机一个大于等于1且小于等于10之间的奇数,其中2表示递增基数
'''结果:
3
'''


 

#(3)随机返回
print(random.choice(['123','abc',52,[1,2]]))    #随机返回参数列表中任意一个元素
'''结果:
abc
'''

print(random.sample(['123','abc',52,[1,2]],2))  #随机返回参数列表中任意两个元素,参数二指定返回的数量
'''结果:
['123', 52]
'''


 

#(4)打乱列表顺序
lis = [1,2,5,7,9,10]
random.shuffle(lis)
print(lis)
'''结果:
[2, 1, 10, 5, 9, 7]
'''

(5)验证码生成器

import random

def random_num():
    code = ''
    for i in range(4):
        ran1 = random.randint(0,9)
        ran2 = chr(random.randint(65,90))
        add = random.choice([ran1,ran2])
        code = ''.join([code,str(add)])
    return code

rand_n = random_num()
print(rand_n)

 

随机字符:
>>> import random
>>> random.choice('abcdefg&#%^*f')
'd'

多个字符中选取特定数量的字符:
>>> import random
random.sample('abcdefghij',3) 
['a', 'd', 'b']

 

多个字符中选取特定数量的字符组成新字符串:
>>> import random
>>> import string
>>> string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).r
eplace(" ","")
'fih'

随机选取字符串:
>>> import random
>>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
'lemon'

 

洗牌:
>>> import random
>>> items = [1, 2, 3, 4, 5, 6]
>>> random.shuffle(items)
>>> items
[3, 2, 5, 6, 4, 1]

 

生成固定长度字符串

import random


def generate_random_str(Num_len):
  """
  生成一个指定长度的随机字符串
  """
  random_str = ''
  base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789'
  length = len(base_str) - 1
  for i in range(Num_len):
    random_str += base_str[random.randint(0, length)]
  return random_str

if __name__ == '__main__':
    input_num = eval(input('请输入生成字符串长度:'))
    a = generate_random_str(input_num)
    print(a)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦岭深处小农民

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值