随机产生数据
random.random()#用于生成一个 0 到 1 的随机浮点数。
random.randint(a,b)#用于生成一个最小值是 a,最大值是 b 区间的整数
random.randrange(a,b,c)#用于生成一个最小值是 a,最大值是 b 区间,并且指定递增为 c 的整数,比如要取一个 100 内的双数,则可以写成 random.randrange(0,100,2),即在范围[2,4,6…100]的列表中随机产生一个整数
random.choice(a)#从集合 a 中获取一个随机元素,a 可以是字符串、元组、列表
注册需要用到手机号码,可以通过
random.randint(a,b)
来随机生成一个手机号,手机号的特征
有
2
个,即
13
开头并且是
11
位数字
import random
mobile = random.randint(13000000000,13999999999)
print (mobile)
除了随机手机号码,还可以随机指定的字段,比如性别的男女、学历
# -*- coding: utf8
import random
e = ("小学","初中","高中","大学")#定义一个元祖
education = random.choice(e)#从元组 s 之中随机选择任意一个元素
print (education)
日期的获取和计算
datetime
模块下有好几个子模块,主要的是以下
2
个。
datetime.date
:表示日期的模块。
datetime.datetime
:表示日期、时间的模块
date 模块
from datetime import *# datetime 模块下导入所有子模块
now = date.today()#通过 date 模块的 today()函数获取当前日期,并赋值给变量now
print (now)
执行结果
获取日期后还可以通过获取日期的属性得到对应的值
1 from datetime import *
2 now = date.today()
3 now_year = now.year#将当前日期的年份值赋值给变量 now_year
4 now_month = now.month#将当前日期的月份值赋值给变量 now_month
5 now_date = now.day#将当前日期的日期值赋值给变量 now_date
6 now_weekday = now.isoweekday()#将当前日期的星期值赋值给变量 now_weekday
7 print (now)
8 print (now_year)
9 print (now_month)
10print (now_date)
11print (now_weekday)
执行结果
date
模块能对日期做加减,以达到填入特定日期的目的,这时 候需要引入 timedelta()
函数,其作用在于将间隔时间做加减,这个函数可以指定间隔时间的单位,可以 是天,也可以是小时、分钟、秒等,只需要在参数中加上指定的单位以及对应的值即可对时间做计算。
实例代码
1 from datetime import *
2 now = date.today()
3 tomorrow = now+timedelta(days=1)# 将当前日期加上 1 天,并赋值给变量 tomorrow
4 yesterday = now-timedelta(days=1)#将当前日期减去 1 天,并赋值给变量 yesterday
5 next_week = now+timedelta(days=7)# 将当前日期加上 7 天,并赋值给变量 next_week
6 print (now)
7 print (tomorrow)
8 print (yesterday)
9 print (next_week)
datetime 模块
date
模块只能对日期进行获取和操作,那么如果要对时间进行获取和操作呢?这时候就要用
到
datetime
模块(虽然和主模块重名,但由于属于子模块,根据导入的模块层级不同是不会冲突
的),这个模块是
date
模块的引申,模块下也可以通过
today()
函数获取时间,区别在于
datetime
获取的是完整的时间,而
date
获取的仅仅是日期。
1 from datetime import *
2 now = datetime.today()#通过 datetime 模块的 today()函数获取当前时间,并赋值给变量 now
3 print (now)
虽然
today()
支持时间获取,但其命名也容易引发歧义,所以建议使用
dateime
下面的
now()
函数, 其功能和 today()
一样,区别只是在于可以支持不同时区的时间获取,默认可以不填,就是当前时区。
实例代码:
1 from datetime import *
2 now = datetime.now()
3 print (now)
同样获取时间后也可以根据其属性获取相应的指定数据, 比如只需要获取当前日期或者获取不带日期的时间。
1 from datetime import *
2 now = datetime.now()
3 now_date = now.date()#将当前时间的日期值赋值给变量 now_date
4 now_time = now.time()#将当前时间的时间值赋值给变量 now_time
5 print (now)
6 print (now_date)
7 print (now_time)
时间也可以通过
timedelta()
进行加减,不同之处在于对于日 期只能加减日期,即参数只能是 days
,而时间加减的参数还可以 是 hours
,
minutes
,
seconds
等。
1 from datetime import *
2 now = datetime.now()
3 next_hour = now+timedelta(hours = 1)
4 print (now)
5 print (next_hour)
数据加密
内置的
Hashlib
模块是一个加密模块,主要提供
SHA1
、
SHA224
、
SHA256
、
SHA384
、
SHA512
、 MD5 算法。
http
请求
post
的内容其实可以通过抓包获取,极为不安全,所以往往会将
post
的数 据加密后再发送,其用户密码或者比较隐私的信息都会以加密的方式存到数据库。下面就来介绍 如何对数据进行加密。 一般最常用的就是通过 md5 对数据进行加密。
实例代码:
1 import hashlib
2 md5 = hashlib.md5(b"123456")#通过hashlib 下的md5()函数对密码进行加密,并将加密结果赋值给变量md5(因为计算 md5 哈希时,需要使用字节形式的字符串,而非普通字符串,所以需要通过 bytes 函数将字符串再次转换)。
3 password_md5 = md5.hexdigest()#通过 hexdigest()获取加密后的结果,并赋值给变量 password_md5
4 print (password_md5)
执行结果
除了 md5 算法,最常用的还有 sha512 算法,其用法和 md5 是类似的
1 import hashlib
2 sha512 = hashlib.sha512(b"123456")#通过 hashlib 下的 sha512()函数对密码进行加密,并将加密结果赋值给变量 sha512
3 password_sha512 = sha512.hexdigest()#通过 hexdigest()获取加密后的结果,并赋值给变量password_sha512。
4 print (password_sha512)
执行结果

txt 文件的读写
文件打开
无论是读文件,还是写文件,都需要先将文件打开,通过
Python
内置的
open
方式打开,语法如下:
变量
= open
(文件路径,文件打开模式)
文件打开模式有以下几种。
r
以只读的方式打开。
r+
以读写的方式打开。
w
以写入的方式打开,会覆盖原有文件的所有内容,如果不存在,则新建文件。
w+
以读写的方式打开,会覆盖原有文件的所有内容,如果不存在,则新建文件。
a
以写入的方式打开,不会覆盖原有文件的内容,追加写入到文件的最后,如果不存在,
则新建文件。
a+
以读写的方式打开,不会覆盖原有文件的内容,追加写入到文件的最后,如果不存在,
则新建文件。
b
以二进制的方式打开,可以结合
r
、
w
、
a
使用。
U
支持所有的换行符号
文件读取
read() 读取文件的所有内容。
readline() 读取文件的第一行内容。
readlines()
读取文件的每一行内容。
通过实例来看一下这 3 种的差异,
read()
方法
1 file = open("G:\\python\\shuju.txt", "r")#选择 txt 文件对应的路径,以只读方式打开,并实例化赋值给变量 file。
2 result = file.read()#通过 file 对象的 read()方法把文件结果读出,并赋值给变量 result。
3 print (result)
4 file.close()
文件写入
write() 将全部内容一起写入文件。
writelines()
把列表内容逐行写入文件。
追加写入
file = open("G:\\python\\shuju.txt", "a+")
file.write("xxx"+"\n")
替换写入
file = open("G:\\python\\shuju.txt", "w+")
file.write("yyy"+"\n")
file.write("zzz"+"\n")