1. El módulo aleatorio
El módulo aleatorio de Python se utiliza principalmente para generar números aleatorios. Este módulo implementa generadores de números pseudoaleatorios para varias distribuciones. Por ejemplo: generación aleatoria de códigos de verificación, etc.
El módulo aleatorio pertenece a la biblioteca estándar y se puede utilizar sin instalación.
import random
# 查看 random 模块中的内容
print(dir(random))
1. función aleatoria()
random() : Devuelve un número real generado aleatoriamente en el intervalo semiabierto [0,1), incluido el 0 pero sin el 1.
import random
num1 = random.random() # 0.2739237072907895
print(num1)
print(random.random()) # 0.8903373291990494
2. función semilla()
Cuando llamamos a random.random() para generar números aleatorios, cada número generado es aleatorio.
Cuando preconfiguramos la semilla con random.seed(x), x puede ser cualquier número, como 10.
Entonces, el número aleatorio generado al llamar a random() será el mismo.
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. La función randrange()
randrange(): devuelve un número aleatorio dentro del rango especificado. La sintaxis básica es la siguiente:
random.randrange(start, stop, step)
parámetro:
- inicio: opcional, un número entero que especifica el valor inicial; el valor predeterminado es 0.
- stop: requerido, un número entero que especifica el valor final.
- paso: opcional, un número entero que especifica el tamaño del paso, el valor predeterminado es 1.
import random
# 随机返回一个 1 到 10 之间的一个奇数
num = random.randrange(1, 9, 2)
print(num) # 5
4. método aleatorio()
randint(): el método devuelve un número entero dentro del rango especificado.
randint(inicio, parada) es equivalente a randrange(inicio, parada+1).
import random
print(random.randint(1, 9))
5, método uniforme()
uniform(a,b): devuelve un número de punto flotante aleatorio entre a y b, si a<=b, el rango es [a,b], si a>=b, entonces el rango es [b,a], a y b pueden ser números reales.
import random
print(random.uniform(10, 20)) # 13.00577371222787
Dos, módulo json
El módulo Python json principalmente codifica y decodifica datos JSON.
El módulo json es relativamente simple de usar, con solo cuatro métodos dump(), load(), dumps() y loads().
- dumps(): codifica los datos. Convierta un objeto python en un objeto json y genere una cadena.
- loads(): Decodifica los datos. Decodifica una cadena json en un objeto python.
- dump(): codifica los datos. Convierta objetos python en objetos json, genere una secuencia de archivos fp y relacionados con archivos.
- load(): Decodifica los datos. Decodifica un archivo json en un objeto python.
注意:
La diferencia entre agregar s y no agregar s en el método, agregar s es para la cadena json y no agregar s es para el archivo json.
1. Tabla de comparación de conversión de tipo
Durante el proceso de codificación y decodificación de json, el tipo original de Python y el tipo json se convertirán entre sí. La comparación de conversión específica es la siguiente:
(1) Tabla de correspondencia de conversión de codificación de Python a tipo JSON:
(2) Tabla de correspondencia de conversión de decodificación JSON a tipo Python:
2. Conversión de cadenas
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. Conversión de flujo de archivos
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'>
– Si tienes hambre de conocimiento, sé humilde si eres tonto.