Directorio de artículos
- 1 Ejemplo: análisis de competición deportiva
- 2 Instalación de la biblioteca de terceros de Python
- 2.1 método de instalación de pip de bibliotecas de terceros
- 2.2 Método de instalación integrado de bibliotecas de terceros.
- 2.3 Métodos de instalación de archivos de bibliotecas de terceros
- 3 Uso de la biblioteca os
- 3.1 Operación de ruta de la biblioteca os
- 3.2 Gestión de procesos de la biblioteca os
- 3.3 Parámetros ambientales de la biblioteca os
- 4 bibliotecas comunes de terceros
- 5 Ejemplo: secuencia de comandos de instalación de biblioteca de terceros
1 Ejemplo: análisis de competición deportiva
Análisis de problemas: análisis de competición deportiva
- Demanda: ¿Cuánto cuesta? ¿Cómo analizar científicamente las competiciones deportivas?
- Entrada: nivel del jugador
- Salida: resultados predecibles del juego
Reglas del juego: Intercambio de porciones. Al principio, un lado sirve primero, y el lado que sirve gana. El lado que sirve obtiene 1 punto, pero el lado receptor no anota. El lado que sirve pierde y ninguno de los lados anota. Si A sirve, A gana 1 punto y B no anota; A no pierde ninguno. Luego cambie B para servir. Consigue 15 puntos primero para ganar.
De arriba hacia abajo y de abajo hacia arriba
- De arriba a abajo: una forma efectiva de resolver problemas complejos. Exprese un problema total como una forma de varios problemas pequeños, y use el mismo método para descomponer aún más los problemas pequeños hasta que la computadora pueda resolverlos de manera simple y clara.
- De abajo hacia arriba (ejecución): un método de prueba efectivo para construir gradualmente sistemas complejos. Prueba unidad por unidad, ensamblaje paso a paso, y siga la ruta inversa de arriba a abajo hasta que todas las partes del sistema hayan sido probadas y verificadas con la idea del ensamblaje.
El marco general y los pasos del programa.
- Paso 1: Imprima la información introductoria del programa-printInfo ()
- Paso 2: Obtenga los parámetros de ejecución del programa: proA, proB, n-getInputs ()
- Paso 3: Usa los valores de habilidad de los jugadores A y B para simular n juegos-simNGames ()
- Paso 4: Muestra el número y la probabilidad de los partidos ganados por los jugadores A y B-printSummary ()
El programa se divide en cuatro partes, imprime la información de introducción, obtiene los parámetros operativos, simula n juegos y genera los resultados. Simular n juegos puede descomponerse en simular un juego n veces. Simular simultáneamente un juego debe determinar si el juego actual se ha decidido.
from random import *
def printIntro():
print("这个程序模拟两个选手A和B的某种竞技比赛")
print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
def getInputs():
a = eval(input("请输入选手A的能力值(0-1): "))
b = eval(input("请输入选手B的能力值(0-1): "))
n = eval(input("模拟比赛的场次: "))
return a, b, n
def printSummary(winsA, winsB):
n = winsA + winsB
print("竞技分析开始,共模拟{}场比赛".format(n))
print("选手A获胜{}场比赛,占比{:.1%}".format(winsA, winsA/n))
print("选手B获胜{}场比赛,占比{:.1%}".format(winsB, winsB/n))
def gameover(scoreA, scoreB):
return scoreA == 15 or scoreB == 15
def simOneGame(proA, proB):
scoreA, scoreB = 0, 0
serving = "A"
while not gameover(scoreA, scoreB):
if serving == "A":
if random() < proA:
scoreA += 1
else:
serving = "B"
else:
if random() < proB:
scoreB += 1
else:
serving = "A"
return scoreA, scoreB
def simNGames(n, probA, probB):
winsA, winsB = 0, 0
for i in range(n):
scoreA, scoreB = simOneGame(probA, probB)
if scoreA > scoreB:
winsA += 1
else:
winsB += 1
return winsA, winsB
def main():
printIntro()
probA, probB, n = getInputs()
winsA, winsB = simNGames(n, probA, probB)
printSummary(winsA, winsB)
main()
2 Instalación de la biblioteca de terceros de Python
Plataforma de biblioteca tripartita de alta calidad:
La plataforma python123 puede aprender, y también organizar muchas bibliotecas de terceros, y organizar espejos domésticos https://python123.io/
Python community PyPI (Python Package Index), 130,000 bibliotecas de terceros https://pypi.org/
2.1 método de instalación de pip de bibliotecas de terceros
Comandos pip comúnmente utilizados
Comando | Explicación |
---|---|
pip install <nombre de biblioteca de terceros> | Instalar la biblioteca de terceros especificada |
pip install --U <nombre de biblioteca de terceros> | Use la etiqueta -U para actualizar la biblioteca de terceros especificada instalada |
desinstalación de pip <nombre de biblioteca de terceros> | Desinstale la biblioteca de terceros especificada |
descarga de pip <nombre de biblioteca de terceros> | Descargue pero no instale la biblioteca de terceros especificada |
pip show <nombre de biblioteca de terceros> | Listar detalles de una biblioteca de terceros específica |
pip search <palabra clave> | Buscar bibliotecas de terceros en nombres e introducciones basados en palabras clave |
lista de pepitas | Enumerar las bibliotecas de terceros que se han instalado en el sistema actual. |
2.2 Método de instalación integrado de bibliotecas de terceros.
Instalación integrada:
Anaconda
https://www.continuum.io es
compatible con casi 800 bibliotecas de terceros, incluidas múltiples herramientas convencionales, adecuadas para el desarrollo en el campo de la computación de datos.
2.3 Métodos de instalación de archivos de bibliotecas de terceros
Dirección de descarga del archivo de instalación
http://www.lfd.uci.edu/~gohlke/pythonlibs/
Método de instalación del archivo
- Paso 1: busque archivos en la página UCI
- Paso 2: descargue la versión correspondiente del archivo
- Paso 3: Use pip install <nombre de archivo> para instalar
3 Uso de la biblioteca os
La biblioteca os proporciona funciones generales y básicas de interacción del sistema operativo.La biblioteca os es una biblioteca estándar de Python y contiene cientos de funciones. Operaciones de ruta común, gestión de procesos, parámetros ambientales, etc.
3.1 Operación de ruta de la biblioteca os
La sub-biblioteca os.path toma la ruta como entrada, utilizada para manipular y procesar la ruta del archivo
import os.path o import os.path como op
Función | Descripción |
---|---|
os.path.abspath (ruta) | Devuelve la ruta absoluta de la ruta en el sistema actual >>> os.path.abspath ( "file.txt" ) 'C: \\ Users \\ Tian Song \\ Python36-32 \\ file.txt' |
os.path.normpath (ruta) | Representación normalizada de la ruta, use \\ para separar las rutas al unísono >>> os.path.normpath ( "D: //PYE//file.txt" ) 'D: \\ PYE \\ file.txt' |
os.path.relpath (ruta) | Devuelve la ruta relativa entre el programa actual y el archivo (ruta relativa) >>> os.path.relpath ( "C: //PYE//file.txt" ) '… \\… \\… \\… \\… \\… \\… \\ PYE \\ file.txt ' |
- | - |
os.path.dirname (ruta) | Devuelva el nombre del directorio en la ruta >>> os.path.dirname ( "C: //PYE//file.txt" ) 'D: // PYE' |
os.path.basename (ruta) | Devuelve el último nombre de archivo en la ruta >>> os.path.basename ( "C: //PYE//file.txt" ) 'file.txt' |
os.path.join (ruta, * rutas) | Combine ruta y rutas, devuelva una cadena de ruta >>> os.path.join ( "D: /" , "PYE / file.txt" ) 'D: /PYE/file.txt' |
- | - |
os.path.exists (ruta) | Determine si el archivo o directorio correspondiente a la ruta existe, devuelva Verdadero o Falso >>> os.path.exists ( "D: //PYE//file.txt" ) False |
os.path.isfile (ruta) | Determine si la ruta corresponde a un archivo existente, devuelva True o False >>> os.path.isfile ( "D: //PYE//file.txt" ) True |
os.path.isdir (ruta) | 判断 path 所对应是否为已存在的目录,返回 True 或 False >>>os.path.isdir( “D://PYE//file.txt” ) False |
– | – |
os.path.getatime(path) | 返回 path 对应文件或目录上一次的访问时间 >>>os.path.getatime( “D:/PYE/file.txt” ) 1518356633.7551725 |
os.path.getmtime(path) | 返回 path 对应文件或目录最近一次的修改时间 >>>os.path.getmtime( “D:/PYE/file.txt” ) 1518356633.7551725 |
os.path.getctime(path) | 返回 path 对应文件或目录的创建时间 >>>time.ctime(os.path.getctime( “D:/PYE/file.txt” )) ‘Sun Feb 11 21:43:53 2018’ |
os.path.getsize(path) | 返回 path 对应文件的大小,以字节为单位 >>>os.path.getsize( “D:/PYE/file.txt” ) 180768 |
3.2 os 库之进程管理
os.system(command)
- 执行程序或命令 command
- 在 Windows 系统中,返回值为 cmd 的调用返回信息
import os
os.system("C:\\Windows\\System32\\calc.exe")
>>>0
3.3 os 库之环境参数
获取或改变系统环境信息
函数 | 描述 |
---|---|
os.chdir(path) | 修改当前程序操作的路径 >>>os.chdir(“D:”) |
os.getcwd() | 返回程序的当前路径 >>>os.getcwd() ‘D:\’ |
获取操作系统环境信息
函数 | 描述 |
---|---|
os.getlogin() | 获得当前系统登录用户名称 >>>os.getlogin() ‘Tian Song’ |
os.cpu_count() | 获得当前系统的 CPU 数量 >>>os.cpu_count() 8 |
获取操作系统环境信息
函数 | 描述 |
---|---|
os.urandom(n) | 获得 n 个字节长度的随机字符串,通常用于加解密运算 >>>os.urandom(10) b’=l>7}\xca\x7f\x14\xe3\x0b’ |
4 常用第三方库
库名 | 用途 |
---|---|
NumPy | N 维数据表示和运算 |
Matplotlib | 二维数据可视化 |
PIL | 图像处理 |
Scikit-Learn | Aprendizaje automático y minería de datos. |
Peticiones | Acceso al protocolo HTTP y rastreador web |
Jieba | Segmentación de palabras chinas |
Hermosa sopa | Analizadores HTML y XML |
Rueda | Herramienta de empaquetado de archivos de bibliotecas de terceros de Python |
PyInstaller | Empaquetar archivos fuente de Python como archivos ejecutables |
Django | El marco de desarrollo web más popular de Python |
Matraz | Marco de desarrollo web ligero |
WeRoBot | Marco de desarrollo de robots WeChat |
SymPy | Herramienta de cálculo de símbolos matemáticos |
Pandas | Análisis y cálculo de datos eficientes. |
Networkx | Modelado y análisis de redes complejas y estructuras gráficas. |
5 Ejemplo: secuencia de comandos de instalación de biblioteca de terceros
Requisitos: ¿Instalar bibliotecas de terceros en lotes para lograr la instalación automática?
import os
libs = {"numpy","matplotlib","pillow","sklearn","requests",\
"jieba","beautifulsoup4","wheel","networkx","sympy",\
"pyinstaller","django","flask","werobot","pyqt5",\
"pandas","pyopengl","pypdf2","docopt","pygame"}
try:
for lib in libs:
os.system("pip install " + lib)
print("Successful")
except:
print("Failed Somehow")