day5-随机数相关:random模块&string模块
一、概述
随机数在程序设计中的属于比较基础的内容,主要用于验证场景(如验证码,生成账号对应的密码等),今天结合random模块和string模块来谈谈python中随机数那些事儿。
二、随机数实现相关模块
2.1 random模块
- random.random()
返回一个随机浮点数1 >>> import random
2 >>> print(random.random())
3 0.7998107271564998
4 >>> print(random.random())
5 0.7837981404514991 - random.randint(a,b)
随机返回a到b之间的一个整型数,注意包括b1 >>> print(random.randint(1,3))
2 1
3 >>> print(random.randint(1,3))
4 2
5 >>> print(random.randint(1,3))
6 1
7 >>> print(random.randint(1,3))
8 3 - random.randrange(start, stop, step=1)
返回一个随机整型数,但不包括stop这个值,start和step为可选项,默认值分别为0和11 >>> print(random.randrange(5,step=2))
2 1
3 >>> print(random.randrange(5,step=2))
4 0
5 >>> print(random.randrange(5,step=2))
6 1
7 >>> print(random.randrange(5,step=2))
8 3
9 >>> print(random.randrange(1,5,step=2))
10 1
11 >>> print(random.randrange(1,5,step=2))
12 1
13 >>> print(random.randrange(1,5,step=2))
14 1
15 >>> print(random.randrange(1,5,step=2)) #如果start和stop之间的区间太小,然后有设定了start和step,实际取值范围很有限
16 3 - randome.sample(population, k)
从Population中随机抽取k个值来,以列表形式输出。注意这里的Population必须为一个序列或列表。1 >>> print(random.sample([1,2,3,4,5],3))
2 [3, 2, 5]
3 >>> print(random.sample('asldf9090asm',5))
4 ['a', 'l', 'd', '9', '0']
5 >>> print(''.join(random.sample('asldf9090asm',5))) #通过join拼接输出即可得到一般的随机数格式
6 0da09
2.2 string模块
- string.ascii_letters
返回包括所有字母在内的大小写字符串1 >>> import string
2 >>> string.ascii_letters
3 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' - string.ascii_lowercase
返回包含所有小写字母在内的字符串1 >>> import string
2 >>> string.ascii_lowercase
3 'abcdefghijklmnopqrstuvwxyz' - string.ascii_uppercase
返回包含所有大写字母在内的字符串1 >>> import string
2 >>> string.ascii_uppercase
3 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
4 >>> - string.digits
返回0-9数字字符串1 >>> import string
2 >>> string.digits
3 '0123456789' - string.punctuation
以字符串形式返回所有特殊字符1 >>> import string
2 >>> string.punctuation
3 '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
三、实战生成随机数
- 结合random和string实现
1 >>> import string,random
2 >>> string2=random.sample(string.ascii_letters+string.punctuation,12)
3 >>> print(''.join(string2))
4 _oCSe,)dcBm|
5 >>> - 增强版
上述程序虽然基本实现了生成随机数的需求,但是随机数的随机性感觉还是比较low,下面来一个增强版的1 import random,string
2 checkcode=''
3 string1='!@#$%&' #特殊字符
4 for i in range(4):
5 current = random.randrange(0,4)
6 if current != i:
7 #temp = chr(random.randint(65,99))
8 temp = ''.join(random.sample(string.ascii_letters+string1, 3))
9 else:
10 temp = random.randrange(0,9)
11 checkcode += str(temp)
12
13 print(checkcode)
14
15 运行结果:
16 Lbksxh#ZB%ar增强版程序的不足之处在于随机数的长度不固定,有待完善…
- 固定长度版
该版本解决上述增强版中随机数长度不固定的问题,看起来更简单1 # !/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 __author__ = 'Maxwell'
4
5 import random,string
6 checkcode=''
7 source_string = '@#$%&_'
8
9 for i in range(8):
10 if i % 2 == 0:
11 temp = ''.join(random.sample(string.ascii_letters + source_string, 2))
12 else:
13 temp = str(random.randint(0, 9))
14 checkcode += temp
15 print(checkcode)
16
17 输出结果:
18 $G9gp8qg2_C7 #可基本满足随机码的要求了
day5-随机数相关:random模块&string模块的更多相关文章
- random模块/string模块
一.random模块 random模块可以很容易生成随机数和随机字符串. random.randint(1, 100) # 1-100之间取一个随机数 random.randrange(1, 100) ...
- Python random模块&string模块 day3
一.random模块的使用: Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. 1.常用函数: (1)random.random() 用于生成一个0到1 ...
- random和string模块
random模块import randomprint(random.random()) #随机打印一个浮点数print(random.randint(1,5)) #随机打印一个整数,包括5print( ...
- s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译
时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...
- 模块 string 常用序列字符
自从知道string模块后再也不用abcd了 >>> string.digits #数字 '0123456789' >>> string.ascii_letters ...
- Python 3之str类型、string模块学习笔记
Windows 10家庭中文版,Python 3.6.4, Python 3.7官文: Text Sequence Type — str string — Common string operatio ...
- string模块
string模块 string模块包括了一些字符串常量, 并且有str对象的功能,主要用来生成一些字符串.字符串格式化等 参考: http://python.usyiyi.cn/python_278/ ...
- python标准库介绍——4 string模块详解
==string 模块== ``string`` 模块提供了一些用于处理字符串类型的函数, 如 [Example 1-51 #eg-1-51] 所示. ====Example 1-51. 使用 str ...
- Python之string模块(详细讲述string常见的所有方法)
相信不少学习python的程序员都接触过string模块 string模块主要包含关于字符串的处理函数 多说无益,初学python的小伙伴还不赶紧码起来 接下来将会讲到字符串的大小写.判断函数. 以及 ...
随机推荐
- 洛谷 P2216 [HAOI2007]理想正方形
洛谷 巨说这是一道单调队列好题,但是我并不是用单调队列做的诶. 如果往最暴力的方向去想,肯定是\(n^3\)的\(dp\)了. \(f[i][j][k]\)代表当前正方形的左上角定点是\((i,j)\ ...
- Redis配置文件的使用
Redis基本配置 常规配置 进到配置文件下 vi /etc/redis.conf 写入配置项 port 1111 # 配置端口号 daemonize yes # 是否后台运行 daemonize y ...
- composer 常用包管理工具
名称 用途说明 说明地址 mashape/unirest-php 简单易用的HTTP请求库 官网地址 guzzlehttp/guzzle 功能强大的HTTP请求库 文档 hassankhan/conf ...
- [DevOps] 认识一下
大家都在说DevOps(Develop Operation),大概知道就是开发和运维沟通交流,一条线,然后使产品能够顺利的.短时间内上线.维稳什么的. 今天特意看了下 DockOne里面的一篇文章,再 ...
- 用Tchromium替代webbrowser提交网页表单有关问题
用Tchromium替代webbrowser提交网页表单有关问题 提交表单时,使用js脚本,然后用 chrm.browser.Frame['ff'].ExecuteJavaScript 提交就可以 ...
- NGUI如何使用汉字
1:准备好字体文件,就是ttf后缀名的那些.. 2:在第一个红线部分,将下拉框选择为Unity,在后面的字体里面选择第一步准备好的字体. 3:创建UILabel,widget里面的Color才是字体的 ...
- 掌握这个Python小技巧,轻松构建cytoscape导入文件
今天小编和大家分享如何借助Python脚本轻松构建cytoscape导入文件.Cytoscape是一个非常适合展示各种相互作用关系的可视化软件. 具体来说就是可以用于蛋白互作网络的展示,miRNA与蛋 ...
- 文件操作工具类: 文件/目录的创建、删除、移动、复制、zip压缩与解压.
FileOperationUtils.java package com.xnl.utils; import java.io.BufferedInputStream; import java.io.Bu ...
- 使用AutoIT检测已安装软件,并将结果保存在桌面
$file = "\adobe安装列表.txt" $regedit1 = "hklm64\SOFTWARE\Wow6432Node\Microsoft\Windows\C ...
- 记一次网卡报错ERROR,some other host already uses address
提示IP地址冲突,但是此IP确实没有被其他Server占用 解决如下: 编辑此文件 搜索arping 将下面几行注释掉 保存退出 激活网卡 此时IP地址已生效 下面是我的系统版本 (一般应该不会出现这 ...