首页 > 编程语言 >random模块&string模块谈python中随机数

random模块&string模块谈python中随机数

时间:2023-04-17 17:26:20浏览次数:44  
标签:随机数 string python random step 模块 print randrange

一、概述

随机数在程序设计中的属于比较基础的内容,主要用于验证场景(如验证码,生成账号对应的密码等),今天结合random模块和string模块来谈谈python中随机数那些事儿。
二、随机数实现相关模块
2.1 random模块


random.random()
返回一个随机浮点数。

>>> import random
>>> print(random.random())
0.1955361585993899
>>> print(random.random())
0.5912462104266011
View Code

andom.randint(a,b)
随机返回a到b之间的一个整型数,注意包括b。

>>> print(random.randint(1, 3))
1
>>> print(random.randint(1, 3))
3
>>> print(random.randint(1, 3))
2
>>> print(random.randint(1, 3))
3
View Code

random.randrange(start, stop, step=1)
返回一个随机整型数,但不包括stop这个值,start和step为可选项,默认值分别为0和1。

>>> print(random.randrange(6, step = 2))
2
>>> print(random.randrange(6, step = 2))
3
>>> print(random.randrange(6, step = 2))
3
>>> print(random.randrange(3, 6, step = 2))
3
>>> print(random.randrange(3, 6, step = 2))
3
>>> print(random.randrange(3, 6, step = 2))   # 如果start和stop之间的区间太小,然后有设定了start和step,实际取值范围很有限
5
View Code

randome.sample(population, k)
从Population中随机抽取k个值来,以列表形式输出。注意这里的Population必须为一个序列或列表。

>>> print(random.sample([1,2,3,4,5],3))
[2, 1, 5]
>>> print(''.join(random.sample('Hello world', 6)))   # 通过join拼接输出即可得到一般的随机数格式
  6 0da09
ellwor
View Code

2.2 string模块

string.ascii_letters
返回包括所有字母在内的大小写字符串。

>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
View Code

string.ascii_lowercase
返回包含所有小写字母在内的字符串。

>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
View Code

string.ascii_uppercase
返回包含所有大写字母在内的字符串。

>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
View Code

string.digits
返回0-9数字字符串。

>>> string.digits
'0123456789'
View Code

string.punctuation
以字符串形式返回所有特殊字符。

>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
View Code

三、实战生成随机数

结合random和string实现

>>> import string, random
>>> string2 = random.sample(string.ascii_letters + string.punctuation, 12)
>>> print(''.join(string2))
kEr>];)<Lu:Z

增强版
上述程序虽然基本实现了生成随机数的需求,但是随机数的随机性感觉还是比较low,下面使用编辑器来一个增强版的:

import random, string
checkcode = ''
string1 = '%*^@#!'
for i in range(4):
    current = random.randrange(0, 4)
    if current != i:
        temp = ''.join(random.sample(string.ascii_letters + string1, 3))
    else:
        temp = random.randrange(0, 9)
    checkcode += str(temp)

print(checkcode)

输出:
sSynyHf!gvPt

增强版程序的不足之处在于随机数的长度不固定,

固定长度版
该版本解决上述增强版中随机数长度不固定的问题,看起来更简单。

import random, string
checkcode = ''
string1 = '%*^@#!'
for i in range(8):
    if i % 2 == 0:
        temp = ''.join(random.sample(string.ascii_letters + string1, 2))
    else:
        temp = str(random.randint(0, 9))
    checkcode += temp

print(checkcode)

输出:
TC1Tq6wz2gk0

 

标签:随机数,string,python,random,step,模块,print,randrange
From: https://www.cnblogs.com/zhaoruixiao/p/17326479.html

相关文章

  • PYTHON学习路径计划图整理
    PYTHON学习路径计划图Python工作环境及基础语法知识了解对于Python基础语法学习部分,学习周期大概为4周,需要的相关资源在网络上都能找到免费的资源,而且质量都不错。相关中文资源如下:1.python工作集成环境包Python(x,y): 下载地址Pycharm: 下载地址2.python数据分析相关库(Pa......
  • 功能不够用?使用C++编写通达信插件及接入Python(二)
    参考:https://zhuanlan.zhihu.com/p/613157262一、准备工作(参考上一篇)安装VS2019 安装pycharm下载 http://help.tdx.com.cn/book.asp《通达信DLL函数编程规范.rar》二、下载python3.x的32位版本,http://www.python.org,随便找个32位版就行了。我准备下载Windowsembeddabl......
  • Python数据分析方向第三方库推荐!
    在Python的应用范围中,数据分析是一个非常不错的就业方向,发展前景好、需求市场大,也成为很多人的首选方向,因此Python也提供了许多数据分析的第三方库。那么Python数据分析第三方库有哪些?这篇文章为大家详细介绍一下。1、PandasPandas是Python强大、灵活的数据分析和探索......
  • RequireJS 和 SeaJS 模块加载器
    RequireJS和SeaJS都是很不错的模块加载器,两者区别如下:1.两者定位有差异。RequireJS想成为浏览器端的模块加载器,同时也想成为Rhino/Node等环境的模块加载器。SeaJS则专注于Web浏览器端,同时通过Node扩展的方式可以很方便跑在Node服务器端2.两者遵循的标准有差异。Re......
  • npm自定义模块及发布模块NodeJS
    在模块目录下执行:npminit(可以加--yes一键生成)新建文件index.jsvaryunan='helloyunan';module.exports=yunan;然后将文件夹放到node_modules可以用下面方法使用试试constyunan=require('huyunan');console.log('yunan',yunan);//yunanhelloyunan发布之前......
  • 实训课程模块和系统设置模块
    实训课程模块和系统设置模块(2023-04-10)考虑到实验中心会有老师组织实训活动比如:ACM集训、蓝桥杯集训、数学建模集训等非教务系统导出的课程,需要实现实训课程模块,主要包括实训课程列表展示模块(类似于实验课和上机课展示模块)、实训课程添加模块、实训课程修改模块、实训课程删除模......
  • 【python-docx】添加表格、合并单元格、设置样式
    1.表格1.1添加表格添加表格很简单,只需要调用一下add_table()即可,返回一个Table对象,参数可以指定行、列、样式fromdocximportDocumentdoc=Document()#添加一个5行3列的表格,样式是网格实线table=doc.add_table(5,3,style="TableGrid")doc.save('./test.docx')1.2添......
  • 盘点Python内置函数sorted()高级用法实战
    今日鸡汤清川带长薄,车马去闲闲。大家好,我是Python进阶者。一、前言前几天在Python钻石交流群有个叫【emerson】的粉丝问了一个Python排序的问题,这里拿出来给大家分享下,一起学习下。其实这里【瑜亮老师】、【布达佩斯的永恒】等人讲了很多,只不过对于基础不太好的小伙伴们来说,还是有......
  • python中列表常见的操作方法
    一、添加元素的方法1.append()方法#l.append()用于在列表末尾添加新的对象,返回值:该方法无返回值,但是会修改原来的列表l=[1,2,3,4,5]l1=[6,7,8]l2={"age":"12"}l3='年后,nihao'l4=('height','name')#增加列表l.append(l1)print(l)#......
  • python s12 day13 JavaScript、Dom和jQuery
    1.JavaScriptJavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。1、JavaScript代码存在形式<!--方式一--><scripttype"text/javascript"src="JS文件"></script>......