一、random模块
Python random 模块主要用于生成随机数。该模块实现了各种分布的伪随机数生成器。比如:随机生成验证码等
random 模块属于标准库,无需进行安装,导入即可使用。
import random
# 查看 random 模块中的内容
print(dir(random))
1、random() 函数
random() :返回随机生成的一个实数,它在半开放区间 [0,1) 范围内,包含 0 但不包含 1。
import random
num1 = random.random() # 0.2739237072907895
print(num1)
print(random.random()) # 0.8903373291990494
2、seed() 函数
我们调用 random.random() 生成随机数时,每一次生成的数都是随机的。
当我们预先使用 random.seed(x) 设定好种子之后,其中的 x 可以是任意数字,比如10。
然后再调用 random()时生成的随机数将会是同一个。
import random
random.seed()
print("使用默认种子生成随机数:", random.random())
print("使用默认种子生成随机数:", random.random())
random.seed(10)
print("使用整数 10 种子生成随机数:", random.random())
random.seed(10)
print("使用整数 10 种子生成随机数:", random.random())
random.seed("hello", 2)
print("使用字符串种子生成随机数:", random.random())
3、randrange()函数
randrange():返回指定范围内的随机数。基本语法如下:
random.randrange(start, stop, step)
参数:
- start – 可选, 一个整数,指定开始值,默认值为 0。
- stop – 必需, 一个整数,指定结束值。
- step – 可选, 一个整数,指定步长,默认值为 1。
import random
# 随机返回一个 1 到 10 之间的一个奇数
num = random.randrange(1, 9, 2)
print(num) # 5
4、randint() 方法
randint():方法返回指定范围内的整数。
randint(start, stop) 等价于 randrange(start, stop+1)。
import random
print(random.randint(1, 9))
5、uniform()方法
uniform(a,b):返回a,b之间的随机浮点数,若a<=b则范围[a,b],若a>=b则范围[b,a] ,a和b可以是实数。
import random
print(random.uniform(10, 20)) # 13.00577371222787
二、json模块
Python json模块主要是对 JSON 数据进行编解码。
json模块使用相对简单,只有四个方法dump()、load()、dumps()、loads()。
- dumps():对数据进行编码。将python对象转换成json对象,生成的是字符串。
- loads():对数据进行解码。将json字符串解码成python对象。
- dump():对数据进行编码。将python对象转换成json对象,生成一个fp的文件流,和文件相关。
- load():对数据进行解码。将json文件解码成python对象。
注意:
方法加s与不加s的区别,加s针对json字符串,不加s针对json文件。
1、类型转化对照表
在 json 的编解码过程中,Python 的原始类型与 json 类型会相互转换,具体的转化对照如下:
(1)Python 编码为 JSON 类型转换对应表:
(2)JSON 解码为 Python 类型转换对应表:
2、字符串转换
import json
# 1. 将 Python 字典类型转换为 JSON 对象
data_dict = {
"key2": "value2", "key1": 18, "key3": "http://www.baidu.com"}
# 默认转换的json数据是无序的。如果将参数sort_keys改为True, 则会根据key值将数据进行排序。
json_str1 = json.dumps(data_dict)
json_str2 = json.dumps(data_dict, sort_keys=True)
print("Python 原始数据:", repr(data_dict))
print("JSON 对象1:", json_str1)
print("JSON 对象2:", json_str2)
print("--------------------")
# 2. 将 JSON 对象转换为 Python 字典
data2 = json.loads(json_str1)
print("Python 数据2:", repr(data2))
print("data2['key1']: ", data2['key1'])
print("data2['key3']: ", data2['key3'])
3、文件流转换
import json
data = {
"key2": "value2", "key1": 18, "key3": "http://www.baidu.com"}
# 1.序列化:将 Java 对象转换成字节流,即写入 JSON数据
with open('demo3.json', 'wt') as f:
json.dump(data, f)
# 2.反序列化:将字节流转换成 Java 对象,即读取文件数据
with open('demo3.json', 'rt') as f:
data = json.load(f)
print(data, type(data))
# {'key2': 'value2', 'key1': 18, 'key3': 'http://www.baidu.com'} <class 'dict'>
– 求知若饥,虚心若愚。